16,240
社区成员
发帖
与我相关
我的任务
分享
class myEvent : public QCustomEvent
{
public:
myEvent(int i) : QCustomEvent(12345), id(i) {};
int id;
};
//线程类
void MonitorThread::run()
{
myEvent *event1 = new myEvent(1);
myEvent *event2 = new myEvent(2);
myEvent *event3 = new myEvent(3);
myEvent *event4 = new myEvent(4);
myEvent *event5 = new myEvent(5);
int nStatusIn1,nStatusIn2,nStatusIn3,nStatusIn4,nStatusIn5;
nStatusIn1=nStatusIn2=nStatusIn3=nStatusIn4=nStatusIn5 =10;
int bDipFinished_1 = TRUE;
int bDipFinished_2 = TRUE;
int bDipFinished_3 = TRUE;
int bDipFinished_4 = TRUE;
int bDipFinished_5 = TRUE;
//IO控制
int fd;
int val=-1;
if( (fd=open(DEVICE_GPIOTEST,O_RDWR | O_NONBLOCK)) < 0 )
{
perror("can not open device");
return;
}
while(1)
{
if(bDipFinished_1)
{
nStatusIn1 = ioctl(fd,PA1,0);
if(!nStatusIn1) //低电平有效
{
//蜂鸣器响
QThread::postEvent(pMonitor, event1);
printf("bDipFinished_1 = FALSE \n");
bDipFinished_1 = FALSE;
}
}
else
{
nStatusIn1 = ioctl(fd,PA1,0);
if(nStatusIn1) //低电平有效
{
//蜂鸣器停
bDipFinished_1 = TRUE;
printf("bDipFinished_1 = TRUE \n");
}
}
if(bDipFinished_2)
{
nStatusIn2 = ioctl(fd,PA2,0);
if(!nStatusIn2) //低电平有效
{
//蜂鸣器响
//sleep 100 ms
//蜂鸣器停
//sleep 100 ms
QThread::postEvent(pMonitor, event2);
printf("bDipFinished_2 = FALSE \n");
bDipFinished_2 = FALSE;
}
}
else
{
nStatusIn2 = ioctl(fd,PA2,0);
if(nStatusIn2) //低电平有效
{
//蜂鸣器停
bDipFinished_2 = TRUE;
printf("bDipFinished_2 = TRUE \n");
}
}
if(bDipFinished_3)
{
nStatusIn3 = ioctl(fd,PA3,0);
if(!nStatusIn3) //低电平有效
{
//蜂鸣器响
QThread::postEvent(pMonitor, event3);
printf("bDipFinished_3 = FALSE \n");
bDipFinished_3 = FALSE;
}
}
else
{
nStatusIn3 = ioctl(fd,PA3,0);
if(nStatusIn3) //低电平有效
{
//蜂鸣器停
bDipFinished_3 = TRUE;
printf("bDipFinished_3 = TRUE \n");
}
}
if(bDipFinished_4)
{
nStatusIn4 = ioctl(fd,PA4,0);
if(!nStatusIn4) //低电平有效
{
//蜂鸣器响
QThread::postEvent(pMonitor, event4);
printf("bDipFinished_4 = FALSE \n");
bDipFinished_4 = FALSE;
}
}
else
{
nStatusIn4 = ioctl(fd,P