728x90
반응형
■ RFID
■ serial 출력 체크
■ 윈도우 시리얼 구현
VMware에서 구버전 리눅스의 알수없는 한계로 윈도우로 전환한다.
createfile() 함수 역시 하드웨어장치를 파일 취급한다는 것을 알 수 있따.
SetupComm() 2번째, 3번째인자 = 읽기버퍼 쓰기버퍼
■ dos.c
/* ㅃ-ㅃ-ㅃ- 소리남. */
#include <Windows.h>
#include <stdio.h>
int main()
{
u_char caString[255] = { 0x0D, 0x00, 0x71, 0x00, 0x30
, 0x00, 0x00, 0x00
, 0x0A, 0x00, 0x00, 0x46, 0x41 };
DWORD dwCnt; //double world Written 쓰기후 실제 쓴 바이트 수 저장 공간
DCB sPState; //struct Port State 시리얼 포트 상태 저장.
HANDLE hComm = CreateFile("COM4"
, GENERIC_READ | GENERIC_WRITE
, 0
, NULL
, OPEN_EXISTING
, FILE_ATTRIBUTE_NORMAL
, 0);
if (INVALID_HANDLE_VALUE == hComm)
{
printf("포트 열수 없음\n");
return 0;
}
if (0 == SetupComm(hComm, 4096, 4096))
{
printf("버퍼 설정 에러\n");
CloseHandle(hComm);
return 0;
}
if (0 == PurgeComm(hComm, PURGE_TXABORT | PURGE_TXCLEAR))
{
printf("버퍼 초기화 에러\n");
CloseHandle(hComm);
return 0;
}
sPState.DCBlength = sizeof(sPState);
if (0 == GetCommState(hComm, &sPState)) //시리얼 포트 상태를 조사한다.
{
printf("시리얼 상태 읽기 에러\n");
CloseHandle(hComm);
return 0;
}
sPState.BaudRate = CBR_38400;
sPState.ByteSize = 8;
sPState.Parity = EVENPARITY;
sPState.StopBits = ONESTOPBIT;
if (0 == SetCommState(hComm, &sPState)) //시리얼 포트 상태를 조사한다.
{
printf("시리얼 상태 설정 에러\n");
CloseHandle(hComm);
return 0;
}
WriteFile(hComm, caString, caString[0], &dwCnt, 0);
ReadFile(hComm, caString , 1, &dwCnt, 0);
ReadFile(hComm, caString+1, caString[0]-1 , &dwCnt, 0);
CloseHandle(hComm);
return 0;
}
unsigned short CRC16(void *vpData, unsigned int uiLen)
{
unsigned int i;
unsigned int j;
unsigned char *DATA = vpData;
unsigned short crc = CRC_PRESET;
for (i = 0; i < uiLen; i++)
{
crc ^= DATA[i];
for (j = 0; j < 8; j++)
{
if (crc & 0x0001)
{
crc = (crc >> 1) ^ CRC_POLYNOM;
}
else
{
crc = (crc >> 1);
}
}
}
return crc;
}
■ 변화
u_char caString[255] = { 0x0D, 0x00, 0x71
, 0x00, 0x3F //OS
, 0x00, 0x20 //OSF
, 0x00, 0x0A //OS_Time
, 0x00, 0x00 };
배열값에 변화를 주면 소리나 LED깜빡임에 변화를 줄 수 있다.
728x90
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151209 22번 우대희 일일업무일지 (3) | 2015.12.10 |
---|---|
20151209_박서연_일일업무보고서_RFID(2) (6) | 2015.12.10 |
20151209 김태현 개인업무일지 RFID 도스 시리얼 (5) | 2015.12.10 |
2015.12.09_Dos Serial RFID_이량경 (5) | 2015.12.10 |
2015-12-10 RFID 개인업무일지 - 천정호 (4) | 2015.12.10 |
20151209_[안향진]_RFID_2 (5) | 2015.12.09 |
20151209-김재홍-Serial_3일차-RFID_도스 (3) | 2015.12.09 |
20151209 업무일지 -여지윤- RFID(Dos) (3) | 2015.12.09 |