« -: 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