• 締切済み

チェックサムについて

現在、古い機械の通信データの解析を行っています。 その通信データには末尾にチェックサムのようなコードが付与されていて それがどういうロジックで計算されているものなのかが判らず困っております。 通信で取得したデータを以下に添付しておりますので、 演算法則を解明していただけないでしょうか。 データ    チェックサム 080  → 80 180  → 03 280  → 53 380  → D0 480  → F3 580  → 70 680  → 20 780  → A3 880  → 66 980  → E5 A80  → 4C B80  → 1C C80  → 9F D80  → BC E80  → 3F F80  → 6F 以上、よろしくお願いいたします。

みんなの回答

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.2

データだけで流れてくるのですか? ヘッダとかありますか? あと、この掲示板は余分なスペース等がカットされるので 全ての受信バッファの内容を正確に提示してもらわないと 計算方法は判らないと思いますよ 普通は、先頭からの XOR だったり 加算して 0xFF でAND したり 或いは、バーコード等で使われるモジュラス11のようなものも あったりします いずれにしても全ての流れを見ないことにはわかりません。

neko_tankentai
質問者

補足

回答ありがとうございます。 ご連絡が遅くなり申し訳ございません。 08080といったようにデータとチェックサムが合わされて送られてきます。 XORやAND演算等を試してはおりますが、データの値が1変更されただけで チェックサムの値が大きく変わっているので、単純な演算での計算ではないと 考えております。 流れとしては、 1.A→Bへ制御コマンド 2.B→Aへ応答コマンド 3.B→Aへ制御処理完了コマンド 4.A→Bへ応答コマンド を繰り返しています 以上、よろしくお願いいたします。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

えぇと.... 「データ」のところに書いてある 3文字とか「チェックサム」に書かれている 2文字は何を意味するのですか? そして, 「データ」はここにある 16種類以外はないということでいいですか?

neko_tankentai
質問者

補足

質問の閲覧、ありがとうございます。 ご質問への回答をいたします。 「データ」のところに書いてある 3文字とか「チェックサム」に書かれている 2文字は何を意味するのですか? →「データ」080の「チェックサム」が80であり、通信データとして08080が  送受信されております。 「データ」はここにある 16種類以外はないということでいいですか? →16種類以外にも複数通信データはございます。 データ         チェックサム 304MZ,C  →    01 404MZ,M  →    EF                   等々 以上、よろしくお願いいたします。

