# HG changeset patch # User Mychaela Falconia # Date 1487558286 0 # Node ID 79e71354ba7b81d63fb8303233a5bb22276b06bd # Parent da4d4af80fdd07218825e950ab385abcddb578ee fc-tmsh: ttr response handling implemented diff -r da4d4af80fdd -r 79e71354ba7b rvinterf/tmsh/etmbasic.c --- a/rvinterf/tmsh/etmbasic.c Mon Feb 20 02:25:53 2017 +0000 +++ b/rvinterf/tmsh/etmbasic.c Mon Feb 20 02:38:06 2017 +0000 @@ -142,7 +142,9 @@ l1tm_ttw_response(); return; case TX_TEMPLATE_READ: - print_etm_pkt_raw("TX_TEMPLATE_READ response"); + if (rvi_msg_len < 5) + goto runt; + l1tm_ttr_response(); return; case MISC_PARAM_WRITE: if (rvi_msg_len < 5) diff -r da4d4af80fdd -r 79e71354ba7b rvinterf/tmsh/l1resp.c --- a/rvinterf/tmsh/l1resp.c Mon Feb 20 02:25:53 2017 +0000 +++ b/rvinterf/tmsh/l1resp.c Mon Feb 20 02:38:06 2017 +0000 @@ -13,6 +13,7 @@ unsigned rftr_table_index, rftr_table_size; u_char rftr_table_data[MAX_RF_TABLE_SIZE]; +u_char ttr_ramp_data[32]; void l1tm_response_nodata(op) @@ -303,6 +304,7 @@ if (j == 0 || j == 8) *dp++ = ' '; sprintf(dp, " %02X", rftr_table_data[i++]); + dp += 3; } async_msg_output(buf); } @@ -328,3 +330,41 @@ } async_msg_output("ttw OK"); } + +void +l1tm_ttr_response() +{ + char buf[80], *dp; + unsigned i; + + if (rvi_msg[3]) { + if (rvi_msg_len == 5) { + sprintf(buf, "ttr error %u (0x%02X)", + rvi_msg[3], rvi_msg[3]); + async_msg_output(buf); + } else + print_etm_pkt_raw("ttr long error response"); + return; + } + if (rvi_msg_len != 38) { + print_etm_pkt_raw("ttr response wrong length"); + return; + } + sprintf(buf, "ttr index %u:", rvi_msg[4]); + async_msg_output(buf); + bcopy(rvi_msg + 5, ttr_ramp_data, 32); + strcpy(buf, "ramp-up "); + dp = buf + 9; + for (i = 0; i < 16; i++) { + sprintf(dp, "%4u", ttr_ramp_data[i]); + dp += 4; + } + async_msg_output(buf); + strcpy(buf, "ramp-down"); + dp = buf + 9; + for (i = 0; i < 16; i++) { + sprintf(dp, "%4u", ttr_ramp_data[i+16]); + dp += 4; + } + async_msg_output(buf); +}