diff -r 4146ef981ba4 src/protocol/dsm2_cyrf6936.c --- a/src/protocol/dsm2_cyrf6936.c Mon Nov 24 15:23:07 2014 -0600 +++ b/src/protocol/dsm2_cyrf6936.c Sun Nov 30 21:05:29 2014 +0100 @@ -387,6 +387,12 @@ static u32 pkt16_to_volt(u8 *ptr) { return ((((u32)ptr[0] << 8) | ptr[1]) + 5) / 10; //In 1/10 of Volts } +static int pkt16_to_flog(u8 *ptr) +{ + u32 value = ((u32)ptr[0] <<8) | ptr[1]; + return value > 9999 ? 9999 : value; +} + static u32 pkt16_to_rpm(u8 *ptr) { @@ -437,15 +443,12 @@ static void parse_telemetry_packet() case 0x7f: //TM1000 Flight log case 0xff: //TM1100 Flight log update = update7f; - //Telemetry.p.dsm.flog.fades[0] = pkt16_to_u8(packet+2); //FadesA 0xFFFF = (not connected) - //Telemetry.p.dsm.flog.fades[1] = pkt16_to_u8(packet+4); //FadesB 0xFFFF = (not connected) - //Telemetry.p.dsm.flog.fades[2] = pkt16_to_u8(packet+6); //FadesL 0xFFFF = (not connected) - //Telemetry.p.dsm.flog.fades[3] = pkt16_to_u8(packet+8); //FadesR 0xFFFF = (not connected) - //Telemetry.p.dsm.flog.frameloss = pkt16_to_u8(packet+10); - //Telemetry.p.dsm.flog.holds = pkt16_to_u8(packet+12); - for(int i = 2; i < 14; i+=2) { - *(u8*)&Telemetry.p.dsm.flog = pkt16_to_u8(packet+i); - } + Telemetry.p.dsm.flog.fades[0] = pkt16_to_flog(packet+2); //FadesA 0xFFFF = (not connected) + Telemetry.p.dsm.flog.fades[1] = pkt16_to_flog(packet+4); //FadesB 0xFFFF = (not connected) + Telemetry.p.dsm.flog.fades[2] = pkt16_to_flog(packet+6); //FadesL 0xFFFF = (not connected) + Telemetry.p.dsm.flog.fades[3] = pkt16_to_flog(packet+8); //FadesR 0xFFFF = (not connected) + Telemetry.p.dsm.flog.frameloss = pkt16_to_flog(packet+10); + Telemetry.p.dsm.flog.holds = pkt16_to_flog(packet+12); Telemetry.p.dsm.flog.volt[1] = pkt16_to_volt(packet+14); break; case 0x7e: //TM1000 diff -r 4146ef981ba4 src/telemetry.h --- a/src/telemetry.h Mon Nov 24 15:23:07 2014 -0600 +++ b/src/telemetry.h Sun Nov 30 21:05:29 2014 +0100 @@ -128,9 +128,9 @@ struct telem_devo { }; struct telem_dsm_flog { //Do not change the order of these, they are aligned to the dsm packet - u8 fades[4]; - u8 frameloss; - u8 holds; + u16 fades[4]; + u16 frameloss; + u16 holds; u16 volt[2]; u16 rpm; s16 temp; diff -r 4146ef981ba4 src/telemetry/telem_dsm.c --- a/src/telemetry/telem_dsm.c Mon Nov 24 15:23:07 2014 -0600 +++ b/src/telemetry/telem_dsm.c Sun Nov 30 21:05:29 2014 +0100 @@ -98,7 +98,7 @@ s32 _dsm_get_max_value(u8 telem) case TELEM_DSM_FLOG_FRAMELOSS: case TELEM_DSM_FLOG_HOLDS: case TELEM_DSM_FLOG_TEMP1: - return 255; + return 9999; case TELEM_DSM_FLOG_VOLT1: case TELEM_DSM_FLOG_VOLT2: return 999;