-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add UBX-MON-COMMS #25
Conversation
@ARK3r its one of those messages that could be used to debug a configuration. Some of the field descriptions are a bit poor in the manual. I noticed you didn't add the out frame? That's used to potential poll for the data as opposed to having it sent based on a frequency update. One issue is the cpu usage on the device. If everything is turned on, it can't cope and limits output anyway. Which firmware are you using? ... I upgraded to the latest this week. Is it possible for you to confirm the changes I made for the spartn messages? |
@hortovanyi Thanks for your work on the the rxm-spartn and rxm-spartnkey. I'm just confused about how I would provide the keys. This is a good example of how a json file gets parsed, and this shows which data bits are used and here they are put together as a UBX msg to be sent. Regarding spartn message this is what I'm getting:
which I assume means spartn messages are being recieved but not integrated, as I have not yet provided the key. |
I'll check the out frame right now and get back to you. I upgraded the firmware last week as well to: |
@ARK3r thanks 😊 ... ohh I see, so we need a separate node to get the keys and then need to publish a msg for ublox_dgnss_node to subscribe to, to then send the spartnkeys to the device?? |
I pushed the out frame debug info to my branch, not sure how I can reopen this pr or if I should make another one. I did make a super hacky script recently, let me check if spartn messages are being decrypted properly using this method, and then we can integrate it in somehow super hacky script:
|
The only thing I wanted to point out is that this is params I ended up using:
because there was some sort of an error saying |
@ARK3r have a look at ubx_esf_meas.hpp it constructs a poll frame with msg data to send to the device ... the ubx_rxm_spartnkey I just realised is an in/out message so similar scenario to ubx_esf_meas |
i've tried to keep all the code besides the launch files as c++ ... we could set up a ros2 service to receive the keys?? (and then publish them) or otherwise are you suggesting to pass the json file name as a parameter (it not specified dont do anything or if there at a later state after initialisation send to the device once off)?? Am not sure if some of the other implementations are reading the keys straight from the internet? and then sending to the device? I'll leave this decision up to you at present. Just need to make sure that if people are using NTRIP instead, that the node still works the same |
This is what the structure of the json file that I got from thingstream looks like (with the values redacted):
This structure suggests there must be more ways other than just providing the dynamic keys and using those to decrypt the spartn messages, however, at the moment I have only experimented with providing the keys and the f9p has achieved "fixed" state by connection to the d9s. I think a service that accepts these keys with a custom message actually sounds good, and it offloads the work of processing the json file, or if someone creates their own way of passing the keys to the device connected to the module, I think a service would be the most versatile solution. I spent some time looking at the UBX-ESF-MEAS message and I'm afraid it looks way too complicated for me to figure out at the moment. Is it possible that you implement this service? If not, I can work on it sometime next week. |
@ARK3r need to create a new Full Payload to send messages to the device ... it basically is taking the ros2 msg and creating a UBX binary payload to send (ie poll) out. look at load_from_msg method
I suspect from what I'm seeing in this chat, is that a new node will be needed as a MQTT client as there are subscription and dynamic keys ... the ubx message allows for dynamic key sizes. I had to think twice about what I coded up for all of that. Extrapolating from the keys binary to the ubx poll payload, while tricky is not impossible - its a bit different from the other messages so takes some time. I dont know the frequency of change in any of the those keys ?? at first I had thought they were relatively static but looking at your last comment makes me think not. Have you created a MQTT client in c++ before for a ros2 node? I haven't and am not sure if the std ros2 build farm libraries include the client??? Normally this stuff when I try it, works and just compiles. I suspect the mqtt clients are standard libraries in linux distributions. There doesnt seem to be anything here that suggests its not worthwhile doing, however I cant test it all so probably best for you to code it when you can. Can help you if you get stuck |
@ARK3r any progress? if stuck let me know and I'll help best I can |
I have been pulled to other things at the moment, once I have to get back on this I'll reach back out. |
@ARK3r ok. I might set up an Issue for this and move the conversation there |
I think UBX-MON-COMMS is working and I'm getting a message like this:
but honestly, I can't figure out if the values make any sense since I don't know exactly what each field means