«前の日(12-22) 最新 次の日(12-24)» 追記

一往確認日記


2020年12月23日

_ PLCでmruby (5) mrbファイル

mrubyをPLCで動かせないかな〜という企画です。

今回はmrbファイルの中をみていきます。
前回確認した時はこの様になっていました。

RITE0101ltUMATZ0000IREP&039gLVARaEN%

これでは訳がわからないので、hexdumpでちゃんと確認してみます。

% hexdump -C a.mrb
00000000  52 49 54 45 30 31 30 31  6c 74 00 00 00 55 4d 41  |RITE0101lt...UMA|
00000010  54 5a 30 30 30 30 49 52  45 50 00 00 00 26 30 33  |TZ0000IREP...&03|
00000020  30 30 00 00 00 1a 00 02  00 03 00 00 00 00 00 08  |00..............|
00000030  08 02 01 01 02 39 02 67  00 00 00 00 4c 56 41 52  |.....9.g....LVAR|
00000040  00 00 00 11 00 00 00 01  00 01 61 00 00 45 4e 44  |..........a..END|
00000050  00 00 00 00 08                                    |.....|
00000055

ASCIIとして有効な文字が繋がっていただけで、中身はバイナリーデータになっていました。

これはC言語様に出力した内容(codes配列)とも一致しています。

#include <stdint.h>
#ifdef __cplusplus
extern const uint8_t codes[];
#endif
const uint8_t codes[] = {
0x52,0x49,0x54,0x45,0x30,0x31,0x30,0x31,0x6c,0x74,0x00,0x00,0x00,0x55,0x4d,0x41,
0x54,0x5a,0x30,0x30,0x30,0x30,0x49,0x52,0x45,0x50,0x00,0x00,0x00,0x26,0x30,0x33,
0x30,0x30,0x00,0x00,0x00,0x1a,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x08,
0x08,0x02,0x01,0x01,0x02,0x39,0x02,0x67,0x00,0x00,0x00,0x00,0x4c,0x56,0x41,0x52,
0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x01,0x61,0x00,0x00,0x45,0x4e,0x44,
0x00,0x00,0x00,0x00,0x08,
};

この内容をどう解釈していくかということですが、こちらのスレッドが参考になりそうです。

[RFC] Update .mrb file format · Issue #944 · mruby/mruby · GitHub

どうやら最初にRITEヘッダーがある様です。
次回はRITEヘッダーを確認していきます。

つづく


Amazon Music - マライア・キャリーのAll I Want for Christmas Is You - Amazon.co.jp