2025年4月19日土曜日

Delphi:TComPortDrv + CH340 の組み合わせは Enabling the Serial Port Enmuarator をチェック

 Delphi + TComPortDrv で作った COM ポートにアクセスするアプリ、CH340 のポートを開こうとするとなぜかエラーになる。ポート番号を変えたりドライバーをチェックしたりいろいろやったがダメ。

 最後にデバイスマネージャーからプロパティをひらいて[Port Settings]->[Advanced...]と進んで 'Enabling the Serial Port Enmuarator' にチェックを入れ[OK]で更新したらDelphi + TComPortDrv で作ったあぷりで CH340 のポートにアクセスできるようになった。

 いろいろやってはみるものだ。

RS232 の automatic power down で嵌った

 RS232 の automatic power down で嵌った。

 とあるシステムで RS232 を使って接続している部分があった。装置 - RS232 - アダプタ - PC という構成。

 ここでアダプタを違うものに交換した。動かない。接続を間違ったか、Windows のドライバーの問題か?といろいろ調べていくと、新しいアダプタを使ったときに RS232 の部分に電圧がかかっていない。テスターの針が振れない。古いアダプタに戻すと電圧が出る。

 いろいろ悩んで装置側の RS232 に automatic power down の機能があることを思い出す。 新しいアダプタ単体で RS232 端子の電圧を計っても 0V。これは装置とアダプタ両方に automatic power down の機能があり、どちらも目を覚ませずにいるのではないかと考え、装置側の automatic power down を off に(PC側には off にする設定が無かった)。

 無事動作。

 装置側は MAX3221、アダプタは CH340+Windows11Pro24H2+DriverVersion3.9。

 

 

2025年3月4日火曜日

Delphi : 浮動小数点を整数に変換するには Trunc か Round

 まさかこんなところ15分もとられるとは。

 エラーが出て明示的に整数にキャストしてもだめで、あきらめて

StrToInt(FloatToStr(FloatValue);

とかやりそうになった。厳密なのはわかるけど、勘弁してくれ ><

Track は切り捨て

Round は丸め

 

2025年3月3日月曜日

Delphi + TCpmPortDriver : Demo アプリで Could not send data. No Device conneted .... ダイアログが表示されてデータ送出ができない

Delphi から TComPortDriver の Demo を操作していて、OUTGOING TEXT からシリアルポートに送出しようとしたら、以下のダイアログが出てきた。受信はできていたので、設定自体は間違っていないはずなのだが...、と調べて分かったこと。

TCpmPortDriver の CheckLinkStatus プロパティをオブジェクト インスペクタから False にすることで回避できる。


 

ちなみに Demo アプリの Settings Dialog を開いて Device Control タブの Device check を No に設定しても同じ。