[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [DebianGIS] gpstrans bug



re. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=399828

some more clues,

---

include/Garmin.h:
  typedef unsigned char BYTE;
...
/* Garmin message type characters */
#define RTE_NAM 0x1d            /* Route name record */
#define RTE_WPT 0x1e            /* Route waypoint record */
#define ALM     0x1f            /* Almanac record */
#define TRK     0x22            /* Track record */
#define WPT     0x23            /* Waypoint record */
#define GMNID   0x7e            /* Request Garmin ID */

---

If I add

src/gps/getgpsinfo.c
... line 333 ...
	  unsigned short udata;
	  int n;
+ for (i=0; i< strlen(gGarminMessage); i++) {
+    printf("gGarminMessage[%d]=[%d]\n", i, gGarminMessage[i]);
+ }
+ printf("\n");
 	  getGPSMessage();
 	  n=data[-1];
+ for (i=0; i< strlen(gGarminMessage); i++) {
+    printf("gGarminMessage[%d]=[%d]\n", i, gGarminMessage[i]);
+ }
	  p=protocols=xmalloc(5*n/3+1);
	  for ( ; n; n-=3)


I get
gGarminMessage[0]=[16]
gGarminMessage[1]=[32]
gGarminMessage[2]=[6]
gGarminMessage[3]=[52]
gGarminMessage[4]=[46]
gGarminMessage[5]=[54]
gGarminMessage[6]=[48]
gGarminMessage[7]=[32]

gGarminMessage[0]=[16]
gGarminMessage[1]=[9]
gGarminMessage[2]=[2]
gGarminMessage[3]=[1]
Segmentation fault

---

- n=data[-1];
+ gGarminMessage[2];

doesn't help any.

---

also, from "-i --debug" for my Garmin 48:

product ID 0x60=96, software version 0x01cc=460, protocol string: 
L001 A010 A100 D103 A200 D201 D103 A300 D300 A400 D403 A500 D501 A600 D600 A700 D700

---


Hamish



Reply to: