Hmmmm so the program could not listen on a port for a pre determined time or untill it hears a $ and if it hears a $ store the data after the dollar untill it hears another dollar and then move on to listening to the next port
all the time reformating the data (adding the $ and the carriage return and line feed) and sending it out of another port?
The problem there is missing data on the other ports while you're reading one of them - particularly with a software UART!. You would need to use interrupt driven routines, and I'm still rather dubious about it's reliability?.
Thanks Nigel As for missing data that is not so bad. as each device has only to give data once every 5 seconds to the recieving device, so unless i am missing something? as long as all ports however many, are read and the data forwarded within 5 seconds, there may not be a problem..
If that makes any sence lol
here is an example of the data from one peripheral (weather instrument):
$WIMWD,90.0,T,90.0,M,5.0,N,2.6,M*5B
$WIMWV,90.0,T,5.0,N,A*19
$WIVWR,135.0,R,5.0,N,2.6,M,9.3,K*5B
$WIMTW,30.0,C*0E
here is an example of the data from two peripherals (weather instrument & GPS):
$GPRMC,110552.72,A,0000.10095,N,00000.10095,W,5.0,315.0,231105,0.0,W*59
$WIMWD,90.0,T,90.0,M,5.0,N,2.6,M*5B
$WIMWV,90.0,T,5.0,N,A*19
$WIVWR,135.0,R,5.0,N,2.6,M,9.3,K*5B
$WIMTW,30.0,C*0E
the data being sent can also contain a checksum for error correction or rejection at the recieving device end.