Титла: Който може да помага!!! Публикувано от: historymaker в Dec 11, 2011, 22:51 #include <windows.h>
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <conio.h> #define maxBytes 128 using namespace std; DWORD dwBytesWrite = 128; DWORD dwBytesRead = 128; DWORD dwBytesTransferred; BYTE Byte; int ComConfigure(int BaudRate, int ByteSize, int Parity, int StopBits) { DCB dcb; dcb.BaudRate = BaudRate; dcb.ByteSize = ByteSize; dcb.Parity = Parity; dcb.StopBits = StopBits; return TRUE; } int main( int argc, char *argv[] ) { DCB dcb; HANDLE hCom; COMMTIMEOUTS timeouts = {0}; DWORD dwBytesWrite = 0; DWORD dwBytesRead = 32; char szBuff[maxBytes] = {32}; BOOL fSuccess; int i; char *pcCommPort = "COM2"; hCom = CreateFile( pcCommPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL ); ComConfigure(300, 7, NOPARITY, ONESTOPBIT); if (hCom == INVALID_HANDLE_VALUE) { printf ("CreateFile failed with error %d.\n", GetLastError()); scanf("%d" ); return (1); } fSuccess = GetCommState(hCom, &dcb); if (!fSuccess) { printf ("GetCommState failed with error %d.\n", GetLastError()); scanf("%d"); return (2); } if (!fSuccess) { printf ("SetCommState failed with error %d.\n", GetLastError()); scanf ("%d.\n"); return (3); } ComConfigure(300, 7, NOPARITY, ONESTOPBIT); printf ("Serial port %s successfully reconfigured.\n", pcCommPort); i = sprintf(szBuff, "/?! \r \n"); { printf("Writing %hX bytes to serial port.\n", i, szBuff); } ReadFile (hCom, &Byte, 128, &dwBytesRead, NULL); printf("Response: %hX",ReadFile); scanf("%d"); return 0; } Срещам трудност при получаването на отговор от устройството към което е изпратен стринга, по принцип се работи по протокол и аз съм изпълнил всичко нужно от протокола в сорса, проблема е в това че получавам различен отговор всеки път при изпращането на ACK стринга /?! CR LF. Ако някой е запознат моля да помогне с каквото може. @historymaker, дори и кодът да е много четим и разбираем, може все пак да опишеш какво се опитваш да направиш и къде срещаш трудности. Заядливите постове ще бъдат отстранявани, съгласно т. 6 от Правилата, но и цялата тема може да замине за Кошчето, съгласно т. 1 от Правилата и допълнителните препоръки към тях. bop_bop_mara Титла: Re: Който може да помага!!! Публикувано от: bvbfan в Dec 24, 2011, 09:27 Цитат int ComConfigure(int BaudRate, int ByteSize, int Parity, int StopBits) Що за безсмислена функция е това ??? Тъпчиш настройки в локална структура, тази функция компилаторът дори не си е направил труда да я обработва, направо я е изхвърлил от изпълнимия файл и там, където я викаш я заменил с еквивалента на TRUE "1". Код
|