83 char *
string = (
char *)bytes;
84 char *
const delim =
",";
86 char *tokens[SAM_M10Q_PUBX_POSITION_FIELD_COUNT];
88 char *token = strtok(
string,
",");
89 uint8_t numTokens = 0;
91 while (token != NULL && numTokens < SAM_M10Q_PUBX_POSITION_FIELD_COUNT) {
92 tokens[numTokens++] = token;
93 token = strtok(NULL,
",");
97 if (strcmp(tokens[SAM_M10Q_PUBX_POSITION_TOKEN],
"$PUBX")
98 || strcmp(tokens[SAM_M10Q_PUBX_POSITION_ID],
"00"))
102 strncpy(&data->ns, tokens[SAM_M10Q_PUBX_POSITION_NS],
sizeof(data->ns));
103 strncpy(&data->ew, tokens[SAM_M10Q_PUBX_POSITION_EW],
sizeof(data->ew));
104 strncpy(data->time, tokens[SAM_M10Q_PUBX_POSITION_TIME],
sizeof(data->time));
105 strncpy(data->navstat, tokens[SAM_M10Q_PUBX_POSITION_NAV_STAT],
sizeof(data->navstat));
108 data->latitude = strtof(tokens[SAM_M10Q_PUBX_POSITION_LAT], NULL);
109 data->longitude = strtof(tokens[SAM_M10Q_PUBX_POSITION_LONG], NULL);
112 data->latitude = data->latitude * -1;
114 data->longitude = data->longitude * -1;
116 gps->sampleData = *data;