+ int designation_code = decode_hamming_84(data++);
+ if (designation_code == 0) // 29/0
+ {
+ m_M29_t1 = decode_hamming_2418(data);
+ m_M29_t2 = decode_hamming_2418(data+3);
+ if ((m_M29_t1 & 0xF) == 0) // format1
+ m_M29_0_valid = 1;
+ else
+ eDebug("non handled packet M/%d/0 format %d", Y, m_M29_t1 & 0xF);
+ }
+ else
+ eDebug("non handled packet M/%d/%d", Y, designation_code);
+ }
+ else if (m_page_open && M == m_page_M)
+ {
+ int designation_code = decode_hamming_84(data++);
+ if (Y == 28 && designation_code == 0) // 28/0
+ {
+#if 1
+ m_X28_t1 = decode_hamming_2418(data);
+ m_X28_t2 = decode_hamming_2418(data+3);
+ if ((m_X28_t1 & 0xF) == 0) // format1
+ m_X28_0_valid = 1;
+ else
+ eDebug("non handled packet X/%d/0 format %d", Y, m_X28_t1 & 0xF);
+#else
+ int i=0;
+ for (; i < 39; i+=3)
+ {
+ int tripletX = decode_hamming_2418(data+i);
+ if (tripletX >= 0)
+ {
+ if (i == 0)
+ {
+ if ((m_X28_t1 & 0xF) == 0) // format1
+ m_X28_0_valid = 1;
+ m_X28_t1 = tripletX;
+ }
+ else if (i == 1)
+ m_X28_t2 = tripletX;
+
+ char *c = get_bits(tripletX, 18);
+ int x=0;
+ for (; x < 18; ++x)
+ eDebugNoNewLine("%c", c[x]);
+ eDebug("");
+ }
+ else
+ eDebug("decode_hamming_2418 failed!\n");
+ data += 3;
+ }
+#endif
+ }
+ else
+ eDebug("non handled packet X/%d/%d", Y, designation_code);