@@ -680,9 +680,8 @@ static void prstatus(vt_t *vt)
680680 };
681681 gtime_t eventime = {0 };
682682 const char * freq []= {"-" ,"L1" ,"L1+L2" ,"L1+L2+E5b" ,"L1+L2+E5b+L5" ,"5" ,"6" ,"7" };
683- rtcm_t rtcm [3 ];
684683 pthread_t thread ;
685- int i , j , n ,cycle ,state ,rtkstat ,nsat0 ,nsat1 ,prcout ,rcvcount ,tmcount ,timevalid ,nave ;
684+ int j ,cycle ,state ,rtkstat ,nsat0 ,nsat1 ,prcout ,rcvcount ,tmcount ,timevalid ,nave ;
686685 int cputime ,nb [3 ]= {0 },nmsg [3 ][10 ]= {{0 }};
687686 char tstr [40 ],tmstr [40 ],s [1024 ],* p ;
688687 double runtime ,rt [3 ]= {0 },dop [4 ]= {0 },rr [3 ],bl1 = 0.0 ,bl2 = 0.0 ;
@@ -693,6 +692,12 @@ static void prstatus(vt_t *vt)
693692 rtk_t * rtk = (rtk_t * )malloc (sizeof (rtk_t ));
694693 if (rtk == NULL ) return ;
695694
695+ rtcm_t * rtcm [3 ] = { NULL , NULL , NULL };
696+ for (int i = 0 ; i < 3 ; i ++ ) {
697+ rtcm [i ] = (rtcm_t * )malloc (sizeof (rtcm_t ));
698+ if (rtcm [i ] == NULL ) goto done ;
699+ }
700+
696701 rtksvrlock (& svr );
697702 * rtk = svr .rtk ;
698703 thread = svr .thread ;
@@ -706,24 +711,25 @@ static void prstatus(vt_t *vt)
706711 cputime = svr .cputime ;
707712 prcout = svr .prcout ;
708713 nave = svr .nave ;
709- for (i = 0 ;i < 3 ;i ++ ) nb [i ]= svr .nb [i ];
710- for (i = 0 ;i < 3 ;i ++ ) for (j = 0 ;j < 10 ;j ++ ) {
714+ for (int i = 0 ;i < 3 ;i ++ ) nb [i ]= svr .nb [i ];
715+ for (int i = 0 ;i < 3 ;i ++ ) for (j = 0 ;j < 10 ;j ++ ) {
711716 nmsg [i ][j ]= svr .nmsg [i ][j ];
712717 }
713718 if (svr .state ) {
714719 runtime = (double )(tickget ()- svr .tick )/1000.0 ;
715720 rt [0 ]= floor (runtime /3600.0 ); runtime -= rt [0 ]* 3600.0 ;
716721 rt [1 ]= floor (runtime /60.0 ); rt [2 ]= runtime - rt [1 ]* 60.0 ;
717722 }
718- for (i = 0 ;i < 3 ;i ++ ) rtcm [i ]= svr .rtcm [i ];
723+ for (int i = 0 ;i < 3 ;i ++ ) * rtcm [i ]= svr .rtcm [i ];
719724 if (svr .raw [0 ].obs .data != NULL ) {
720725 timevalid = svr .raw [0 ].obs .data [0 ].timevalid ;
721726 eventime = svr .raw [0 ].obs .data [0 ].eventime ;
722727 }
723728 time2str (eventime ,tmstr ,9 );
724729 rtksvrunlock (& svr );
725-
726- for (i = n = 0 ;i < MAXSAT ;i ++ ) {
730+
731+ int n = 0 ;
732+ for (int i = 0 ;i < MAXSAT ;i ++ ) {
727733 if (rtk -> opt .mode == PMODE_SINGLE ) {
728734 if (!rtk -> ssat [i ].vs ) continue ;
729735 } else {
@@ -749,31 +755,31 @@ static void prstatus(vt_t *vt)
749755 vt_printf (vt ,"%-28s: %d\n" ,"cpu time for a cycle (ms)" ,cputime );
750756 vt_printf (vt ,"%-28s: %d\n" ,"missing obs data count" ,prcout );
751757 vt_printf (vt ,"%-28s: %d,%d\n" ,"bytes in input buffer" ,nb [0 ],nb [1 ]);
752- for (i = 0 ;i < 3 ;i ++ ) {
758+ for (int i = 0 ;i < 3 ;i ++ ) {
753759 sprintf (s ,"# of input data %s" ,type [i ]);
754760 vt_printf (vt ,"%-28s: obs(%d),nav(%d),gnav(%d),ion(%d),sbs(%d),pos(%d),dgps(%d),ssr(%d),err(%d)\n" ,
755761 s ,nmsg [i ][0 ],nmsg [i ][1 ],nmsg [i ][6 ],nmsg [i ][2 ],nmsg [i ][3 ],
756762 nmsg [i ][4 ],nmsg [i ][5 ],nmsg [i ][7 ],nmsg [i ][9 ]);
757763 }
758- for (i = 0 ;i < 3 ;i ++ ) {
764+ for (int i = 0 ;i < 3 ;i ++ ) {
759765 p = s ; * p = '\0' ;
760766 for (j = 1 ;j < 100 ;j ++ ) {
761- if (rtcm [i ]. nmsg2 [j ]== 0 ) continue ;
762- p += sprintf (p ,"%s%d(%d)" ,p > s ?"," :"" ,j ,rtcm [i ]. nmsg2 [j ]);
767+ if (rtcm [i ]-> nmsg2 [j ]== 0 ) continue ;
768+ p += sprintf (p ,"%s%d(%d)" ,p > s ?"," :"" ,j ,rtcm [i ]-> nmsg2 [j ]);
763769 }
764- if (rtcm [i ]. nmsg2 [0 ]> 0 ) {
765- sprintf (p ,"%sother2(%d)" ,p > s ?"," :"" ,rtcm [i ]. nmsg2 [0 ]);
770+ if (rtcm [i ]-> nmsg2 [0 ]> 0 ) {
771+ sprintf (p ,"%sother2(%d)" ,p > s ?"," :"" ,rtcm [i ]-> nmsg2 [0 ]);
766772 }
767773 for (j = 1 ;j < 300 ;j ++ ) {
768- if (rtcm [i ]. nmsg3 [j ]== 0 ) continue ;
769- p += sprintf (p ,"%s%d(%d)" ,p > s ?"," :"" ,j + 1000 ,rtcm [i ]. nmsg3 [j ]);
774+ if (rtcm [i ]-> nmsg3 [j ]== 0 ) continue ;
775+ p += sprintf (p ,"%s%d(%d)" ,p > s ?"," :"" ,j + 1000 ,rtcm [i ]-> nmsg3 [j ]);
770776 }
771777 for (j = 300 ;j < 399 ;j ++ ) {
772- if (rtcm [i ]. nmsg3 [j ]== 0 ) continue ;
773- p += sprintf (p ,"%s%d(%d)" ,p > s ?"," :"" ,j + 3770 ,rtcm [i ]. nmsg3 [j ]);
778+ if (rtcm [i ]-> nmsg3 [j ]== 0 ) continue ;
779+ p += sprintf (p ,"%s%d(%d)" ,p > s ?"," :"" ,j + 3770 ,rtcm [i ]-> nmsg3 [j ]);
774780 }
775- if (rtcm [i ]. nmsg3 [0 ]> 0 ) {
776- sprintf (p ,"%sother3(%d)" ,p > s ?"," :"" ,rtcm [i ]. nmsg3 [0 ]);
781+ if (rtcm [i ]-> nmsg3 [0 ]> 0 ) {
782+ sprintf (p ,"%sother3(%d)" ,p > s ?"," :"" ,rtcm [i ]-> nmsg3 [0 ]);
777783 }
778784 vt_printf (vt ,"%-15s %-9s: %s\n" ,"# of rtcm messages" ,type [i ],s );
779785 }
@@ -822,19 +828,22 @@ static void prstatus(vt_t *vt)
822828 vt_printf (vt ,"%-28s: %.3f,%.3f,%.3f\n" ,"vel enu (m/s) base" ,
823829 vel [0 ],vel [1 ],vel [2 ]);
824830 if (rtk -> opt .mode > 0 && rtk -> x && norm (rtk -> x ,3 )> 0.0 ) {
825- for (i = 0 ;i < 3 ;i ++ ) rr [i ]= rtk -> x [i ]- rtk -> rb [i ];
831+ for (int i = 0 ;i < 3 ;i ++ ) rr [i ]= rtk -> x [i ]- rtk -> rb [i ];
826832 bl1 = norm (rr ,3 );
827833 }
828834 if (rtk -> opt .mode > 0 && rtk -> xa && norm (rtk -> xa ,3 )> 0.0 ) {
829- for (i = 0 ;i < 3 ;i ++ ) rr [i ]= rtk -> xa [i ]- rtk -> rb [i ];
835+ for (int i = 0 ;i < 3 ;i ++ ) rr [i ]= rtk -> xa [i ]- rtk -> rb [i ];
830836 bl2 = norm (rr ,3 );
831837 }
832838 vt_printf (vt ,"%-28s: %.3f\n" ,"baseline length float (m)" ,bl1 );
833839 vt_printf (vt ,"%-28s: %.3f\n" ,"baseline length fixed (m)" ,bl2 );
834840 vt_printf (vt ,"%-28s: %s\n" ,"last time mark" ,tmcount ? tmstr : "-" );
835841 vt_printf (vt ,"%-28s: %d\n" ,"receiver time mark count" ,rcvcount );
836842 vt_printf (vt ,"%-28s: %d\n" ,"rtklib time mark count" ,tmcount );
843+
844+ done :
837845 free (rtk );
846+ for (int i = 0 ; i < 3 ; i ++ ) free (rtcm [i ]);
838847}
839848/* print satellite -----------------------------------------------------------*/
840849static void prsatellite (vt_t * vt , int nf )
0 commit comments