kopia lustrzana https://github.com/rs1729/RS
m10mod/mXXmod, rs92mod: rawhex input
rodzic
f9bb77ac75
commit
c13e34239c
|
@ -1018,13 +1018,15 @@ static int print_pos(gpx_t *gpx, int csOK) {
|
|||
return err;
|
||||
}
|
||||
|
||||
static int print_frame(gpx_t *gpx, int pos) {
|
||||
static int print_frame(gpx_t *gpx, int pos, int b2B) {
|
||||
int i;
|
||||
ui8_t byte;
|
||||
int cs1, cs2;
|
||||
int flen = stdFLEN; // stdFLEN=0x64, auxFLEN=0x76
|
||||
|
||||
if (b2B) {
|
||||
bits2bytes(gpx->frame_bits, gpx->frame_bytes);
|
||||
}
|
||||
flen = gpx->frame_bytes[0];
|
||||
if (flen == stdFLEN) gpx->auxlen = 0;
|
||||
else {
|
||||
|
@ -1128,6 +1130,7 @@ int main(int argc, char **argv) {
|
|||
int wavloaded = 0;
|
||||
int sel_wavch = 0; // audio channel: left
|
||||
int spike = 0;
|
||||
int rawhex = 0;
|
||||
int cfreq = -1;
|
||||
|
||||
FILE *fp = NULL;
|
||||
|
@ -1244,6 +1247,7 @@ int main(int argc, char **argv) {
|
|||
if (frq < 300000000) frq = -1;
|
||||
cfreq = frq;
|
||||
}
|
||||
else if (strcmp(*argv, "--rawhex") == 0) { rawhex = 2; } // raw hex input
|
||||
else if (strcmp(*argv, "-") == 0) {
|
||||
int sample_rate = 0, bits_sample = 0, channels = 0;
|
||||
++argv;
|
||||
|
@ -1290,6 +1294,7 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (!rawhex) {
|
||||
if (!option_softin) {
|
||||
|
||||
if (option_iq == 0 && option_pcmraw) {
|
||||
|
@ -1438,7 +1443,7 @@ int main(int argc, char **argv) {
|
|||
bitpos += 1;
|
||||
}
|
||||
gpx.frame_bits[pos] = '\0';
|
||||
print_frame(&gpx, pos);
|
||||
print_frame(&gpx, pos, 1);
|
||||
if (pos < BITFRAME_LEN) break;
|
||||
|
||||
header_found = 0;
|
||||
|
@ -1462,11 +1467,40 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (!option_softin) free_buffers(&dsp);
|
||||
else {
|
||||
if (hdb.buf) { free(hdb.buf); hdb.buf = NULL; }
|
||||
}
|
||||
}
|
||||
else //if (rawhex)
|
||||
{
|
||||
char buffer_rawhex[2*(FRAME_LEN+AUX_LEN)+12];
|
||||
char *pbuf = NULL, *buf_sp = NULL;
|
||||
ui8_t frmbyte;
|
||||
int frameofs = 0, len, i;
|
||||
|
||||
while (1 > 0) {
|
||||
|
||||
memset(buffer_rawhex, 2*(FRAME_LEN+AUX_LEN)+12, 0);
|
||||
pbuf = fgets(buffer_rawhex, 2*(FRAME_LEN+AUX_LEN)+12, fp);
|
||||
if (pbuf == NULL) break;
|
||||
buffer_rawhex[2*(FRAME_LEN+AUX_LEN)] = '\0';
|
||||
buf_sp = strchr(buffer_rawhex, ' ');
|
||||
if (buf_sp != NULL && buf_sp-buffer_rawhex < 2*(FRAME_LEN+AUX_LEN)) {
|
||||
buffer_rawhex[buf_sp-buffer_rawhex] = '\0';
|
||||
for (i = buf_sp-buffer_rawhex+1; i < 2*(FRAME_LEN+AUX_LEN); i++) buffer_rawhex[i] = '\0';
|
||||
}
|
||||
len = strlen(buffer_rawhex) / 2;
|
||||
if (len > pos_GPSweek+2) {
|
||||
for (i = 0; i < len; i++) { //%2x SCNx8=%hhx(inttypes.h)
|
||||
sscanf(buffer_rawhex+2*i, "%2hhx", &frmbyte);
|
||||
// wenn ohne %hhx: sscanf(buffer_rawhex+rawhex*i, "%2x", &byte); frame[frameofs+i] = (ui8_t)byte;
|
||||
gpx.frame_bytes[frameofs+i] = frmbyte;
|
||||
}
|
||||
print_frame(&gpx, len*8, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
|
|
|
@ -656,14 +656,16 @@ static int print_pos(gpx_t *gpx, int bcOK, int csOK) {
|
|||
return err;
|
||||
}
|
||||
|
||||
static int print_frame(gpx_t *gpx, int pos) {
|
||||
static int print_frame(gpx_t *gpx, int pos, int b2B) {
|
||||
int i;
|
||||
ui8_t byte;
|
||||
int cs1, cs2;
|
||||
int bc1, bc2;
|
||||
int flen = stdFLEN; // stdFLEN=0x64, auxFLEN=0x76; M20:0x45 ?
|
||||
|
||||
if (b2B) {
|
||||
bits2bytes(gpx->frame_bits, gpx->frame_bytes);
|
||||
}
|
||||
flen = gpx->frame_bytes[0];
|
||||
if (flen == stdFLEN) gpx->auxlen = 0;
|
||||
else {
|
||||
|
@ -767,6 +769,7 @@ int main(int argc, char **argv) {
|
|||
int wavloaded = 0;
|
||||
int sel_wavch = 0; // audio channel: left
|
||||
int spike = 0;
|
||||
int rawhex = 0;
|
||||
int cfreq = -1;
|
||||
|
||||
float baudrate = -1;
|
||||
|
@ -892,6 +895,7 @@ int main(int argc, char **argv) {
|
|||
if (frq < 300000000) frq = -1;
|
||||
cfreq = frq;
|
||||
}
|
||||
else if (strcmp(*argv, "--rawhex") == 0) { rawhex = 2; } // raw hex input
|
||||
else if (strcmp(*argv, "-") == 0) {
|
||||
int sample_rate = 0, bits_sample = 0, channels = 0;
|
||||
++argv;
|
||||
|
@ -938,6 +942,7 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (!rawhex) {
|
||||
if (!option_softin) {
|
||||
|
||||
if (option_iq == 0 && option_pcmraw) {
|
||||
|
@ -1088,7 +1093,7 @@ int main(int argc, char **argv) {
|
|||
bitpos += 1;
|
||||
}
|
||||
gpx.frame_bits[pos] = '\0';
|
||||
print_frame(&gpx, pos);
|
||||
print_frame(&gpx, pos, 1);
|
||||
if (pos < BITFRAME_LEN) break;
|
||||
|
||||
header_found = 0;
|
||||
|
@ -1106,11 +1111,40 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (!option_softin) free_buffers(&dsp);
|
||||
else {
|
||||
if (hdb.buf) { free(hdb.buf); hdb.buf = NULL; }
|
||||
}
|
||||
}
|
||||
else //if (rawhex)
|
||||
{
|
||||
char buffer_rawhex[2*(FRAME_LEN+AUX_LEN)+12];
|
||||
char *pbuf = NULL, *buf_sp = NULL;
|
||||
ui8_t frmbyte;
|
||||
int frameofs = 0, len, i;
|
||||
|
||||
while (1 > 0) {
|
||||
|
||||
memset(buffer_rawhex, 2*(FRAME_LEN+AUX_LEN)+12, 0);
|
||||
pbuf = fgets(buffer_rawhex, 2*(FRAME_LEN+AUX_LEN)+12, fp);
|
||||
if (pbuf == NULL) break;
|
||||
buffer_rawhex[2*(FRAME_LEN+AUX_LEN)] = '\0';
|
||||
buf_sp = strchr(buffer_rawhex, ' ');
|
||||
if (buf_sp != NULL && buf_sp-buffer_rawhex < 2*(FRAME_LEN+AUX_LEN)) {
|
||||
buffer_rawhex[buf_sp-buffer_rawhex] = '\0';
|
||||
for (i = buf_sp-buffer_rawhex+1; i < 2*(FRAME_LEN+AUX_LEN); i++) buffer_rawhex[i] = '\0';
|
||||
}
|
||||
len = strlen(buffer_rawhex) / 2;
|
||||
if (len > pos_GPSweek+2) {
|
||||
for (i = 0; i < len; i++) { //%2x SCNx8=%hhx(inttypes.h)
|
||||
sscanf(buffer_rawhex+2*i, "%2hhx", &frmbyte);
|
||||
// wenn ohne %hhx: sscanf(buffer_rawhex+rawhex*i, "%2x", &byte); frame[frameofs+i] = (ui8_t)byte;
|
||||
gpx.frame_bytes[frameofs+i] = frmbyte;
|
||||
}
|
||||
print_frame(&gpx, len*8, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
|
|
|
@ -1251,6 +1251,7 @@ int main(int argc, char *argv[]) {
|
|||
int sel_wavch = 0; // audio channel: left
|
||||
int spike = 0;
|
||||
int fileloaded = 0;
|
||||
int rawhex = 0;
|
||||
int cfreq = -1;
|
||||
|
||||
char bitbuf[BITS];
|
||||
|
@ -1443,6 +1444,7 @@ int main(int argc, char *argv[]) {
|
|||
option_min = 1;
|
||||
}
|
||||
else if (strcmp(*argv, "--ngp") == 0) { gpx.option.ngp = 1; } // RS92-NGP, RS92-D: 1680 MHz
|
||||
else if (strcmp(*argv, "--rawhex") == 0) { rawhex = 2; } // raw hex input
|
||||
else if (strcmp(*argv, "-") == 0) {
|
||||
int sample_rate = 0, bits_sample = 0, channels = 0;
|
||||
++argv;
|
||||
|
@ -1512,6 +1514,8 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (!rawhex) {
|
||||
|
||||
if (!option_softin) {
|
||||
|
||||
if (option_iq == 0 && option_pcmraw) {
|
||||
|
@ -1678,6 +1682,34 @@ int main(int argc, char *argv[]) {
|
|||
else {
|
||||
if (hdb.buf) { free(hdb.buf); hdb.buf = NULL; }
|
||||
}
|
||||
}
|
||||
else //if (rawhex)
|
||||
{
|
||||
char buffer_rawhex[2*FRAME_LEN+12];
|
||||
char *pbuf = NULL, *buf_sp = NULL;
|
||||
ui8_t frmbyte;
|
||||
int frameofs = 0, len, i;
|
||||
|
||||
while (1 > 0) {
|
||||
|
||||
pbuf = fgets(buffer_rawhex, 2*FRAME_LEN+12, fp);
|
||||
if (pbuf == NULL) break;
|
||||
buffer_rawhex[2*FRAME_LEN] = '\0';
|
||||
buf_sp = strchr(buffer_rawhex, ' ');
|
||||
if (buf_sp != NULL && buf_sp-buffer_rawhex < 2*FRAME_LEN) {
|
||||
buffer_rawhex[buf_sp-buffer_rawhex] = '\0';
|
||||
}
|
||||
len = strlen(buffer_rawhex) / 2;
|
||||
if (len > posGPS_TOW+4) {
|
||||
for (i = 0; i < len; i++) { //%2x SCNx8=%hhx(inttypes.h)
|
||||
sscanf(buffer_rawhex+2*i, "%2hhx", &frmbyte);
|
||||
// wenn ohne %hhx: sscanf(buffer_rawhex+rawhex*i, "%2x", &byte); frame[frameofs+i] = (ui8_t)byte;
|
||||
gpx.frame[frameofs+i] = frmbyte;
|
||||
}
|
||||
print_frame(&gpx, frameofs+len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (gpx.gps.ephs) free(gpx.gps.ephs);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue