1111from random import randint , seed , sample
1212from binascii import unhexlify
1313
14+ # Validity Period DFi065
15+ vp_tbl = [1 , 2 , 5 , 10 , 15 , 30 , 60 , 120 , 240 ,
16+ 300 , 600 , 900 , 1800 , 3600 , 7200 , 10800 ]
17+
1418
1519def read_asc (file ):
1620 b = bytearray ()
@@ -38,9 +42,13 @@ def gen_data(mt, sys_t, svid_t):
3842
3943 # issue of GNSS satellite mask DFi010
4044 intr .pid = randint (0 , 4095 ) # provider id DFi027 (0-4095)
41- intr .tow = randint (0 , 604799 ) # tow
42- intr .vp = randint (0 , 15 ) # validity period DFi065 (0-15)
43- intr .uri = randint (0 , 65535 ) # update rate interval DFi067
45+ intr .tow = randint (0 , 604799 )* 1e-3 # tow
46+ intr .vp = vp_tbl [randint (0 , 15 )] # validity period DFi065 (0-15)
47+ intr .uri = randint (0 , 65535 )* 0.1 # update rate interval DFi067
48+
49+ intr .pidssr = randint (0 , 65535 ) # SSR Provider ID DFi078 (0-65535)
50+ intr .sidssr = randint (0 , 15 ) # SSR Solution Type DFi076 (0-15)
51+ intr .iodssr = randint (0 , 15 ) # SSR IOD DFi077 (0-15)
4452
4553 return intr
4654
@@ -61,6 +69,9 @@ def write_rtcm(file_rtcm, msg_t, intr, nep=1):
6169
6270 cs = rtcme ()
6371 cs .integ = copy .deepcopy (intr )
72+ cs .iodssr = intr .iodssr
73+ cs .pid = intr .pidssr
74+ cs .sid = intr .sidssr
6475
6576 fc = open (file_rtcm , 'wb' )
6677 if not fc :
@@ -111,16 +122,17 @@ def decode_rtcm(msg, intr=None, nep=1, logfile=None, maxlen=1024):
111122 k += cs .dlen
112123
113124 if intr is not None :
114- print (cs .integ .pid == intr .pid )
115- print (cs .integ .tow == intr .tow )
116- print (cs .integ .flag == intr .flag )
117- print (cs .integ .nid == intr .nid )
118- print (cs .integ .iod_sys == intr .iod_sys )
125+ print (f"pid: { cs .integ .pid == intr .pid } " )
126+ print (f"tow: { cs .integ .tow == intr .tow } " )
127+ print (f"flag: { cs .integ .flag == intr .flag } " )
128+ # print(f"iodsys: {cs.integ.iod_sys == intr.iod_sys}")
119129
120- if cs .msgtype == 11 :
121- print (cs .integ .vp == intr .vp )
122- print (cs .integ .uri == intr .uri )
130+ print (f"vp: { cs .integ .vp == intr .vp } " )
131+ print (f"uri: { cs .integ .uri == intr .uri } " )
123132
133+ print (f"pidssr: { cs .pid == intr .pidssr } " )
134+ print (f"sidssr: { cs .sid == intr .sidssr } " )
135+ print (f"iodssr: { cs .iodssr == intr .iodssr } " )
124136 return cs
125137
126138
0 commit comments