📄 acsimulator.cpp
字号:
#include "stdio.h"
#include "conio.h"
#include <windows.h>
int Receiver(void);
long baseAdd,LSB,MSB,dataFormat,temp;
main()
{
long baseAdd,LSB,MSB,dataFormat,temp;
HANDLE hThread;
DWORD tid;
baseAdd = 0x2f8; // address for comm port 2
LSB = 0x0c; // for baudrate 9600
MSB = 0x00;
dataFormat = 0x03; // for 8,1,N
_outp(baseAdd+3,dataFormat); // setting dataformat register
temp = _inp(baseAdd+3);
temp = temp | 0x10;
_outp(baseAdd+3,temp); //setting DLAb bit to 1
_outp(baseAdd,LSB); // setting Baud Rate
_outp(baseAdd+1,MSB);
temp = _inp(baseAdd+3);
temp = temp & 0x7f;
_outp(baseAdd+3,temp); //Resetting DLAb bit to 1
hThread = CreateThread(0,
0,
(LPTHREAD_START_ROUTINE) Receiver,
0,
0,
&tid);
printf("Press Enter to terminate");
getch();
TerminateThread(hThread,0);
}
int Receiver(void)
{
char ch,data[4];
int length;
while(1)
{
while(!(_inp(baseAdd+5)&0x01));
ch = _inp(baseAdd);
if(ch==0x02) // STX
{
while(!(_inp(baseAdd+5)&0x01));
length = _inp(baseAdd);
for(int i=0;i<(length-2);i++)
{
while(!(_inp(baseAdd+5)&0x01));
data[i] = _inp(baseAdd);
}
data[i] = '\0';
if(length == 0x05)
{
switch(data[0])
{
case 'N':
printf("\nCommand for Switching On");
break;
case 'F':
printf("\nCommand for Switching Off");
break;
default:
printf("\nCommand to set the Temperature to %d",data[0]);
break;
}
}
else
{
printf("\nCommand to set the timer to %d:%d:%d",data[0],data[1],data[2]);
}
}
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -