fix com ports
This commit is contained in:
parent
11b9374377
commit
d223f78392
@ -11,12 +11,7 @@ int main() {
|
|||||||
HANDLE Port_2;
|
HANDLE Port_2;
|
||||||
init_hdlc_client(&hdlc, 200);
|
init_hdlc_client(&hdlc, 200);
|
||||||
|
|
||||||
hdlc_connect(&hdlc);
|
//Открыть COM-порт
|
||||||
uint8_t buffer_send_connect[10];
|
|
||||||
|
|
||||||
hdlc_get_raw_frame(&hdlc, buffer_send_connect, sizeof buffer_send_connect);
|
|
||||||
|
|
||||||
// Открыть COM-порт
|
|
||||||
Port_1 = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,
|
Port_1 = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,
|
||||||
0, NULL, OPEN_EXISTING,
|
0, NULL, OPEN_EXISTING,
|
||||||
0, NULL);
|
0, NULL);
|
||||||
@ -32,12 +27,12 @@ int main() {
|
|||||||
// Установка таймаутов чтения/записи
|
// Установка таймаутов чтения/записи
|
||||||
timeouts1.ReadIntervalTimeout = 100;
|
timeouts1.ReadIntervalTimeout = 100;
|
||||||
timeouts1.ReadTotalTimeoutConstant = 100;
|
timeouts1.ReadTotalTimeoutConstant = 100;
|
||||||
timeouts1.ReadTotalTimeoutMultiplier = 20;
|
timeouts1.ReadTotalTimeoutMultiplier = 50;
|
||||||
timeouts1.WriteTotalTimeoutConstant = 50;
|
timeouts1.WriteTotalTimeoutConstant = 100;
|
||||||
timeouts1.WriteTotalTimeoutMultiplier = 20;
|
timeouts1.WriteTotalTimeoutMultiplier = 50;
|
||||||
|
|
||||||
if (!SetCommTimeouts(Port_1, &timeouts1)) {
|
if (!SetCommTimeouts(Port_1, &timeouts1)) {
|
||||||
printf("Ошибка при установке таймаутов COM-порта.\n");
|
printf("err add timeout COM port.\n");
|
||||||
CloseHandle(Port_1);
|
CloseHandle(Port_1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -59,6 +54,10 @@ int main() {
|
|||||||
CloseHandle(Port_1);
|
CloseHandle(Port_1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
hdlc_connect(&hdlc);
|
||||||
|
uint8_t buffer_send_connect[10];
|
||||||
|
|
||||||
|
hdlc_get_raw_frame(&hdlc, buffer_send_connect, sizeof buffer_send_connect);
|
||||||
|
|
||||||
//Write frame from port 1
|
//Write frame from port 1
|
||||||
DWORD written;
|
DWORD written;
|
||||||
@ -112,16 +111,16 @@ int main() {
|
|||||||
mess.str = "word war";
|
mess.str = "word war";
|
||||||
mess.len_str = sizeof mess.str;
|
mess.len_str = sizeof mess.str;
|
||||||
|
|
||||||
uint8_t data[32];
|
uint8_t data[23];
|
||||||
size_t len_data;
|
size_t len_data;
|
||||||
protocol_encode(mess, data, &len_data);
|
protocol_encode(mess, data, &len_data);
|
||||||
|
hdlc_send_data(&hdlc, data, sizeof(data));
|
||||||
|
uint8_t buffer_for_ex_data[29];
|
||||||
|
|
||||||
hdlc_send_data(&hdlc, data, len_data);
|
hdlc_get_raw_frame(&hdlc, buffer_for_ex_data, sizeof buffer_for_ex_data);
|
||||||
uint8_t buffer_data[72];
|
|
||||||
hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data);
|
|
||||||
|
|
||||||
DWORD written_data;
|
DWORD written_data;
|
||||||
BOOL success_write_data = WriteFile(Port_1, buffer_send_connect, sizeof buffer_send_connect,
|
BOOL success_write_data = WriteFile(Port_1, buffer_for_ex_data, sizeof buffer_for_ex_data,
|
||||||
&written_data, NULL);
|
&written_data, NULL);
|
||||||
|
|
||||||
if (!success_write_data){
|
if (!success_write_data){
|
||||||
@ -129,20 +128,16 @@ int main() {
|
|||||||
printf("WriteFile err: %lu.\n", errorCode);
|
printf("WriteFile err: %lu.\n", errorCode);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (written_data != sizeof buffer_send_connect){
|
if (written_data != sizeof buffer_for_ex_data){
|
||||||
printf("Failed to write all bytes to port");
|
printf("Failed to write all bytes to port");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i <1100; i++ ){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool flag_data = false;
|
bool flag_data = false;
|
||||||
while(!flag_data){
|
while(!flag_data){
|
||||||
uint8_t buffer_recive_data[80];
|
uint8_t buffer_recive_data[29];
|
||||||
DWORD received_data;
|
DWORD received_data;
|
||||||
BOOL success = ReadFile(Port_2, &buffer_recive_data, sizeof buffer_recive_data,
|
BOOL success = ReadFile(Port_2, buffer_recive_data, sizeof buffer_recive_data,
|
||||||
&received_data, NULL);
|
&received_data, NULL);
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
@ -150,7 +145,7 @@ int main() {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t data_recive[64];
|
uint8_t data_recive[23];
|
||||||
size_t len_data_recive;
|
size_t len_data_recive;
|
||||||
int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data,
|
int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data,
|
||||||
data_recive, &len_data_recive);
|
data_recive, &len_data_recive);
|
||||||
@ -163,20 +158,15 @@ int main() {
|
|||||||
// }
|
// }
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
for(int i = 0; i < sizeof data_recive; i++){
|
|
||||||
printf("%d: %d\n", i, data_recive[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct message resp;
|
struct message resp;
|
||||||
protocol_decode(data_recive, sizeof data_recive, &resp);
|
protocol_decode(data_recive, sizeof data_recive, &resp);
|
||||||
if (resp.len_str > 0){
|
|
||||||
printf("1: %f\n", resp.numbers[0]);
|
printf("1: %f\n", resp.numbers[0]);
|
||||||
printf("2: %f\n", resp.numbers[1]);
|
printf("2: %f\n", resp.numbers[1]);
|
||||||
printf("3: %f\n", resp.numbers[2]);
|
printf("3: %f\n", resp.numbers[2]);
|
||||||
printf("str: %s\n", resp.str);
|
printf("str: %s\n", resp.str);
|
||||||
flag_data = true;
|
flag_data = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle(Port_1);
|
CloseHandle(Port_1);
|
||||||
CloseHandle(Port_2);
|
CloseHandle(Port_2);
|
||||||
|
Loading…
Reference in New Issue
Block a user