/* * 玄人志向 KURO-RS / Buffalo PC-OP-RS1 で受信したリモコン情報を * ビット列で表示する * * <コンパイル方法> * gcc -O -o rs_anaylize2 rs_analyze2.c * * <実行方法> * rs_analyze < <ファイル名> * * <例> * ./rs_exec < data1 * * GPL version 2 もしくは version 3 での配布を許可します * Copyright (c) 2007, N.Mitsunaga */ #include int main(int argc, char **argv) { FILE *fp = stdin; int j = 0; int obit = 0, bit = 0; int on = 0, off = 0; while (!feof(fp)) { int i; char c; fread(&c, 1, 1, fp); for (i=0; i<8; i ++) { if (c & 0x1) { bit = 1; } else { bit = 0; } c >>= 1; if (bit == 1 && obit == 0) { if (on > 24 && off>12) { fprintf(stdout, "LEADER\n"); } else if (on>3 && (off> (on*1.6)) && off < 40) { fprintf(stdout, "1"); } else if (on>0 && off < 40) { fprintf(stdout, "0"); } on = 1; } else if (bit == 0 && obit == 1) { off = 1; } else if (bit == 1 && obit == 1) { on ++; } else if (bit == 0 && obit == 0) { if (off == 80) { fprintf(stdout, "\nTRAILER\n"); } off ++; } obit = bit; } } }