Octave Resource Protocol - ORP (3.0.0-pre23April2020-mangOH-0) - AddPushHandler - is it broken?

Hi

The following is serial port data sent from a remote device to the Octave edge device followed by the responses from the Octave edge device to the remote device.

Edge side

Remote requests CreateResource - Create Octave output

~~~
~OS01Ptxt_str/valueK~

Octave acknowledges the command

~o@017⸮~

Remote requests AddPushHandler – Register callback from Octave

~~~
~HS01Ptxt_str/value⸮⸮~

(The following comment has been modified as it initially wasn’t correct)
Octave responds to the command - and reports BAD Parameter

~hO01J⸮~

Cloud side

At this point the Octave cloud indicates

With 2.1.4 firmware if I changed for example the value of “motorspd/num/value” the data would appear on the serial port as an ORP message.

With 3.0.0 firmware I don’t see any data on the edge serial port.

Any ideas what I’m doing wrong?

Thanks

John

Hi John,
The response of adding handler is …hO01…
O → BAD PARAMETER

Handler was not added successfully, so when you change the value on Cloud, there is no response in your serial.
If handler is added successfully, the response should be ~h@01

Please make sure the path in “add handler” command is correct.
I don’t see any problem with orp3.0.0

Thanks,

Hi jerdung

Many thanks for the reply.

The version of ORP app built into the FW version (3.0.0) that I have must have different functionality to the older versions of Octave as my example ORP messages work with FW 2.1.4

My system reports in Octave Firmware version 3.0.0-pre23April2020-mangOH-0

Just to check that the problem isn’t with my microcontroller - I just spent an hour or so downloading the complete example from the Octave documentation here

Python2v300.zip (24.6 KB)

This zip contains everything from the original Sierra source - the only changes I made was to sample.py where I have commented out everything but the code related to AddPushHandler

This is a capture of the Sierra python sample code failing in the same way as my original post

python .\sample.py
2020-05-27 12:42:26,655 OctaveRP: creating output at external_status/lcd1
2020-05-27 12:42:26,858 OctaveRP: sending frame, awaiting o
2020-05-27 12:42:26,924 OctaveRP: recv frame: {'status': 'OK', 'responseType': 'o'}
2020-05-27 12:42:27,365 OctaveRP: checking message {'status': 'OK', 'responseType': 'o'}
2020-05-27 12:42:27,568 OctaveRP: sending frame, awaiting h
2020-05-27 12:42:27,611 OctaveRP: recv frame: {'status': 'BAD PARAMETER', 'responseType': 'h'}
2020-05-27 12:42:28,069 OctaveRP: checking message {'status': 'BAD PARAMETER', 'responseType': 'h'}

Which FW version did you test with?
Do you know why sample.py fails (in .zip above)?
Can you please supply me with the example that you used to demonstrate how AddPushHandler works?

Cheers

John

Oh, it is my mistake.
This is known issue on fw 3.0.0pre23Apr. It is fixed on newer fw, please wait for the official release or you can downgrade to 2.1.4 to use ORP.
Sorry for this inconvenience.

Thanks,

1 Like

Hi Jerdung

Many thanks for the update.

Could you update the Firmware release notes on https://octave.sierrawireless.io/ Firmware - Known Issues ?

John