File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -71,6 +71,7 @@ void alarm_handler(int signo)
7171 if (serialfd >= 0 && pktbuf_size > 0 ) {
7272 write (serialfd , pktbuf , pktbuf_size );
7373 printf ("retransmitting...\n" );
74+ alarm (2 );
7475 }
7576}
7677
@@ -106,15 +107,15 @@ static int recv_ack(union usb_ack *ack)
106107 }
107108}
108109
109- static void check (uint8_t * pkt )
110+ static void check (uint8_t * pkt , int size )
110111{
111112 uint16_t * c = (uint16_t * )(pkt + 2 );
112113 int i ;
113114 uint16_t * p = (uint16_t * )(pkt + 4 );
114115 * c = 0 ;
115116 pkt [0 ] = 0xA5 ;
116117 pkt [1 ] = 0x5A ;
117- for (i = 0 ; i < 6 ; i ++ )
118+ for (i = 0 ; i < (( size - 4 ) >> 1 ) ; i ++ )
118119 * c += p [i ];
119120}
120121
@@ -224,7 +225,7 @@ int main(int argc, char** argv)
224225 break ;
225226 }
226227 pktbuf_size = res + 4 + sizeof (uint32_t );
227- check (pktbuf );
228+ check (pktbuf , pktbuf_size );
228229 write (serialfd , pktbuf , pktbuf_size );
229230 len += res ;
230231
You can’t perform that action at this time.
0 commit comments