| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | Napísal psm: 11.11.2009 17:29 | |
|
Dobry den,
mohli by ste mi prosim Vas poradit, ako prerobit tento zdrojovy kod, tak aby nakonfiguroval seriovy port rs232? To DCB si budem musiet asi zistit podla snimaca, ktory napojim cez ten rs232 port, vsak?
Dakujem
#include <windows.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
char *pcCommPort = "COM2";
hCom = CreateFile( pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // must be opened with exclusive-access
NULL, // no security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);
if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
printf ("CreateFile failed with error %d.\n", GetLastError());
return (1);
}
// Build on the current configuration, and skip setting the size
// of the input and output buffers with SetupComm.
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess)
{
// Handle the error.
printf ("GetCommState failed with error %d.\n", GetLastError());
return (2);
}
// Fill in DCB: 57,600 bps, 8 data bits, no parity, and 1 stop bit.
dcb.BaudRate = CBR_57600; // set the baud rate
dcb.ByteSize = 8; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT; // one stop bit
fSuccess = SetCommState(hCom, &dcb);
if (!fSuccess)
{
// Handle the error.
printf ("SetCommState failed with error %d.\n", GetLastError());
return (3);
}
printf ("Serial port %s successfully reconfigured.\n", pcCommPort);
return (0);
}
|
|
Registrovaný: 25.03.08 Prihlásený: 07.02.10 Príspevky: 72 Témy: 9 | |
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | Napísal autor témy psm: 11.11.2009 21:49 | |
|
#include <windows.h>
#include <stdio.h>
#include <winbase.h>
int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom; // Handle na objekt typu súbor
BOOL fSuccess; //Deklarácia premennej, ktora vracia hodnoty true, false
BYTE Data; //Deklarácia premennej- 8 bitové celé číslo bez znamienka
DWORD Pocet; //Deklarácia premennej- 32 bitové celé číslo bez znamienka
COMMTIMEOUTS CommTimeouts;
char *pcCommPort = "COM2";
hCom = CreateFile(
pcCommPort, // Názov portu, ktorý otvárame
GENERIC_READ | GENERIC_WRITE, // Otvárame na čítanie aj na zápis
0, // Zdieľanie nebude žiadne
NULL, // Bezpečnostné info žiadne
OPEN_EXISTING, // Otvárame existujúci (port)
0, // Žiadne atribúty súboru
NULL); // Musí byť NULL
if ( hCom == INVALID_HANDLE_VALUE )
{
printf("\n Chyba: Port sa neda otvorit.\n");
system("pause");
CloseHandle(hCom);
return 0;
}
DCB dcbSerialParams = {0}; //Nastavenie DCB parametrov
dcb.DCBlength = sizeof(DCB);
dcb.BaudRate = CBR_57600; // nastavenie prenosovej rýchlosti
dcb.ByteSize = 8; // nastavenie veľkosti dát
dcb.Parity = NOPARITY; // nastavenie parity- žiadna parita
dcb.StopBits = ONESTOPBIT; // nastavenie stop bitov- jeden stop bit
fSuccess = SetCommState(hCom, &dcb); //Nastavenie aktuálnych nastavení na port
if (!fSuccess)
{
printf ("Nastavenie DCB zlyhalo %d.\n", GetLastError());
return (0);
}
//Zmena nastavení prerušení
COMMTIMEOUTS timeouts={0};
CommTimeouts.ReadIntervalTimeout = 50;
CommTimeouts.ReadTotalTimeoutMultiplier = 10;
CommTimeouts.ReadTotalTimeoutConstant = 50;
fSuccess = SetCommTimeouts(hCom, &CommTimeouts); //Nastavenie aktuálnych nastavení na port
if (!fSuccess)
{
printf ("Nastavenie preruseni zlyhalo %d.\n", GetLastError());
return (0);
}
printf ("Port %s bol uspesne nastaveny.\n", pcCommPort);
return (0);
ReadFile(
hCom, // Handle portu, z ktorého čítame
&Data, // Pointer na buffer, kam ukladáme prijaté dáta
1, // Počet bytov, na ktoré čakáme
&Pocet, // Pointer na skutočný počet prijatých dát
NULL); // Musí byť NULL
}
Tak taketo daco som z toho zlozil, mohli by ste mi este poradit, ako dat tie nacitane udaje do formatu xml??? Dakujem
|
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|