kopia lustrzana https://github.com/projecthorus/radiosonde_auto_rx
Changed ID format
Changed Ptu to Trimble, the GPS chip Changed GTop to Gtop Added aux tag when the is aux datapull/115/head
rodzic
bd188465bc
commit
5983d11362
|
@ -18,7 +18,7 @@ gcc dfm09dm_dft.c demod_dft.o -lm -o dfm09ecc -I../ecc/ -I../dfm
|
|||
# Build M10 decoder
|
||||
echo "Building M10 Demodulator."
|
||||
cd ../m10/
|
||||
g++ M10.cpp M10Decoder.cpp M10GeneralParser.cpp M10GTopParser.cpp M10PtuParser.cpp AudioFile.cpp -lm -o m10 -std=c++11
|
||||
g++ M10.cpp M10Decoder.cpp M10GeneralParser.cpp M10GtopParser.cpp M10TrimbleParser.cpp AudioFile.cpp -lm -o m10 -std=c++11
|
||||
|
||||
|
||||
# Copy all necessary files into this directory.
|
||||
|
|
|
@ -6,23 +6,23 @@
|
|||
*/
|
||||
|
||||
#include "M10Decoder.h"
|
||||
#include "M10GTopParser.h"
|
||||
#include "M10PtuParser.h"
|
||||
#include "M10GtopParser.h"
|
||||
#include "M10TrimbleParser.h"
|
||||
|
||||
char M10Decoder::header[] = "10011001100110010100110010011001";
|
||||
|
||||
M10Decoder::M10Decoder() {
|
||||
m10GTop = new M10GTopParser();
|
||||
m10Ptu = new M10PtuParser();
|
||||
m10Parser = m10GTop;
|
||||
m10Gtop = new M10GtopParser();
|
||||
m10Trimble = new M10TrimbleParser();
|
||||
m10Parser = m10Gtop;
|
||||
|
||||
frameSamples = NULL;
|
||||
audioFile = NULL;
|
||||
}
|
||||
|
||||
M10Decoder::~M10Decoder() {
|
||||
delete m10GTop;
|
||||
delete m10Ptu;
|
||||
delete m10Gtop;
|
||||
delete m10Trimble;
|
||||
|
||||
if (frameSamples)
|
||||
delete frameSamples;
|
||||
|
@ -62,10 +62,10 @@ int M10Decoder::startDecode(std::string fname) {
|
|||
supported = true;
|
||||
switch (sondeType) {
|
||||
case 0xAF02:
|
||||
m10Parser = m10GTop;
|
||||
m10Parser = m10Gtop;
|
||||
break;
|
||||
case 0x9F20:
|
||||
m10Parser = m10Ptu;
|
||||
m10Parser = m10Trimble;
|
||||
break;
|
||||
default:
|
||||
supported = false;
|
||||
|
@ -370,8 +370,8 @@ int M10Decoder::decodeMethodSign(double initialPos) {
|
|||
|
||||
void M10Decoder::setRaw(bool b) {
|
||||
dispRaw = b;
|
||||
m10GTop->setRaw(b);
|
||||
m10Ptu->setRaw(b);
|
||||
m10Gtop->setRaw(b);
|
||||
m10Trimble->setRaw(b);
|
||||
}
|
||||
|
||||
int M10Decoder::getNextBufferValue() {
|
||||
|
|
|
@ -49,8 +49,8 @@ protected:
|
|||
void bits2bytes();
|
||||
|
||||
M10GeneralParser *m10Parser;
|
||||
M10GeneralParser *m10GTop;
|
||||
M10GeneralParser *m10Ptu;
|
||||
M10GeneralParser *m10Gtop;
|
||||
M10GeneralParser *m10Trimble;
|
||||
|
||||
AudioFile *audioFile;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* File: M10GTop.cpp
|
||||
* File: M10Gtop.cpp
|
||||
* Author: Viproz
|
||||
* Used code from rs1729
|
||||
* Created on December 13, 2018, 4:39 PM
|
||||
|
@ -19,19 +19,19 @@
|
|||
#define pos_SN 0x5D // 2+3 byte
|
||||
#define pos_Check (stdFLEN-1) // 2 byte*/
|
||||
|
||||
#include "M10GTopParser.h"
|
||||
#include "M10GtopParser.h"
|
||||
#include <ctime>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
|
||||
M10GTopParser::M10GTopParser() {
|
||||
M10GtopParser::M10GtopParser() {
|
||||
}
|
||||
|
||||
M10GTopParser::~M10GTopParser() {
|
||||
M10GtopParser::~M10GtopParser() {
|
||||
}
|
||||
|
||||
void M10GTopParser::changeData(std::array<unsigned char, DATA_LENGTH> data, bool good) {
|
||||
void M10GtopParser::changeData(std::array<unsigned char, DATA_LENGTH> data, bool good) {
|
||||
M10GeneralParser::changeData(data, good);
|
||||
|
||||
int i;
|
||||
|
@ -49,7 +49,7 @@ void M10GTopParser::changeData(std::array<unsigned char, DATA_LENGTH> data, bool
|
|||
date = val;
|
||||
}
|
||||
|
||||
double M10GTopParser::getLatitude() {
|
||||
double M10GtopParser::getLatitude() {
|
||||
int i;
|
||||
unsigned short bytes[4];
|
||||
int val;
|
||||
|
@ -62,7 +62,7 @@ double M10GTopParser::getLatitude() {
|
|||
return val / 1e6;
|
||||
}
|
||||
|
||||
double M10GTopParser::getLongitude() {
|
||||
double M10GtopParser::getLongitude() {
|
||||
int i;
|
||||
unsigned short bytes[4];
|
||||
int val;
|
||||
|
@ -75,7 +75,7 @@ double M10GTopParser::getLongitude() {
|
|||
return val / 1e6;
|
||||
}
|
||||
|
||||
double M10GTopParser::getAltitude() {
|
||||
double M10GtopParser::getAltitude() {
|
||||
int i;
|
||||
unsigned short bytes[4];
|
||||
int val;
|
||||
|
@ -89,31 +89,31 @@ double M10GTopParser::getAltitude() {
|
|||
return val / 1e2;
|
||||
}
|
||||
|
||||
int M10GTopParser::getDay() {
|
||||
int M10GtopParser::getDay() {
|
||||
return date / 10000;
|
||||
}
|
||||
|
||||
int M10GTopParser::getMonth() {
|
||||
int M10GtopParser::getMonth() {
|
||||
return (date % 10000) / 100;
|
||||
}
|
||||
|
||||
int M10GTopParser::getYear() {
|
||||
int M10GtopParser::getYear() {
|
||||
return date % 100 + 2000;
|
||||
}
|
||||
|
||||
int M10GTopParser::getHours() {
|
||||
int M10GtopParser::getHours() {
|
||||
return time / 10000;
|
||||
}
|
||||
|
||||
int M10GTopParser::getMinutes() {
|
||||
int M10GtopParser::getMinutes() {
|
||||
return (time % 10000) / 100;
|
||||
}
|
||||
|
||||
int M10GTopParser::getSeconds() {
|
||||
int M10GtopParser::getSeconds() {
|
||||
return time % 100;
|
||||
}
|
||||
|
||||
double M10GTopParser::getVerticalSpeed() {
|
||||
double M10GtopParser::getVerticalSpeed() {
|
||||
int i;
|
||||
unsigned short bytes[2];
|
||||
short vel16;
|
||||
|
@ -124,7 +124,7 @@ double M10GTopParser::getVerticalSpeed() {
|
|||
return vel16 / 1e2; // up
|
||||
}
|
||||
|
||||
double M10GTopParser::getHorizontalSpeed() {
|
||||
double M10GtopParser::getHorizontalSpeed() {
|
||||
int i;
|
||||
unsigned short bytes[2];
|
||||
short vel16;
|
||||
|
@ -143,7 +143,7 @@ double M10GTopParser::getHorizontalSpeed() {
|
|||
return sqrt(vx * vx + vy * vy);
|
||||
}
|
||||
|
||||
double M10GTopParser::getDirection() {
|
||||
double M10GtopParser::getDirection() {
|
||||
int i;
|
||||
unsigned short bytes[2];
|
||||
short vel16;
|
||||
|
@ -165,27 +165,27 @@ double M10GTopParser::getDirection() {
|
|||
return dir;
|
||||
}
|
||||
|
||||
double M10GTopParser::getTemperature() {
|
||||
double M10GtopParser::getTemperature() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
double M10GTopParser::getHumidity() {
|
||||
double M10GtopParser::getHumidity() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
double M10GTopParser::getDp() {
|
||||
double M10GtopParser::getDp() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string M10GTopParser::getSerialNumber() {
|
||||
std::string M10GtopParser::getSerialNumber() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short sn_bytes[5];
|
||||
char SN[12];
|
||||
char SN[18];
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
for (i = 0; i < 17; i++)
|
||||
SN[i] = ' ';
|
||||
SN[11] = '\0';
|
||||
SN[17] = '\0';
|
||||
|
||||
for (i = 0; i < 5; i++) {
|
||||
byte = frame_bytes[0x5D + i];
|
||||
|
@ -193,14 +193,14 @@ std::string M10GTopParser::getSerialNumber() {
|
|||
}
|
||||
|
||||
byte = sn_bytes[2];
|
||||
sprintf(SN, "%1X%02u", (byte >> 4)&0xF, byte & 0xF);
|
||||
sprintf(SN, "M10-G-%1X%02u", (byte >> 4)&0xF, byte & 0xF);
|
||||
byte = sn_bytes[3] | (sn_bytes[4] << 8);
|
||||
sprintf(SN + 3, " %1X %1u%04u", sn_bytes[0]&0xF, (byte >> 13)&0x7, byte & 0x1FFF);
|
||||
sprintf(SN + 9, "-%1X-%1u%04u", sn_bytes[0]&0xF, (byte >> 13)&0x7, byte & 0x1FFF);
|
||||
|
||||
return SN;
|
||||
}
|
||||
|
||||
std::string M10GTopParser::getdxlSerialNumber() {
|
||||
std::string M10GtopParser::getdxlSerialNumber() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short sn_bytes[5];
|
||||
|
@ -236,7 +236,7 @@ std::string M10GTopParser::getdxlSerialNumber() {
|
|||
return ids;
|
||||
}
|
||||
|
||||
void M10GTopParser::printFrame() {
|
||||
void M10GtopParser::printFrame() {
|
||||
if (dispRaw) {
|
||||
for (int i = 0; i < frameLength + 1; ++i) {
|
||||
printf("%02X", frame_bytes[i]);
|
||||
|
@ -276,7 +276,7 @@ void M10GTopParser::printFrame() {
|
|||
//"\"temp\": %.1f "
|
||||
"\"crc\": %d "
|
||||
"}\n",
|
||||
"GTop", frame, getSerialNumber().c_str(), getdxlSerialNumber().c_str(), getYear(), getMonth(), getDay(), getHours(), getMinutes(), getSeconds(), getLatitude(), getLongitude(),
|
||||
"Gtop", frame, getSerialNumber().c_str(), getdxlSerialNumber().c_str(), getYear(), getMonth(), getDay(), getHours(), getMinutes(), getSeconds(), getLatitude(), getLongitude(),
|
||||
getAltitude(), getHorizontalSpeed(), getDirection(), getVerticalSpeed()/*, getTemperature()*/, correctCRC);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* File: M10GTop.h
|
||||
* File: M10Gtop.h
|
||||
* Author: Viproz
|
||||
* Used code from rs1729
|
||||
* Created on December 13, 2018, 4:39 PM
|
||||
|
@ -14,10 +14,10 @@
|
|||
#include <math.h>
|
||||
#include "M10GeneralParser.h"
|
||||
|
||||
class M10GTopParser : public M10GeneralParser {
|
||||
class M10GtopParser : public M10GeneralParser {
|
||||
public:
|
||||
M10GTopParser();
|
||||
virtual ~M10GTopParser();
|
||||
M10GtopParser();
|
||||
virtual ~M10GtopParser();
|
||||
virtual void changeData(std::array<unsigned char, DATA_LENGTH> data, bool good);
|
||||
virtual double getLatitude();
|
||||
virtual double getLongitude();
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include "M10GeneralParser.h"
|
||||
#include "M10PtuParser.h"
|
||||
#include "M10TrimbleParser.h"
|
||||
|
||||
M10GeneralParser::M10GeneralParser() {
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* File: M10GTop.cpp
|
||||
* File: M10Gtop.cpp
|
||||
* Author: Viproz
|
||||
* Used code from rs1729
|
||||
* Created on December 13, 2018, 4:39 PM
|
||||
|
@ -19,21 +19,21 @@
|
|||
#define pos_SN 0x5D // 2+3 byte
|
||||
#define pos_Check (stdFLEN-1) // 2 byte*/
|
||||
|
||||
#include "M10PtuParser.h"
|
||||
#include "M10TrimbleParser.h"
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
|
||||
char M10PtuParser::similarData[] = "xxxx----------------------xxxxxxxxxxxxxxxxxxxxxxxxxxx---xxxxxxx--xxxx-----xx----xxxxx------xxxxxxx---";
|
||||
char M10PtuParser::insertSpaces[] = "---xx-x-x-x---x---x---x---x-----x-x-----------x---x--x--x-----xx-x-x-x-xx-x-x-x-x----x---x-x-x----xxxx-x-------------x";
|
||||
char M10TrimbleParser::similarData[] = "xxxx----------------------xxxxxxxxxxxxxxxxxxxxxxxxxxx---xxxxxxx--xxxx-----xx----xxxxx------xxxxxxx---";
|
||||
char M10TrimbleParser::insertSpaces[] = "---xx-x-x-x---x---x---x---x-----x-x-----------x---x--x--x-----xx-x-x-x-xx-x-x-x-x----x---x-x-x----xxxx-x-------------x";
|
||||
|
||||
M10PtuParser::M10PtuParser() {
|
||||
M10TrimbleParser::M10TrimbleParser() {
|
||||
}
|
||||
|
||||
M10PtuParser::~M10PtuParser() {
|
||||
M10TrimbleParser::~M10TrimbleParser() {
|
||||
}
|
||||
|
||||
void M10PtuParser::changeData(std::array<unsigned char, DATA_LENGTH> data, bool good) {
|
||||
void M10TrimbleParser::changeData(std::array<unsigned char, DATA_LENGTH> data, bool good) {
|
||||
M10GeneralParser::changeData(data, good);
|
||||
|
||||
int i;
|
||||
|
@ -64,7 +64,7 @@ void M10PtuParser::changeData(std::array<unsigned char, DATA_LENGTH> data, bool
|
|||
gps2Date(week, time / 1000, &year, &month, &day);
|
||||
}
|
||||
|
||||
double M10PtuParser::getLatitude() {
|
||||
double M10TrimbleParser::getLatitude() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short gpslat_bytes[4];
|
||||
|
@ -83,7 +83,7 @@ double M10PtuParser::getLatitude() {
|
|||
return gpslat / B60B60;
|
||||
}
|
||||
|
||||
double M10PtuParser::getLongitude() {
|
||||
double M10TrimbleParser::getLongitude() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short gpslon_bytes[4];
|
||||
|
@ -102,7 +102,7 @@ double M10PtuParser::getLongitude() {
|
|||
return gpslon / B60B60;
|
||||
}
|
||||
|
||||
double M10PtuParser::getAltitude() {
|
||||
double M10TrimbleParser::getAltitude() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short gpsalt_bytes[4];
|
||||
|
@ -120,31 +120,31 @@ double M10PtuParser::getAltitude() {
|
|||
return gpsalt / 1000.0;
|
||||
}
|
||||
|
||||
int M10PtuParser::getDay() {
|
||||
int M10TrimbleParser::getDay() {
|
||||
return day;
|
||||
}
|
||||
|
||||
int M10PtuParser::getMonth() {
|
||||
int M10TrimbleParser::getMonth() {
|
||||
return month;
|
||||
}
|
||||
|
||||
int M10PtuParser::getYear() {
|
||||
int M10TrimbleParser::getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
int M10PtuParser::getHours() {
|
||||
int M10TrimbleParser::getHours() {
|
||||
return (time / 1000 % (24 * 3600)) / 3600;
|
||||
}
|
||||
|
||||
int M10PtuParser::getMinutes() {
|
||||
int M10TrimbleParser::getMinutes() {
|
||||
return ((time / 1000 % (24 * 3600)) % 3600) / 60;
|
||||
}
|
||||
|
||||
int M10PtuParser::getSeconds() {
|
||||
int M10TrimbleParser::getSeconds() {
|
||||
return (time / 1000 % (24 * 3600)) % 60;
|
||||
}
|
||||
|
||||
double M10PtuParser::getVerticalSpeed() {
|
||||
double M10TrimbleParser::getVerticalSpeed() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short gpsVel_bytes[2];
|
||||
|
@ -159,7 +159,7 @@ double M10PtuParser::getVerticalSpeed() {
|
|||
return vel16 / ms2kn100;
|
||||
}
|
||||
|
||||
double M10PtuParser::getHorizontalSpeed() {
|
||||
double M10TrimbleParser::getHorizontalSpeed() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short gpsVel_bytes[2];
|
||||
|
@ -184,7 +184,7 @@ double M10PtuParser::getHorizontalSpeed() {
|
|||
return sqrt(vx * vx + vy * vy);
|
||||
}
|
||||
|
||||
double M10PtuParser::getDirection() {
|
||||
double M10TrimbleParser::getDirection() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short gpsVel_bytes[2];
|
||||
|
@ -212,7 +212,7 @@ double M10PtuParser::getDirection() {
|
|||
return dir;
|
||||
}
|
||||
|
||||
double M10PtuParser::getTemperature() {
|
||||
double M10TrimbleParser::getTemperature() {
|
||||
// NTC-Thermistor Shibaura PB5-41E
|
||||
// T00 = 273.15 + 0.0 , R00 = 15e3
|
||||
// T25 = 273.15 + 25.0 , R25 = 5.369e3
|
||||
|
@ -288,23 +288,23 @@ double M10PtuParser::getTemperature() {
|
|||
return T - 273.15; // Celsius
|
||||
}
|
||||
|
||||
double M10PtuParser::getHumidity() {
|
||||
double M10TrimbleParser::getHumidity() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
double M10PtuParser::getDp() {
|
||||
double M10TrimbleParser::getDp() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string M10PtuParser::getSerialNumber() {
|
||||
std::string M10TrimbleParser::getSerialNumber() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short sn_bytes[5];
|
||||
char SN[12];
|
||||
char SN[18];
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
for (i = 0; i < 17; i++)
|
||||
SN[i] = ' ';
|
||||
SN[11] = '\0';
|
||||
SN[17] = '\0';
|
||||
|
||||
for (i = 0; i < 5; i++) {
|
||||
byte = frame_bytes[0x5D + i];
|
||||
|
@ -312,14 +312,14 @@ std::string M10PtuParser::getSerialNumber() {
|
|||
}
|
||||
|
||||
byte = sn_bytes[2];
|
||||
sprintf(SN, "%1X%02u", (byte >> 4)&0xF, byte & 0xF);
|
||||
sprintf(SN, "M10-T-%1X%02u", (byte >> 4)&0xF, byte & 0xF);
|
||||
byte = sn_bytes[3] | (sn_bytes[4] << 8);
|
||||
sprintf(SN + 3, " %1X %1u%04u", sn_bytes[0]&0xF, (byte >> 13)&0x7, byte & 0x1FFF);
|
||||
sprintf(SN + 9, "-%1X-%1u%04u", sn_bytes[0]&0xF, (byte >> 13)&0x7, byte & 0x1FFF);
|
||||
|
||||
return SN;
|
||||
}
|
||||
|
||||
std::string M10PtuParser::getdxlSerialNumber() {
|
||||
std::string M10TrimbleParser::getdxlSerialNumber() {
|
||||
int i;
|
||||
unsigned byte;
|
||||
unsigned short sn_bytes[5];
|
||||
|
@ -355,7 +355,7 @@ std::string M10PtuParser::getdxlSerialNumber() {
|
|||
return ids;
|
||||
}
|
||||
|
||||
std::array<unsigned char, DATA_LENGTH> M10PtuParser::replaceWithPrevious(std::array<unsigned char, DATA_LENGTH> data) {
|
||||
std::array<unsigned char, DATA_LENGTH> M10TrimbleParser::replaceWithPrevious(std::array<unsigned char, DATA_LENGTH> data) {
|
||||
unsigned short valMax;
|
||||
unsigned short posMax;
|
||||
|
||||
|
@ -386,7 +386,7 @@ std::array<unsigned char, DATA_LENGTH> M10PtuParser::replaceWithPrevious(std::ar
|
|||
return data;
|
||||
}
|
||||
|
||||
void M10PtuParser::printFrame() {
|
||||
void M10TrimbleParser::printFrame() {
|
||||
if (dispRaw) {
|
||||
for (int i = 0; i < frameLength + 1; ++i) {
|
||||
if (insertSpaces[i] == 'x')
|
||||
|
@ -412,6 +412,12 @@ void M10PtuParser::printFrame() {
|
|||
timeinfo.tm_isdst = 0;
|
||||
|
||||
frame = mktime(&timeinfo);
|
||||
|
||||
// Aux data tag if the payload lenght is long
|
||||
std::string auxstr = "";
|
||||
if(frame_bytes[0x00] != 0x64) {
|
||||
auxstr = "\"aux\": -1, ";
|
||||
}
|
||||
|
||||
// Decoder sensible to comma at the end, strict json
|
||||
printf("{ "
|
||||
|
@ -420,6 +426,7 @@ void M10PtuParser::printFrame() {
|
|||
"\"id\": \"%s\", "
|
||||
"\"dxlid\": \"%s\", "
|
||||
"\"datetime\": \"%04d-%02d-%02dT%02d:%02d:%02dZ\", "
|
||||
"%s" // Aux data
|
||||
"\"lat\": %.5f, "
|
||||
"\"lon\": %.5f, "
|
||||
"\"alt\": %.2f, "
|
||||
|
@ -429,7 +436,7 @@ void M10PtuParser::printFrame() {
|
|||
"\"temp\": %.1f, "
|
||||
"\"crc\": %d "
|
||||
"}\n",
|
||||
"Ptu", frame, getSerialNumber().c_str(), getdxlSerialNumber().c_str(), getYear(), getMonth(), getDay(), getHours(), getMinutes(), getSeconds(), getLatitude(), getLongitude(),
|
||||
"Trimble", frame, getSerialNumber().c_str(), getdxlSerialNumber().c_str(), getYear(), getMonth(), getDay(), getHours(), getMinutes(), getSeconds(), auxstr.c_str(), getLatitude(), getLongitude(),
|
||||
getAltitude(), getHorizontalSpeed(), getDirection(), getVerticalSpeed(), getTemperature(), correctCRC);
|
||||
}
|
||||
}
|
||||
|
@ -439,7 +446,7 @@ void M10PtuParser::printFrame() {
|
|||
* - Adapted from sci.astro FAQ.
|
||||
* - Ignores UTC leap seconds.
|
||||
*/
|
||||
void M10PtuParser::gps2Date(long GpsWeek, long GpsSeconds, int *Year, int *Month, int *Day) {
|
||||
void M10TrimbleParser::gps2Date(long GpsWeek, long GpsSeconds, int *Year, int *Month, int *Day) {
|
||||
|
||||
long GpsDays, Mjd;
|
||||
long J, C, Y, M;
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* File: M10GTop.h
|
||||
* File: M10Gtop.h
|
||||
* Author: Viproz
|
||||
* Used code from rs1729
|
||||
* Created on December 13, 2018, 4:39 PM
|
||||
|
@ -14,10 +14,10 @@
|
|||
#include <math.h>
|
||||
#include "M10GeneralParser.h"
|
||||
|
||||
class M10PtuParser : public M10GeneralParser {
|
||||
class M10TrimbleParser : public M10GeneralParser {
|
||||
public:
|
||||
M10PtuParser();
|
||||
virtual ~M10PtuParser();
|
||||
M10TrimbleParser();
|
||||
virtual ~M10TrimbleParser();
|
||||
virtual void changeData(std::array<unsigned char, DATA_LENGTH> data, bool good);
|
||||
virtual double getLatitude();
|
||||
virtual double getLongitude();
|
|
@ -2,7 +2,7 @@
|
|||
## Radiosonde M10
|
||||
|
||||
#### Compile
|
||||
`g++ -O M10.cpp M10Decoder.cpp M10GeneralParser.cpp M10GTopParser.cpp M10PtuParser.cpp -o m10`
|
||||
`g++ -O M10.cpp M10Decoder.cpp M10GeneralParser.cpp M10GtopParser.cpp M10TrimbleParser.cpp -o m10`
|
||||
|
||||
#### Usage
|
||||
`./m10 [options] filename`<br />
|
||||
|
|
Ładowanie…
Reference in New Issue