掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RS232Cの制御プログラムの改造 (ID:68678)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
http://www.alab.t.u-tokyo.ac.jp/~bond/doc/rs232c.html に記載されているRC232C制御のプログラムを改造したいと思っています. 上記のプログラム内のCSerialComTestDlg.cppに以下のソースが含まれます. void CSerialComTestDlg::OnSend() { CEdit *pSendED=(CEdit*)GetDlgItem(IDC_DATA_SEND); char buf[MAX_COM_SIZE]; pSendED->GetWindowText(buf,MAX_COM_SIZE); int len; len=strlen(buf); buf[len++]=0x0d; //CR buf[len++]=0x0a; //LF buf[len]='\0'; //NULL com1.Send(buf, len); } ここでは,エディットボックス内の文字列を取得して,それをRC232Cに送っていると思われます.(すみません,よく分かりません...) そこで,エディットボックスからの入力ではなく,あらかじめ決められた文字列をRC232Cに送るためには,どのように書き換えればよいでしょうか? 以下のソースを試したところ, void CSerialComTestDlg::OnSend() { char buf[MAX_COM_SIZE]; buf="AIUEOaiueo"; int len; len=strlen(buf); buf[len++]=0x0d; //CR buf[len++]=0x0a; //LF buf[len]='\0'; //NULL com1.Send(buf, len); } error C2440: '=' : cannot convert from 'char [11]' to 'char [512]'There is no context in which this conversion is possibleというエラーが出てきました.現在,送りたい文字列(例えばAIUEOaiueo)の指定の仕方を模索中です. 元のRC232C制御プログラムに関してですが, rs232cCTL.cppの関数では, COMポートハンドルの取得はUINT CRs232cCtl::Open(HWND hWnd, char* port_name) 送受信バッファ初期化・基本通信条件の設定はUINT CRs232cCtl::SetComConfig(DCB* dcb) タイムアウト時間の設定はUINT CRs232cCtl::SetTimeouts(COMMTIMEOUTS *to) 送信はUINT CRs232cCtl::Send(char* data, unsigned int num) 受信はUINT CRs232cCtl::ReceiveThread(LPVOID arg) 終了処理はCRs232cCtl::~CRs232cCtl() が対応しています。(とさん情報) 宜しくお願い致します.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.