2013. 4. 12. 11:29ㆍOS/Ubuntu
우분투 시리얼 통신 하는법
1. 클래스를 추가한다.
- 추가후 헤더를 인클루드 해준다.
#include "QAsyncSerial.h"
2. 라이브러리를 추가한다.
LIBS += -L/usr/local/lib \
-lboost_system \
-lboost_thread \
-lboost_date_time \
3. 시리얼 변수를 생성한다.
QAsyncSerial Serial1;
4. 이벤트를 연결할 slot을 생성해준다.
//명칭은 아무거나 해도된다.
private slots:
void onLineReceived_Serial(QString strData);//
5. 슬롯을 연결해준다.
connect(&Serial1, SIGNAL(lineReceived(QString)), this, SLOT(onLineReceived_Serial(QString)));
6. 시리얼 오픈
void MainWindow::Serial1_Port_Open()
{
if (Serial1.isOpen() == true)
{
Serial1.close();
}
else
{
Serial1.open("/dev/ttyUSB0",9600); //USB 젠더를 사용할 경우
//Serial1.open("/dev/ttyS0", 9600);// 내장 시리얼 포트를 활용할 경우
if (!Serial1.isOpen() || Serial1.errorStatus())
{
Display_Log("Error : COM 1 Open Failed");
return;
}
else
{
// m_bPort_Open[COM1] = true;
//ui->label_RS232->clear();
//ui->label_RS232->setText("RS-232 :: COM 1");
}
}
}
7. 수신 부분
void MainWindow::onLineReceived_Serial(QString strData)
{
if (strData != "")
{
//Todo: 데이터 수신
switch(strData.at(0).toAscii())
{
case STX:
RXDATA.clear();
RXDATA.append(strData);
break;
case ETX:
break;
default:
RXDATA.append(strData);
if(RXDATA.length()>1024)
{
RXDATA.remove(0,1);
}
break;
}
}
}
'OS > Ubuntu' 카테고리의 다른 글
[Ubuntu] 레이블 색 변경 (0) | 2013.04.12 |
---|---|
[Ubuntu] 소리 출력 (0) | 2013.04.12 |
[Ubuntu] NAS 설치법 (0) | 2013.04.08 |
[우분투] root권환 (0) | 2013.04.02 |
[우분투] chrom root 권한 실행 (0) | 2013.02.01 |