>>gpsbabel.exe -i garmin -f usb:-1
>0 3311840168 421 eTrex LegendCx Software Version 3.40
Right - so they talk...telling me correct version, found on USB0:
>>gpsbabel.exe -i garmin,resettime -f usb:0
>[ERROR] Send_Time: Unknown date/time protocol
Hmm, not a happy bunny...what's whinging...
(grabs source, grep "Send_Time:"...)
gpscom.cc -->
/* @func GPS_Command_Send_Time ******************************************
**
** Set GPS time
**
** @param [r] port [const char *] serial port
** @param [r] Time [time_t] unix-style time
**
** @return [int32] true if OK
************************************************************************/
int32 GPS_Command_Send_Time(const char* port, time_t Time)
{
time_t ret=0;
switch (gps_date_time_transfer) {
case pA600:
ret = GPS_A600_Send(port, Time);
break;
default:
GPS_Error("Send_Time: Unknown date/time protocol");
return PROTOCOL_ERROR;
}
return ret;
}
(grep "gps_date_time_transfer")
gpsapp.cc -->
::
static int32 GPS_A000(...
::
#if 0
gps_date_time_transfer = pA600;
gps_date_time_type = pD600; /* All models so far */
gps_position_transfer = pA700;
gps_position_type = pD700; /* All models so far */
#else
gps_date_time_transfer = -1;
gps_date_time_type = -1;
gps_position_transfer = -1;
gps_position_type = -1;
#endif
::
(dang, so compiled OUT, with consequent given error, by default...)
::
static void GPS_A001(GPS_PPacket& packet)
::
case 'A':
GPS_User("\nCapability %c%d:", tag, data);
lasta = data;
switch (data) {
case 10:
::
case 500:
gps_almanac_transfer = pA500;
break;
case 600:
gps_date_time_transfer = pA600;
break;
case 650:
/* FlightBook Transfer Protocol */
break;
::
(So, [re]enabled if unit tells us it has capability 600...)
Hmm - via UI access, including Debug 1 level to get informational messages
gpsbabel -D1 -w -r -t -i garmin -f usb: -o gpx -F d:\temp\1.xml
Unit: eTrex LegendCx Software Version 3.40
ID: 421
Version: 3.40
Capability A10:
Capability A100: D110
Capability A201: D202 D110 D210
Capability A301: D312 D302
Capability A400: D110
Capability A500: D501
Capability A600: D600
Capability A601: D601
Capability A700: D700
Capability A800: D800
Capability A801: D801
Capability A900:
Capability A902:
Capability A903:
Capability A904:
Capability A905: D900
Capability A907: D907 D908 D909 D910
Capability A908: D911
Capability A914:
Capability A916:
Capability A917: D917
Capability A918: D918
Link_type 1 Device_command 0
Waypoint: Transfer 100 Type 110
Route: Transfer 201 Header 202 Type 110
Track: Transfer 301 Type 302
cet_util: Converting from "US-ASCII" to "UTF-8", done.
options: module/option=value: gpx/snlen="32" (=default)
options: module/option=value: gpx/split="500000" (=default)
GPSBabel Version: 1.5.3
Waypoint type: 110
Chosen waypoint length 14
Translation successful
That appears to be saying (my CX & HCX) device has capability - but I can't see(*) why the short conversion on "Dxxx" is failing to process relevant 'case 600:' action(s), to flag ability to do time updates. Any other code jockeys want to have a chase, or is it just quicker to have someone recompile with fixed enablement of required capability, by hacking the #if about...
(*) I ain't done C stuff for 3 decades...