]>
git.defcon.no Git - hm-trp-tool/blob - set_speed.c
1 #include <errno.h> /* Error number definitions */
2 #include <string.h> /* String function definitions */
3 #include <stdio.h> /* Standard I/O */
4 #include <unistd.h> /* sleep */
5 #include <stdlib.h> /* malloc, free */
10 #define CBUFFER_SIZE 32
12 int main ( int argc
, char** argv
)
19 unsigned char buf
[CBUFFER_SIZE
];
21 config_t
* config
= malloc(sizeof(config_t
));
22 bzero(config
, sizeof(config_t
));
26 printf("Serial port device required as argument, e.g. /dev/ttyUSB0\n");
32 printf("Desired bit-rate required. Use RS232 rates only.\n");
36 rate
= atol( argv
[2] );
37 for ( r
= 0; r
<= count_rates
; r
++ )
38 if ( port_rate_value
[r
] == rate
) { rate
= r
; break; }
40 if ( r
>= count_rates
) { printf("Invalid data rate requested\n"); return 1; }
42 printf("Looking for device on port %s\n", argv
[1]);
44 for ( r
= 0; r
<= count_rates
; r
++ )
46 fd
= open_port( argv
[1], port_rates
[r
] );
53 if ( read_config( fd
, config
) == 1 )
55 printf("Found device at baud-rate %d.\n", port_rate_value
[r
] );
57 if ( r
== rate
&& ( config
->air_rate
== config
->uart_rate
) )
59 printf("Data rate is already set to %d\n", port_rate_value
[r
] );
63 write_cmd( fd
, cmd_air_rate
);
64 write_uint32_t( fd
, port_rate_value
[rate
] );
66 if ( ! read_ok( fd
) )
68 printf("Air rate NOT set\n");
72 write_cmd( fd
, cmd_uart_rate
);
73 write_uint32_t( fd
, port_rate_value
[rate
] );
75 read_ok( fd
); // Clear buffer.
77 printf("Device UART and air data rate set to %d\n", port_rate_value
[rate
] );
82 printf("Unable to find device on %s\n", argv
[1]);