Home        Store        Docs        Blog

Data string output


(Etienne Demers) #1

It would be good to have the sensors like depth, heading etc output from qgroundcontrol directly.

Should have an option to send to UDP and/or serial port and select which data to be included.

I know Jacob has come up with a backdoor solution but it is not obvious for those who are not used to the tools you are using for programming.


(Luis Gamez) #2

Yep Im agree with that! would be nice


(Jacob) #3

Can you provide a use case or two?


#4

I would use the data string for several purposes:

-Data string to external video overlay
-Data string to Survey Software
-Data string for logging purposes.

A string output would be very nice…


(Jacob) #5

These external applications will typically have a data format requirements. Is this the case, or am I free to push the data out however I see fit?


#6

May I suggest comma separated serial ASCII string with Carriage Return and line feed at the end. 9600 Baud and 1 Hz update?

The data sentence I consider must have:
Date, Time, Depth, Heading,

This is the nice to have:
Roll, Pitch, Latitude, Longitude, camera tilt,
Lat / Lon if available into system (surface GPS or "Underwater GPS)

Any comments @etienne ?


(Etienne Demers) #7

Sounds good to me.

Any string will do really. Most software will allow users to parse the string. I would maybe add an option for frequency. 1Hz can be a bit limiting.

I would also add altitude since this provision is already in the works…

Video overlay and connectivity with survey are the most common applications. But I would also use it to display these values outside QGC. IE make them BIGGER!! :grin:


(undersearobotics.com) #8

May I recommend using either an existing NMEA 0183 sentence or format the sentence(s) similar to NMEA 0183?


#9

It could be challenging to find an existing NMEA 0183 Sentence that will fit the various data fields to be included but a custom header in the string would be useful. For example:

$BROV, field1, field2, field3, etc

That will make sentence decoding even easier since it is a fixed field at the start of each line.


(Etienne Demers) #10

Most software detect the line feed and parse in between commas.

This is because most programming languages can fill a stringlist component with the comma as a delimiter automatically.

In the end, it really doesn’t matter as long as they provide something…

On my last survey I was unable to provide overlay because of this which was a bit of a let down.


(Aditya Tandon) #11

Frankly, I think a simple JSON string with multiple parameters would do the job. Advantages of using JSON are innumerable, especially the fact that there are a host of JSON parsers readily available for use.


(Jacob) #12

So far there have been requests for 3 different output formats. I will point out that all of the data is already accessible via udp and can be sorted however the user wants with existing software and parsers. If it is a matter of putting the data into a different format for a specific application, then the user can already do that with available tools.


(Jacob) #13

Both csv and json can be produced in post with mavlogdump.py. It might be easy to bring this same functionality to a real time stream in MAVProxy, or add a --stdin option to mavlogdump.py to feed it a live stream rather than a log file.


(Luis Gamez) #14

@mjhl96 take a look at this


#15

So, if I understood correctly, I need to add the stdin option to produce an output that would update contiuously right? If so, how can I go about doing this? Or can I just use mavlogdump.py as it is to generate that continuous output?

Thanks for your help.


#16

So… I’ve got yet another error, and no real clue of how to solve it. Do you guys have any ideas of what this is?


(Jacob) #17

It is looking for a file name “LOG”, and there is no such file. You are supposed to supply the log file you are interested in. @patrickelectric has done some work on json output with mavproxy. You can see it here.


#18

I’ll take a look at it. Thanks!