diff --git a/hdlc_screen/main_com.c b/hdlc_screen/main_com.c index 769484c..d4ff80d 100644 --- a/hdlc_screen/main_com.c +++ b/hdlc_screen/main_com.c @@ -11,12 +11,7 @@ int main() { HANDLE Port_2; init_hdlc_client(&hdlc, 200); - hdlc_connect(&hdlc); - uint8_t buffer_send_connect[10]; - - hdlc_get_raw_frame(&hdlc, buffer_send_connect, sizeof buffer_send_connect); - - // Открыть COM-порт + //Открыть COM-порт Port_1 = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); @@ -32,12 +27,12 @@ int main() { // Установка таймаутов чтения/записи timeouts1.ReadIntervalTimeout = 100; timeouts1.ReadTotalTimeoutConstant = 100; - timeouts1.ReadTotalTimeoutMultiplier = 20; - timeouts1.WriteTotalTimeoutConstant = 50; - timeouts1.WriteTotalTimeoutMultiplier = 20; + timeouts1.ReadTotalTimeoutMultiplier = 50; + timeouts1.WriteTotalTimeoutConstant = 100; + timeouts1.WriteTotalTimeoutMultiplier = 50; if (!SetCommTimeouts(Port_1, &timeouts1)) { - printf("Ошибка при установке таймаутов COM-порта.\n"); + printf("err add timeout COM port.\n"); CloseHandle(Port_1); return 1; } @@ -59,6 +54,10 @@ int main() { CloseHandle(Port_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 DWORD written; @@ -112,16 +111,16 @@ int main() { mess.str = "word war"; mess.len_str = sizeof mess.str; - uint8_t data[32]; + uint8_t data[23]; size_t 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); - uint8_t buffer_data[72]; - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); + hdlc_get_raw_frame(&hdlc, buffer_for_ex_data, sizeof buffer_for_ex_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); if (!success_write_data){ @@ -129,20 +128,16 @@ int main() { printf("WriteFile err: %lu.\n", errorCode); 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"); return -1; } - for (int i = 0; i <1100; i++ ){ - - } - bool flag_data = false; while(!flag_data){ - uint8_t buffer_recive_data[80]; + uint8_t buffer_recive_data[29]; 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); if (!success) { @@ -150,7 +145,7 @@ int main() { return -1; } - uint8_t data_recive[64]; + uint8_t data_recive[23]; size_t len_data_recive; int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive); @@ -163,23 +158,18 @@ int main() { // } return err; } - for(int i = 0; i < sizeof data_recive; i++){ - printf("%d: %d\n", i, data_recive[i]); - } struct message resp; protocol_decode(data_recive, sizeof data_recive, &resp); - if (resp.len_str > 0){ - printf("1: %f\n", resp.numbers[0]); - printf("2: %f\n", resp.numbers[1]); - printf("3: %f\n", resp.numbers[2]); - printf("str: %s\n", resp.str); - flag_data = true; - } + printf("1: %f\n", resp.numbers[0]); + printf("2: %f\n", resp.numbers[1]); + printf("3: %f\n", resp.numbers[2]); + printf("str: %s\n", resp.str); + flag_data = true; } CloseHandle(Port_1); CloseHandle(Port_2); return 0; -} +} \ No newline at end of file