asz wrote:Hi Eriksl
Maybe I am out in the blue now...but a way to get the values that one can read from the sensors out on the bridge port would be to build an "bw" (bridge write) command so that one can create a sequencer that reads the sensor value and then puts the value out on the bridge stream (like it was received on the tx pin). The bw command would need to have some data variables... or be able to take a secondary command that reads the value for it....like:
bw "first string"  "second string" cs <CR><LF>
or even better if one could stack more values like:
bw "first string"  "second string"  "third string"  ... [nn] "last string*" cs
- Where bw is the command
- "first string" is part of the NMEA format and is static for a given sensor
-  is the value that gets read from the sensor number . Same that is presented inside brackets when you do a "isr 51"
- "second string" is the rest of the NMEA static format string...and so on.
- cs is a calculated checksum that needs to be done on the fly. It does not need to have a parameter but can be understood to be there after the asterisk. But maybe the bw command gets more universal with the parameter. The complete message must end with <CR><LF> which also can be understood or implemented as a parameter.
This would give an example command like this:
bw "$IIXDR,C,"  ",C,UIObridge*" cs
And would send the string:
Of course the bw command could be used to send a lot of other things out on the X.X.X.X:bp
Would it be possible for you to build something like this? (crossing my fingers, saying pleeeeese) It would save me a ton of work since I haven't got the build environment. A pretty good description of how to calculate the checksum is found here:
https://doschman.blogspot.com/2013/01/c ... ksums.html
And a good online calculator is found here:
https://alekunderwater.github.io/nmea01 ... lator.html
So what you actually want is a macro-formatted output function to the UART? There is already a command to write to the UART(s), it's called uw (uart-write) but, of course, it doesn't fill in values. I think it will be a bit tricky to implement due to the very limited amount of memory available. I think the start point would be a parser that would be interpreting "special" sequences of characters and replace them with values. I think any kind of dynamic calculation is impossible, it would be a 1:1 replacement, but a CRC could be offered as a static calculation.
Wouldn't it be far easier to just build an NMEA emulator (either standalone or in this code)?