int UART::openUart(AnsiString &Com) {
DWORD dwBytesRead, ByteCount;
COMMTIMEOUTS ctmoNew = {0}, ctmoOld;
DCB dcb;
ZeroMemory(&dcb, sizeof(dcb));
dcb.DCBlength = sizeof(dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
// ------copy to dcbCommPort------
// dcbCommPort = dcb;
Com.Insert("\\\\.\\", 1);
char *a = Com.c_str();
// wchar_t *Wch = (wchar_t*)std::malloc(sizeof(Com.c_str()));
wchar_t *Wch = (wchar_t*)std::malloc(Com.Length()*sizeof(wchar_t));
// int x = sizeof(Com.c_str());
int x = Com.Length()*sizeof(wchar_t);
// mbstowcs(Wch, Com.c_str(), x);
mbstowcs(Wch, a, x);
//CreateFile 建立一個通道 基於WINAPI的函數
h_RS232 = CreateFile(Wch, GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, 0, NULL);
if (h_RS232) {
// 清空上一次的狀態
PurgeComm(h_RS232,
PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
SetCommState(h_RS232, &dcb);
// ShowMessage("Connect Success!");
// Form3->sts_text_lbl->Caption = Form3->portbox->Text +
// " (9600 ,8 , N, 1)";
GetCommTimeouts(h_RS232, &ctmoOld);
ctmoNew.ReadTotalTimeoutConstant = 100; // 10ms~50ms
ctmoNew.ReadTotalTimeoutMultiplier = 0;
ctmoNew.WriteTotalTimeoutConstant = 0;
ctmoNew.WriteTotalTimeoutMultiplier = 0;
SetCommTimeouts(h_RS232, &ctmoNew);
// while(true){
// WriteFile(h_RS232,ss.c_str(),strlen(ss.c_str()),&ByteCount,NULL);}
return 1;
}
else {
// ShowMessage("Connect Fail!");
return 0;
}
}
一個小coder的心得集散地
隨筆紀錄
2017年4月20日 星期四
基礎的rs232控制
先從確認Port開始,開啟Port是第一個要件
2017年4月15日 星期六
2015年6月7日 星期日
做資料庫的一個想法,因為他基本的的資料庫有點難搞,公司的又常常罷工=_=|||
記得之前有做過類似圖書館系統的借書(經典範例)
然後存取都是靠 ptr 紀錄下一筆資料的寄存地點,因此很努力的想實踐
第一關
【資料合併】
typedef 、struct 、union
第二關
【記憶體分配】
pointer * &
第三關
【class化】
記得之前有做過類似圖書館系統的借書(經典範例)
然後存取都是靠 ptr 紀錄下一筆資料的寄存地點,因此很努力的想實踐
第一關
【資料合併】
typedef 、struct 、union
struct{
char b[4];
char c[6];
}
struct 將char b、c 綁再一起
union{
char a[10];
struct{
char b[4];
char c[6];
}
};
union將a[10]跟 struct 那兩個char 的記憶體共用。typedef data{
union{
char a[10];
struct{
char b[4];
char c[6];
}
int d;//8byte-32bit
};
typedef 把兩個不同的格式整合再一起第二關
【記憶體分配】
pointer * &
第三關
【class化】
訂閱:
文章 (Atom)