Podlaczylem do portu COM2 czujnik ruchu - Z czujnika sa tylko dwa wyjscia sygnalowe (NC) podpialem je do pinow 2 i 3, dobrze to podpialem?
Chcialby napisac do tego podejrzewam bardzo prosty program na poczatek taki: jesli czujnik wykryje ruch tzn jakikolwiek sygnal pojdzie po kablu RS232 do portu COM2 program mialby dawac komunikat np. "Wykryto ruch".
Czy ktos moglby mnie naprowadzic jak to zrobic? Kupilem ksiazke RS232. Praktyczne programowanie aczkolwiek tam wszystko wyglada na bardzo skomplikowane.
Na poczatek na pewno trzeba port skonfigurowac i go otworzyc (fragment kodu znaleziony na elektrodzie):
Kod: Zaznacz cały
#include <windows.h>
#include <stdio.h>
int main(int argc, char** argv)
{
HANDLE hCom; //uchwyt portu
DCB dcb; //konfiguracja portu
BOOL fSuccess; //flaga pomocnicza
BYTE RS_buf; //bufor danej
DWORD RS_ile; //ilosc bitow wyslanych
//otwarcie portu COM2 z prawami RW
hCom = CreateFile( TEXT("COM2"), GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // default security attributes
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hCom == INVALID_HANDLE_VALUE)
{
printf("CreateFile failed with error %d.\n", GetLastError());
return 1;
}
//pobranie aktualnych ustawien portu
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess)
{
printf ("GetCommState failed with error %d.\n", GetLastError());
return 2;
}
//ustawienie naszej konfiguracji
dcb.BaudRate = CBR_19200; // predkosc transmisji
dcb.ByteSize = 8; // ilosc bitow danych
dcb.Parity = NOPARITY; // brak bitu parzystosci
dcb.StopBits = TWOSTOPBITS; // dwa bity stopu
fSuccess = SetCommState(hCom, &dcb);
if (!fSuccess)
{
printf ("SetCommState failed with error %d.\n", GetLastError());
return 3;
}
Co dalej, aby program dzialal dla moich potrzeb?!