一往確認日記 |
2020年12月23日
_ PLCでmruby (5) mrbファイル
今回は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