我利用eclipse + qt先把視窗建構出來後,
我打算當我按下一個按鈕時 就把我上面輸入的東西經由rs232傳送到另一個port上,
所以我就把打開device 和 write device的程式碼放在我按下按鈕那個程式碼區段內 如下
#define BAUDRATE B9600
#define MODEMDEVICE "/dev/ttyS1"
void AddressBook::on_xyButton_clicked()
{
int fd, res;
struct termios oldtio, newtio;
fd = open(MODEMDEVICE, O_RDWR|O_NOCTTY);
if (fd < 0) {
perror(MODEMDEVICE);
exit(1);
}
tcgetattr(fd, &oldtio);
bzero(&newtio, sizeof(newtio));
newtio.c_cflag = BAUDRATE|CS8|CLOCAL|CREAD;
newtio.c_iflag = IGNPAR;
newtio.c_oflag = 0;
newtio.c_lflag = ICANON;
tcflush(fd, TCIFLUSH);
tcsetattr(fd, TCSANOW, &newtio);
QString position = ui.posEdit->text();
res=write(fd, position.toAscii().data(), 1);
close(fd);
tcsetattr(fd, TCSANOW, &oldtio);
}
我測試過write傳回的值是1 所以應該式正確寫入
但是我用另一個可以接收rs232資料的程式打開後卻都沒有接收到任何東西,
不知道是怎麼回事,
我怕是因為對於事件的概念還不是很好 所以把程式碼放入不恰當的地方,
所以懇求高手幫我看一下
謝謝~