@@ -1343,6 +1343,61 @@ def decode_l6msg(self, msg, ofst):
13431343 copy_buff (msg , self .buff , i , 1695 * self .fcnt , 1695 )
13441344 self .fcnt = self .fcnt + 1
13451345
1346+ def merge_cssr (self , cs_ ):
1347+ """ merge additional correction """
1348+ if self .facility != cs_ .facility :
1349+ return False
1350+
1351+ # merge sis corrections
1352+ sat_t = [x for x in cs_ .sat_n if x not in self .sat_n ]
1353+ for sat in sat_t :
1354+ sys , _ = sat2prn (sat )
1355+ self .sat_n .append (sat )
1356+ self .gnss_n .append (sys )
1357+ self .nsat_n += 1
1358+ self .nsat_g [sys ] += 1
1359+ self .sig_n [sat ] = cs_ .sig_n [sat ]
1360+
1361+ if sat in self .dclk :
1362+ self .dclk [sat ] = cs_ .dclk [sat ]
1363+ if sat in self .dorb :
1364+ self .iode [sat ] = cs_ .iode [sat ]
1365+ self .dorb [sat ] = cs_ .dorb [sat ]
1366+ if sat in self .cbias :
1367+ self .cbias [sat ] = cs_ .cbias [sat ]
1368+ self .nsig_n .append (len (self .cbias [sat ]))
1369+ if sat in self .pbias :
1370+ self .pbias [sat ] = cs_ .pbias [sat ]
1371+ if sat in self .ura :
1372+ self .ura [sat ] = cs_ .ura [sat ]
1373+
1374+ # merge local corrections
1375+ for inet in range (0 , self .MAXNET + 1 ):
1376+ sat_t = [x for x in cs_ .lc [inet ].sat_n
1377+ if x not in self .lc [inet ].sat_n ]
1378+ for sat in sat_t :
1379+ self .lc [inet ].sat_n .append (sat )
1380+ self .lc [inet ].nsat_n += 1
1381+ if sat in cs_ .lc [inet ].dclk :
1382+ self .lc [inet ].dclk [sat ] = cs_ .lc [inet ].dclk [sat ]
1383+ if sat in cs_ .lc [inet ].dorb :
1384+ self .lc [inet ].iode [sat ] = cs_ .lc [inet ].iode [sat ]
1385+ self .lc [inet ].dorb [sat ] = cs_ .lc [inet ].dorb [sat ]
1386+ if sat in cs_ .lc [inet ].ura :
1387+ self .lc [inet ].ura [sat ] = cs_ .lc [inet ].ura [sat ]
1388+ if sat in cs_ .lc [inet ].cbias :
1389+ self .lc [inet ].cbias [sat ] = cs_ .lc [inet ].cbias [sat ]
1390+ if sat in cs_ .lc [inet ].pbias :
1391+ self .lc [inet ].pbias [sat ] = cs_ .lc [inet ].pbias [sat ]
1392+
1393+ if sat in cs_ .lc [inet ].stec_quality :
1394+ self .lc [inet ].stec_quality [sat ] = \
1395+ cs_ .lc [inet ].stec_quality [sat ]
1396+ self .lc [inet ].ci [sat ] = cs_ .lc [inet ].ci [sat ]
1397+ self .lc [inet ].dstec [sat ] = cs_ .lc [inet ].dstec [sat ]
1398+
1399+ return True
1400+
13461401
13471402class cssre ():
13481403 """ Class to encode the Compact SSR messages (experimental) """
0 commit comments