上に書かれていることの日本語で。
Trimbleでは RTCMのメッセージのうち1005,1077,1087 ,1230 と1008が必要。
1008はアンテナ情報のようだが、ZEDーF9Pでは出力できない。
実際のところ、ダミーデータで良いようだ。。
ZED-F9Pからraspiのシリアルで取得、NtripCasterに送信する前にダミーの1008を挟み込む。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #!/usr/bin/python3 import sys while True: data = sys.stdin.buffer.read(1) while (data != b'\xd3'): data = sys.stdin.buffer.read(1) length_data = sys.stdin.buffer.read(2) length = (length_data[0] << 8) + length_data[1] packet_data = sys.stdin.buffer.read(length) crc24_data = sys.stdin.buffer.read(3) message_number = (packet_data[0] << 8) + packet_data[1] message_number >>= 4 sys.stdout.buffer.write(b'\xd3') sys.stdout.buffer.write(length_data) sys.stdout.buffer.write(packet_data) sys.stdout.buffer.write(crc24_data) sys.stdout.flush() if message_number == 1005: # blank 1008 message for Trimble sys.stdout.buffer.write(bytes([0xd3,0x00,0x06,0x3f,0x00,0x00,0x00,0x00,0x00,0x99,0x25,0xca])) sys.stdout.flush() |
これをtr1008.pyとして保存。socatでシリアルから受けて、tr1008.pyを処理して標準入出力に対応したstr2strでNtripCasterに送信。
socat /dev/ttyAMA0,b115200,raw - | ./tr1008.py | str2str -out ntrips://:PASS:xxx.xxx.xxx.xxx:2101/MountPoint |