aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKévin Redon <kredon@sysmocom.de>2018-07-03 15:57:03 +0200
committerKévin Redon <kredon@sysmocom.de>2018-07-03 15:57:03 +0200
commit05cc8bd36aa12bf43f8acf65fe16b79a3fc9e5f3 (patch)
tree3c4638d48b3d5e1f3b983b8b323acd350d1c2d25
parentde6e3488a0359f5b064694875c17546fb7c3e64a (diff)
sniffer: display F and D values frim PPS
-rw-r--r--firmware/libcommon/include/iso7816_fidi.h6
-rw-r--r--firmware/libcommon/source/iso7816_fidi.c4
-rw-r--r--firmware/libcommon/source/sniffer.c2
3 files changed, 9 insertions, 3 deletions
diff --git a/firmware/libcommon/include/iso7816_fidi.h b/firmware/libcommon/include/iso7816_fidi.h
index e4690a5..3b4b451 100644
--- a/firmware/libcommon/include/iso7816_fidi.h
+++ b/firmware/libcommon/include/iso7816_fidi.h
@@ -2,5 +2,11 @@
#include <stdint.h>
+/* Table 7 of ISO 7816-3:2006 */
+extern const uint16_t fi_table[];
+
+/* Table 8 from ISO 7816-3:2006 */
+extern const uint8_t di_table[];
+
/* compute the F/D ratio based on Fi and Di values */
int compute_fidi_ratio(uint8_t fi, uint8_t di);
diff --git a/firmware/libcommon/source/iso7816_fidi.c b/firmware/libcommon/source/iso7816_fidi.c
index b35f068..bdccd55 100644
--- a/firmware/libcommon/source/iso7816_fidi.c
+++ b/firmware/libcommon/source/iso7816_fidi.c
@@ -24,13 +24,13 @@
#include "iso7816_fidi.h"
/* Table 7 of ISO 7816-3:2006 */
-static const uint16_t fi_table[] = {
+const uint16_t fi_table[] = {
372, 372, 558, 744, 1116, 1488, 1860, 0,
0, 512, 768, 1024, 1536, 2048, 0, 0
};
/* Table 8 from ISO 7816-3:2006 */
-static const uint8_t di_table[] = {
+const uint8_t di_table[] = {
0, 1, 2, 4, 8, 16, 32, 64,
12, 20, 2, 4, 8, 16, 32, 64,
};
diff --git a/firmware/libcommon/source/sniffer.c b/firmware/libcommon/source/sniffer.c
index 88ac84f..fbf0022 100644
--- a/firmware/libcommon/source/sniffer.c
+++ b/firmware/libcommon/source/sniffer.c
@@ -566,7 +566,7 @@ static void process_byte_pps(uint8_t byte)
fn = 1;
dn = 1;
}
- TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r", fn, dn);
+ TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r", fi_table[fn], di_table[dn]);
update_fidi(sniff_usart.base, pps_cur[2]);
usb_send_fidi(pps_cur[2]); /* send Fi/Di change notification to host software over USB */
} else { /* checksum is invalid */