「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@806) [中] [解決]
@806■ (#2523) RS232Cの数値送信について - 一般人 (2016-01-17 12:16) /中 未処理
【症状】どのような症状、現象か?
「rs232c.nako」を使用し、1を送信しようとしたところ
実際には「1」のASCIIコードである49が送信されている。

【再現方法】サンプルソース、再現手順など
#ここから
!「rs232c.nako」を取り込む

サンプルとはRS232C
そのポート=「COM9」//場合により変更
その受信した時は~
  サンプルの受信データを言う

サンプルを開く
サンプルに1を送信
1秒待つ
サンプルを閉じる
#ここまで

【要望】どのような解決が望ましいか?
文字コードではなく数値データとして送信できるようにしてほしい。

【バージョン】確認したバージョン
Ver 1.555(デラックス版)

【その他】

(#2524) Re: RS232Cの数値送信について - うぇいく (2016-01-17 21:54) /中 未処理
送信命令は文字列を引数に取ります。指定したものが文字列ではない場合で、文字列に変換が可能な場合は、自動的に文字列に変換されます。送信したい内容の文字列(バイナリ列)を明示的に作成したうえで、送信してください。

指定する値の型によって、動作が変わるようにすることはないと思います。変数が型を持っている言語であれば便利ではあるんですが、代入する値によって型が変化する言語では混乱のもとになります。

もし、数値からバイナリ列の変換も自動的に行って送信を行うというケースがおおそうであれば、別の命令を用意することのなります(バイト送信とか、ワード送信とか、ワードLSB送信とか、ワードMSB送信とか。)。
(その場合、引数は常に数値で受け取り、数値以外を指定したい場合で、数値に変換が可能で会う場合は、自動的に数値に変換されます)


(#2525) 解決しました - 一般人 (2016-01-21 01:18) /中 解決
返信ありがとうございます。

確かに型が明示的になっていないと混乱のもとになってしまいますね。
今回の場合文字データが送られるということで数値をCHR()で変換して送るということで
数値としてデータを送ることができたのでこのまま利用するということで解決とさせていただきます。
情報を教えていただきありがとうございました。

(#2523)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能