TDControl2のcomc.hを読む

公開日: : 最終更新日:2014/01/31 電脳メガネ

記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。


bool COMControl::OpenCom(int com,int speed)
{
if(opend){
return false;
}

char Namebuf[256];
DCB dcb;

strcpy(Namebuf,"COM");
sprintf(&Namebuf[3],"%d",com);

hCom = CreateFile(
Namebuf,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);

if(hCom == INVALID_HANDLE_VALUE){
opend = false;
return false;
}

GetCommState(hCom,&dcb);
dcb.BaudRate = speed;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;

if(SetCommState(hCom,&dcb) != 0){
opend = true;
return true;
}else{
CloseCom();
opend = false;
return false;
}
}

bool COMControl::SendData(DWORD size,void* data)
{
DWORD WritedSize;
if(WriteFile(hCom,data,size,&WritedSize,NULL) != 0){
return true;
}
return false;
}

bool COMControl::ReadData(DWORD size,void* data)
{
DWORD errors;
COMSTAT comstat;
DWORD bytes;

ClearCommError(hCom,&errors,&comstat);
if(comstat.cbInQue < size){
return false;
}

if(ReadFile(hCom,data,size,&bytes,NULL) != 0){
return true;
}
return false;
}

bool COMControl::CloseCom(void)
{
if(!opend){
return false;
}

opend = false;

if(CloseHandle(hCom) != 0){
return true;
}else{
return false;
}
}

  • CreateFile
  • WriteFile
  • ReadFile
  • CloseHandle

は確かWin32APIだったはずなので、ここら辺を

  • open
  • write
  • read
  • close

あたりに置き換えてあげれば動作しそう。

TODO

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

lolipop アップルの開発者向けイベント「WWDC2014」

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