Topic | Data format from device

Home Forums Mooshimeter Support Data format from device

Viewing 12 reply threads
  • Author
    Posts
    • #13790 Reply
      Anonymous
      Inactive

      Hi.

      When using the example script to start the device streaming I then view the data in a terminal window. Below is the first few lines at 115200 baud.

      00 34 00 01 0E FB FF FF FB FF FF 3B 71 8F 43 FE B0 15 48 80 13 04 05 00
      34 00 01 0E FA FF FF 0E 00 00 7B 14 3D 43 35 DA 19 48 80 13 04 05 00 34
      00 01 0E 04 00 00 F8 FF FF EC C4 4D 43 C0 36 16 48 80 13 04 05 00 34 00
      01 0E FC FF FF 09 00 00 96 FB A1 43 A9 03 16 48 80 13 04 05 00 34 00 01
      0E FE FF FF 00 00 00 84 E5 09 43 84 BD 15 48 80 13 04 05 00 34 00 01 0E

      How is this data formatted and how can I decode it to get useful data?

      Thanks,

      Mark.

    • #13792 Reply
      Anonymous
      Guest

      Mark, Wow, good question, but my guess is the answer is going to disappoint you. I think the BLE protocol plus the various kinds of data passed between the phone and meter will make this approach very very difficult to extract only the measured values you want.

      At this point, I would say the easiest method would be to use Android Studio. James developed the android app using AS. It is free and James provides the source code for each app version for free on GitHub. By the way, this is quite commendable; not every manufacturer will provide the source code for their product apps. It is complex software, but with just a little knowledge and research you can load his latest app source code into the latest Android Studio and it will compile into an app which will run correctly. From there with a lot more knowledge and studying his code, you can modify the source code to do what you want. Not easy by any means, but easier than decoding a serial stream, unless somebody has already done it for you.

      Perhaps the Python app would be easier, but I believe I remember reading the latest app is not compatible with the latest meter firmware changes.

      As always, just my humble opinion.
      —Duane

    • #13796 Reply
      Anonymous
      Inactive

      The Android stuff is fine however I need to run it on a windows machine and to talk with a different application which controls all my other hardware. I suppose I will have to figure out how the python scripts work and try and create my own so I can run them from my main application. Time to get the books out I think.

    • #13799 Reply
      Anonymous
      Guest

      Mark,
      Here is a related thread https://moosh.im/f/topic/python-api-and-april-update-issue-not-connecting/
      I’m not sure if seergio has made any progress since then. – – – – Duane

    • #13835 Reply
      admin
      Keymaster

      Hi Mark123,

      I haven’t totally parsed the data you provided, but I can tell you that you are better off modifying the python script to have it spit out the data you want than trying to interpret the raw serial stream from a different script. There are a few layers of interaction happening – between the BLED112 and the Python script, on the BLE layer, and on the application layer.

      Specifically, if you look at notifyCB on line 48 of Example.py, this function is probably all you need to adjust to start sending data out to a new end point.

      Best
      ~James

      PS. Thanks again Duane

    • #13845 Reply
      Anonymous
      Inactive

      Hi James.

      I was initially going to use the Example.py script and modify it so it just does the initialisation part and then another script to grab some readings as i require. But closing the init script seems to kill everything, the paramaters or arguments for the read get lost. Is it possible to have different scripts for init, read and close?

      Regards,

      Mark.

    • #13914 Reply
      admin
      Keymaster

      Hi Mark123,

      I dug in to this more today and updated the Example.py script. During all the beta testing with the apps, I made some changes to the protocol that didn’t get ported back to the Python API. I fixed the issue and now the example script connects and talks to firmware version 1470628829 without problem.

      Hope this helps, best
      ~James

    • #13936 Reply
      Anonymous
      Guest

      Hi James.

      I had no issue with the original software. The issue I have is that i require separate scripts for initialise, get sample and close. I am not very experienced with python and just want to take measurements, I wasn’t expecting to re-write python scripts.

      The stream part in the infinite loop checks BGWrapper.idle(). How does it call notifyCB() from here.

      #This will be called every time a new sample is received

      I cannot see in any of the files where this is called.

      Mark.

    • #13949 Reply
      admin
      Keymaster

      Hi Mark,

      A couple of issues:
      Separating the scripts is quite difficult because the code needs to store a lot of session information to interact with the Mooshimeter. What is it you are trying to accomplish? You might be better served by modifying the script to respond to actions from the user through some other means.

      Regarding notifyCB: notifyCB is a callback, which is called from an inner layer of the bluetooth stack when the update is received over bluetooth. BGWrapper.idle() constantly serves the bluetooth stack and will call notifyCB when something is received.

      If your code is on Github I can probably be more specific. Hope this helps! Best
      ~James

    • #13955 Reply
      Anonymous
      Guest

      Hi James.

      I managed to tweak the code a bit so it would spit out the relevant data which I captured on the pc. However when using the phone app the latest firmware update has been pushed to the meter I believe. I have tried using the latest example that you provided and that dosn’t work at all. It exits at didn’t find our friend.

      Has this code been tested and is there any additional files required.

      Is it possible to revert back to the previous firmware version where I had a system working????

      Regards,

      Mark.

    • #13956 Reply
      admin
      Keymaster

      Hi Mark,

      Sorry this has become complicated…

      It sounds like you were using an older version of the python API that’s not compatible with the latest firmware. I think the best option is to base your python code off the latest version of the Mooshimeter-PythonAPI. Sorry, but downgrading firmware is not presently supported.

      If your code is visible online somewhere I can try to help you. Please let me know
      ~James

    • #13959 Reply
      Anonymous
      Guest

      Hi James.

      The only code i am using at the moment is the Latest you put on github.

      “the best option is to base your python code off the latest version of the Mooshimeter-PythonAPI”

      Is this following link not the latest to use with build 1470628829
      https://github.com/mooshim/Mooshimeter-PythonAPI

      If not where can I get it?

      Regards,

      Mark.

    • #13961 Reply
      admin
      Keymaster

      Hi Mark,

      I am asking because you referenced notifyCB, which is a variable name that I don’t think is present in the most recent version of the code. Are you sure your git repository is up to date?

      The URL you reference is the correct one, but I’ve been making updates to the code there over the last few days largely based on your feedback.

      ~James

Viewing 12 reply threads
Reply To: Data format from device
Your information:




This site is protected by reCaptcha and the Google Privacy Policy and Terms of Service apply.