rss2i.py: Add a new debug command
There were two new API commands introduced with 92fc2aa6: `0x18: Return device status` and `0x19: Report error information`. A preview of the API doc can be downloaded [here](/uploads/812d6e977e612944ad52caedd86ab1a9/UNOFFICIAL_rss2i_api_doc_2.0.x_PREVIEW.pdf). This allows us to add a new `debug` command for the RSS2I command line tool that is worthy its name. Note however, that is is necessary to get #12 done in order for the command name to be available. Suppose a setup with two devices `3` and `10`. Device `10` is connected via USB. The `debug` command should be invoked like e.g. ```sh rss2i -a debug -d 10, 3 ``` and should output something like ``` rss2i: debug: dev 10: Number of errors: 3 rss2i: debug: dev 10: Main loop cycles: 161 rss2i: debug: dev 10: Raw battery value: 869 rss2i: debug: dev 10: Battery level / %: 100 rss2i: debug: dev 10: Free memory / %: 67 rss2i: debug: dev 10: Occured error cases: [0x09 0x0001/0x0002] There are two or more measurement results within the same frame and the same cycle. [0x0d 0x0002/0x0003] Received an unknown instruction via USB. rss2i: Device 10 --over-the-air--> device 3 rss2i: debug: dev 3: Number of errors: 0 rss2i: debug: dev 3: Main loop cycles: 152 rss2i: debug: dev 3: Raw battery value: 862 rss2i: debug: dev 3: Battery level / %: 100 rss2i: debug: dev 3: Free memory / %: 66 rss2i: debug: dev 3: No errors occured. ``` where `[0x0d 0x0002/0x0003] Received an unknown...` contains the ID of the error case, its specific ID `sid`, its global ID `gid` and the corresponding error message in that order. For reference: ```py import rss2ipy res = device.query([0x19, 3], 255); if not res[0]: print("Number of errors: " + str(res[1] + 256 * res[2])); for ec in range(0, 63): specificID = res[3 + 4 * ec + 0] + res[3 + 4 * ec + 1]; globalID = res[3 + 4 * ec + 2] + res[3 + 4 * ec + 3]; if localID: print(" [0x{:02x} 0x{:04x}/0x{:04x}] ".format(ec, specificID, globalID) + rss2ipy.debug_message(ec)); ``` Note, that the amount of **free** memory should be displayed, as it is for the (new, #12) `log` command. Alos note, that there are blank lines around the error message (if any).
issue