https://github.com/yan9a/serial
'Serial' class သုံးထားတဲ့ နမူနာ serialcon.cpp ဆိုတဲ့ program လေးကို အောက်မှာ ပြထားပါတယ်။
#include#include "Serial.h" using namespace std; int main() { Serial com("\\\\.\\COM1",9600,8,'N',1); //Windows //Serial com("/dev/ttyS0",9600,8,'N',1); //Linux printf("Opening port %s.\n",com.GetPort().c_str()); if (com.Open() == 0) { printf("OK.\n");} else {printf("Error.\n");return 1;} bool successFlag; printf("Writing.\n"); char s[]="Hello"; successFlag=com.Write(s);//write string successFlag=com.WriteChar('!');//write a character printf("Waiting 3 seconds.\n"); delay(3000);//delay 5 sec to wait for a character printf("Reading.\n"); char c=com.ReadChar(successFlag);//read a char if(successFlag) printf("Rx: %c\n",c); printf("Closing port %s.\n",com.GetPort().c_str()); com.Close(); return 0; }
အစမှာ #include "Serial.h" လို့ ကြေငြာပြီး 'Serial' class ကို ထည့်လိုက်ပါတယ်။ ပြီးတော့ 'com' လို့ခေါ်တဲ့ object တစ်ခုကို port number, baud rate စတဲ့ တန်ဖိုး တွေနဲ့ ကြေငြာပါတယ်။ ဒီနမူနာအတွက်ဆိုရင် Windows မှာ COM1 ကိုသုံးမှာဖြစ်ပြီး၊ Linux မှာ ttyS0 ကို သုံးမှာဖြစ်ပါတယ်။ Linux မှာ USB device ကို သုံးမယ် ဆိုရင်တော့ ttyUSB0 ဖြစ်ကောင်း ဖြစ်နိုင် ပါတယ်။ Parity အတွက် က 'N','E','O','M', သို့ 'S' တို့ကို none, even, odd, mark, နဲ့ space တို့ အတွက် သုံးလို့ ရပါတယ်။
com ကို com.Open() နဲ့ ဖွင့်ပါတယ်။ Write နဲ့ WriteChar methods တွေကိုသုံးပြီး null terminated string ဒါမှမဟုတ် character တစ်လုံးကို ပို့နိုင်ပါတယ်။ ReadChar method နဲ့ character ကို ဖတ်တဲ့အခါ စောင့်မနေပဲ non-blocking ပုံစံနဲ့ ဖတ်မှာဖြစ်တဲ့အတွက် character ရှိမနေရင် successFlag က false လို့ပြပါမယ်။ Close method နဲ့ com ကို ပိတ်ပါတယ်။ RTS နဲ့ DTR lines တွေကိုလည်း control လုပ်နိုင်ပါတယ်။ CTS တို့၊ DSR တို့လို Status lines တွေကိုလည်း ဖတ်နိုင်ပါတယ်။ "serialcon.cpp" ကို Ubuntu Linux မှာ အောက်ကအတိုင်း compiled လုပ်၊ run လုပ်နိုင်ပါတယ်။
g++ serialcon.cpp Serial.h -o serialcon sudo ./serialcon
Windows ပေါ်မှာတော့ Visual Studio ဒါမှမဟုတ် tdm-gcc တို့၊ mingw တို့လို compiler တစ်ခုခုကို သုံးပြီး အောက်ကလိုမျိုး complie လုပ်၊ run လုပ်နိုင်ပါတယ်။
g++ serialcon.cpp Serial.h -o serialcon.exe -std=c++11 .\serialcon.exe
source code မှာနမူနာ wxWidgets GUI application - wxserial.cpp ပါ ပါပါတယ်။ အပေါ်က စစချင်းပုံက Visual C++ 2017 နဲ့ သုံးထားတာပါ။
အဲ့ဒီ wxserial.cpp program ကိုပဲ ဘာမှ မပြင်ပဲ Debian အခြေပြု Linux တွေပေါ်မှာ အောက်ကအတိုင်း built လုပ်၊ run လုပ်လို့ရပါတယ်။
g++ wxserial.cpp Serial.h wx-config --cxxflags --libs -o wxserial -DNDEBUG sudo ./wxserial
အဲ့ဒီ commands တွေလုပ်ဖို့အတွက် wxWdigets တော့ရှိနေဖို့လိုပြီး၊ သူ့ကိုအောက်ကအတိုင်း ထည့်သွင်းနိုင်ပါတယ်။
sudo apt-get install build-essential sudo apt-get install libwxgtk3.0-dev
အောက်က link တွေ ကတော့ wxWidgets သုံးတဲ့ အကြောင်းနဲ့ ၊ PC serial port ကို VB6 တို့ Visual Basic 2005 တို့နဲ့ သုံးတဲ့အကြောင်း ရေးခဲ့ဘူးတဲ့ အရင် ဆောင်းပါး အဟောင်းလေး တွေပါ။
Related posts:
No comments:
Post a Comment