commands.c: In function ‘qcdm_cmd_pilot_sets_result_get_pilot’:
commands.c:756:33: warning: implicit conversion from ‘float’ to ‘double’ to match other operand of binary expression [-Wdouble-promotion]
756 | *out_db = (float) set->ecio * -0.5;
| ^
We shouldn't be accessiing u_int8_t * as u_int16_t *. Let's construct
the 16-bit value by or-ing the 8-bit halves directly; avoiding the
endianness conversion too.
When I use clang 3.5 to build it, I got
commands.c:1444:16: error: expression which evaluates to zero treated as a
null
pointer constant of type 'QcdmResult *' (aka 'struct QcdmResult *')
[-Werror,-Wnon-literal-null-conversion]
return FALSE;
^~~~~
./utils.h:29:15: note: expanded from macro 'FALSE'
#define FALSE ((u_int8_t) 0)
^~~~~~~~~~~~~~
commands.c:1464:20: error: expression which evaluates to zero treated as a
null
pointer constant of type 'QcdmResult *' (aka 'struct QcdmResult *')
[-Werror,-Wnon-literal-null-conversion]
return FALSE;
^~~~~
./utils.h:29:15: note: expanded from macro 'FALSE'
#define FALSE ((u_int8_t) 0)
^~~~~~~~~~~~~~
2 errors generated.
make[3]: *** [libqcdm_la-commands.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
Below is the patch that fixes it
Some Qualcomm firmwares disable IPv6 unless this flag is set in nvram, at
least for the LTE default bearer. The firmware will happily let you
configure the IPV6 and IPV4V6 PDP types, also including the default
profile, but any attempt to connect will fail.
Signed-off-by: Bjørn Mork <bjorn@mork.no>
While the QCDM and DIAG_NV are the same, in reality they shouldn't
be and there should be a mapping between them. That wasn't happening,
so fix that up and add a few missing modes to the NV item defines.
Like the MF627 for some reason. Also, the format appears to be
more like the DM_CMD_VERSION_INFO response where at least the
comp_date and comp_time fields are the same size as
VERSION_INFO, just with some padding between.
Doesn't parse any events yet since we don't know what any events
are. We also need to fix up ModemManager to handle unsolicited
responses in the QcdmSerialPort class.