関連するQ&A

  • エクセルの演算式で困っています。

    エクセルの演算式で困っています。 セルC1,D1,E1,F1、G1の5個のセルに人数をそれぞれ入力します、そして、5個のセルの総計をH1のセルに入力します(G1の数値は、必然的にH1-(C1+D1+E1+F1) になると思います。 A3、A4,A5 と3個のセルに金額を入力します。 で、C3のセルに、(A3×C1÷H1)+(A3×1×5) の演算結果が出るようにしたいのです。つまり、C3のセルにこの演算結果が表示されるような演算を仕込みたいのです。 以下、同様に、C4のセルに、、(A4×C1÷H1)+(A4×1×5)の演算結果を表示したいのです。 また、D3のセルには、(A3×D1÷H1)+(A3×1×5) の演算結果が出るようにしたいのです。 以下、同様に、E3のセルには、、(A3×E1÷H1)+(A3×1×5) の演算結果が出るようにしたいのです。 こうなると、最後のG3のセルには、H1-(C1+D1+E1+F1) を演算式の一部に書かないといけなくなります。 で、私には手におえなくなったのです。 すいません、もし、これをご理解頂けたら、アドバイスを御願いできないでしょうか?

  • C言語における複素数の四則演算について

    複素数の四則演算(a+biとc+diの四則演算)について、for文を用いて表示するプログラムについて、???の部分に何を入れたらよいかわからず、うまく実行することができません。和・差・積・商の計算種別を入れるみたいなのですが、何を入れたらいいのかわかりません。 #include <stdio.h> void fukuso(double a,double b,double c,double d,double *e,double *f,int keisan); int main(void) { double a=4, b=8, c=4, d=3, e, f; int i; for(i=1;i<5;i++){ fukuso(a,b,c,d,&e,&f,???); if(i==1) printf("和演算\n"); else if(i==2) printf("差演算\n"); else if(i==3) printf("積演算\n"); else printf("商演算\n"); printf("e=%f f=%f i\n",e,f); } return (0); } void fukuso(double a1,double b1,double a2,double b2,double *a3,double *b3,int keisan) { if(keisan==1){ *e=a+c; *f=a+c; } else if(keisan==2){ *e=a-c; *f=b-d; } else if(keisan==3){ *e=a*c-b*d; *f=a*d+c*b; } else{ *e=(a*c+b*d)/(c*c+d*d); *f=(-a*d+c*b)/(c*c+d*d); } }

  • 等式(=)と非等式(≠)に関する四則演算

    等式(=)に関する四則演算は,加法に関して, ● 交換法則: a+b=b+a, ● 結合法則: (a+b)+c=a+(b+c), ● 簡約法則: a+c=b+c ⇔ a=b であり,乗法に関しては, ■ 交換法則:ab=ba, ■ 結合法則:(ab)c=a(bc), ■ 分配法則:a(b+c)=ab+ac, (a+b)c=ac+bc ■ 簡約法則:ac=bc ⇔ a=b ですが,それでは,非等式(≠)に関する四則演算は,加法に関して, ▲ 交換法則: a+b≠c+d ⇔ a+b≠d+c, b+a≠c+d ▲ 結合法則: (a+b)+c≠d+(e+f), ▲ 簡約法則: a+c≠b+c ⇔ a≠b 乗法に関しては, ▼ 交換法則:ab≠cd ⇔ ab≠dc, ba≠cd ▼ 結合法則:(ab)c≠d(ef), ▼ 分配法則:a(b+c)≠ad+ae, (a+b)c≠dc+ec ▼ 簡約法則:ac≠bc ⇔ a≠b のようになると考えられますが・・・??? 上記の▲と▼については,まだ証明していません. では,この非等式(≠)に対する「結合法則」,「交換法則」, 「分配法則」,「簡約法則」に関しての数学理論はありますか? 書物か雑誌記事をご存じの方,教えて下さい. なお,「非等式」なる用語は正式なものではありません.この場での造語です.

  • 「チェックサムが正しくない」ため、OS8.6へアップデートできません

    私のマシンはPM7600/200 HD2G 内蔵メモリ192MBです。 HDを初期化→OS8.5のインスツール→OS8.6をダウンロードした後、OS8.6にアップデートしようとするのですが、「"OS8.6Update,smi"を実行できません。チェックサムが正しくありません。(期待値:$0183F10A,計算値:$0742251D)」というメッセージがでてしまい、アップデータできません。以前にも、同じマシンで、OS8.5からOS8.6へアップデータしたのですが、その際は何も問題なかったのですが・・・。どなたかアドバイスよろしくお願いします。

    • ベストアンサー
    • Mac
  • accessからExcelへのエクスポート

    今、access初心者の私ですが、仕事上必要なので、クエリをエクセルにエクスポートしています。 しかし、実際に必要なデータは下記の例のように、クエリの演算したフィールドも含めて一部であって、クエリで表示させたフィールド全部がいるわけではないのです。 例)  <クエリ>               <エクセル> A B C D E F   ―エクスポート→  A C E F 演算フィールドの関係でどうしても表示させておかないと演算結果がエラーになってしまうので、クエリの表の状態では「A~F」はどうしてもいるのです。 これを、今はエクセルにエクスポートしてから「B」と「D」のフィールドを削除しているのですが、フィールドを選んでエクスポートってできないでしょうか? どなたかいい方法があれば教えて下さい。お願いします。

  • 単変量解析から多変量解析時の因子の絞り込み

    統計に関して全くの素人です。 教えていただきたい点は、ある病気の予後に関して関係があると予想した因子A,B,C,D,E,Fに関して単変量解析をしたら、A,B,Cが有意と考えられた場合、次に多変量解析を行う場合は、A,B,C,D,E,Fのすべての因子で解析して判断すべきでしょうか?それとも関連がありそうなA,B,Cによるモデルで解析するべきでしょうか? また、一般に単変量解析で関連がなかった因子が多変量解析では有意となることはないのでしょうか? 以上よろしくお願いします。

  • SUMIFの関数で合計を合算したいのです。

      A   B     C    D    E    F    1 赤 300円  青 200円  赤   ---円 2 青 100円  青 400円  青   ---円 3 赤 100円  赤 100円   合計  ---円  の表でF1の赤計の演算式をAとBの列だけなら =SUMIF(A1:A3,E1,B1:B3)で赤400円と出来るのですが CとDの合計もF1に出したいので赤の計500円としたいのですが 無知なので=SUMIF(A1:A3,E1,B1:B3)+(C1:C3,E1,D1:D3)としたらダメでした。 列の分かれたBとDの赤合計をF1に合算して出すには どういう演算式にしたらいいのか教えて下さい。 宜しくお願い致します!   

  • 複数列を一列にする方法

    Excelで複数列に渡るデータを1列にまとめたいのですが、カット&ペースト以外によい方法はありませんでしょうか。 例えば表にあるセルA1-A10、B1-B10、C1-C10、D1-D10、E1-E10のデータを F列のF1から下へ一列に並べるといった感じです。 A1-A10→F1-F10 B1-B10→F11-F20 C1-C10→F21-F30 D1-D10→F31-F40 E1-E10→F41-F50 よろしくお願いします。

  • ツリー情報のデータをSQLで取得したい

    SQLServer 2008 です。 以下のツリーデータの場合に A ┬C │├D ┬H ││ ├I ││ └J │└E B ┬F ┬I  │ └L  └G 次のようなデータを登録しています。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │B  │F  │"F" │ ├──┼──┼──┤ │B  │G  │"G" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ ├──┼──┼──┤ │F  │I  │"I" │ ├──┼──┼──┤ │F  │L  │"L" │ └──┴──┴──┘ 引数OYA="A"でSQLを実行した場合に 以下のような この引数を含むそれ以下のツリーに関する データを取得する方法を教えてください。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ └──┴──┴──┘

  • エクセルのデータ並び替えについて

     A  B  C  D  E  F 1(1) (2) (3) (4) (5) (6) 2(7) (8) (9) (0) (イ) (ロ) エクセルのデータの並べ替えにおいてですが、例えば上のようなデータを  A  B  C  D  E  F 1(1) (2) (3) 2(4) (5) (6) 3(7) (8) (9) 4(0) (イ) (ロ) のように並び替えたいのですが、どのように簡単に並べることが出来ますでしょうか。