【続き】シリアル通信のstxとetxの設定 – 固定ページ 2 – プログラミング – Home

【続き】シリアル通信のstxとetxの...
 
通知
すべてクリア

【続き】シリアル通信のstxとetxの設定

固定ページ 2 / 2

12345
 12345
(@12345)
ゲスト
結合: 17年前
投稿: 16
 

見てみたらHEXで送信しているっぽいです。

サトウは外出してしまいました。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>HEXで送信しているっぽいです
意味不明です。
HEXで送信とは?

16進表記も10進表記も同じ値ですし。

Byte b = 0x10;

Byte b = 16;

も同じ値。


返信引用
12345
 12345
(@12345)
ゲスト
結合: 17年前
投稿: 16
 

モニタ側の表示をASCIIからHEXに変更したら、
ASCIIコードがでてきました。
例えば、プログラムからの入力が 1 ならば
モニタ上で 31 がでてきました。ASCIIの1ですよね。
意味わかりますかね。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

ASCIIコード表見てもらえてないのでしょうか?

文字の'1'は16進のASCIIコードでは 31 ですが、10進のASCIIコードでは 49 という値で
す。

C言語で簡単なプログラムを書くと

#include <stdio.h>
int main(void)
{
char c;

c = 0x31; // 16進
printf(%c\n, c);
c = 49; // 10進
printf(%c\n, c);

return 0;
}

てので同じ文字の '1' が表示されるのが確認できると思います。

なので、たとえば

123

という文字列を送っていて、

49 50 51

という数値の羅列を取得できればちゃんと送信できているということになります。


返信引用
12345
 12345
(@12345)
ゲスト
結合: 17年前
投稿: 16
 

ありがとうございます。
できたっぽいです。
すごい助かりました。

申し訳ありませんが、もうひとつ教えてください。
下記の3つをくっつけることはできませんか。

array<Byte>^ stx = {0x02};
array<Byte>^ etx = {0x03};
array<Byte>^encodedBytes = ascii->GetBytes( csvdatatrans );

シリアル出力するときに stx+encodedBytes+etx で送信したいんです。

this->serialPort1->Write(trans, 0, trans->Length);


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

3回に分けてはだめってことなら、
>array<Byte>^encodedBytes = ascii->GetBytes( csvdatatrans );
のサイズを元に+2のByte型配列をつくり、コピーする。

array<Byte>^ trans = gcnew array<Byte>(encodedBytes->Length + 2);

trans[0] = 0x02; // STX

// http://msdn2.microsoft.com/ja-jp/library/z50k9bft(VS.80).aspx
Array::Copy(encodedBytes, 0, trans, 1, encodedBytes->Length);

trans[trans->Length - 1] = 0x3; // ETX


返信引用
12345
 12345
(@12345)
ゲスト
結合: 17年前
投稿: 16
 

ありがとうございます。
ほぼできてきました。

また、ひとつわからないことがありまして

static array<Char>^chars = {',','\n'};
array<String^>^split = str->Split( chars );

これでデータをsplitしているはずですが、
改行が除かれておりません。
何か問題があるのでしょうか。


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

なんかネットの向こう側の人 (Blue 氏) に自分の仕事をまる投げしてる
ようにしか見えないんだけどそれってどうなの?
少しは自分で調査・検証する気ってないわけ?


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました