mirror of
https://github.com/peterantypas/maiana.git
synced 2025-05-27 21:00:24 -07:00
Initial changes for OP
This commit is contained in:
parent
735e36acd1
commit
18e14fe4c7
@ -53,6 +53,8 @@ private:
|
||||
bool erasePage();
|
||||
bool writePage();
|
||||
uint32_t nextAvailableOTPSlot();
|
||||
const char *hwRev();
|
||||
const char *serNum();
|
||||
};
|
||||
|
||||
#endif /* CONFIGURATION_HPP_ */
|
||||
|
@ -87,7 +87,7 @@
|
||||
#define CLI_FLAG_MAGIC 0x209a388d
|
||||
|
||||
#define CONFIGURATION_ADDRESS 0x0800F800
|
||||
#define OTP_DATA 0
|
||||
#define OTP_DATA 1
|
||||
|
||||
#define FW_REV "3.1.0"
|
||||
|
||||
|
@ -124,6 +124,10 @@ void CommandProcessor::processCommand(const char *buff)
|
||||
{
|
||||
Configuration::instance().reportStationData();
|
||||
}
|
||||
else if ( s.find("sys?") == 0 )
|
||||
{
|
||||
Configuration::instance().reportSystemData();
|
||||
}
|
||||
else if ( s.find("dfu") == 0 )
|
||||
{
|
||||
jumpToBootloader();
|
||||
@ -137,6 +141,18 @@ void CommandProcessor::processCommand(const char *buff)
|
||||
{
|
||||
fireTestPacket();
|
||||
}
|
||||
else if ( s.find("tx on") == 0 )
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
else if ( s.find("tx off") == 0 )
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
else if ( s.find("tx?") == 0 )
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
else if (s.find("reboot") == 0 )
|
||||
{
|
||||
bsp_reboot();
|
||||
@ -194,14 +210,17 @@ void CommandProcessor::writeOTPData(const std::string &s)
|
||||
|
||||
vector<string> tokens;
|
||||
Utils::tokenize(params, ' ', tokens);
|
||||
if ( tokens.size() < 2 )
|
||||
if ( tokens.size() < 1 )
|
||||
return;
|
||||
|
||||
OTPData data;
|
||||
memset(&data, 0, sizeof data);
|
||||
|
||||
data.magic = OTP_MAGIC;
|
||||
data.rev = OTP_REV;
|
||||
strlcpy(data.serialnum, tokens[0].c_str(), sizeof data.serialnum);
|
||||
strlcpy(data.hwrev, tokens[1].c_str(), sizeof data.hwrev);
|
||||
strlcpy(data.hwrev, tokens[0].c_str(), sizeof data.hwrev);
|
||||
if ( tokens.size() > 1 )
|
||||
strlcpy(data.serialnum, tokens[1].c_str(), sizeof data.serialnum);
|
||||
|
||||
bool result = Configuration::instance().writeOTP(data);
|
||||
if ( result )
|
||||
|
@ -68,13 +68,31 @@ void Configuration::init()
|
||||
}
|
||||
}
|
||||
|
||||
const char *Configuration::hwRev()
|
||||
{
|
||||
const OTPData *otp = readOTP();
|
||||
if ( otp )
|
||||
return otp->hwrev;
|
||||
else
|
||||
return BSP_HW_REV;
|
||||
}
|
||||
|
||||
const char *Configuration::serNum()
|
||||
{
|
||||
const OTPData *otp = readOTP();
|
||||
if ( otp )
|
||||
return otp->serialnum;
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
void Configuration::reportSystemData()
|
||||
{
|
||||
Event *e = EventPool::instance().newEvent(PROPR_NMEA_SENTENCE);
|
||||
if ( !e )
|
||||
return;
|
||||
|
||||
sprintf(e->nmeaBuffer.sentence, "$PAISYS,%s,%s,%s*", BSP_HW_REV, FW_REV, "");
|
||||
sprintf(e->nmeaBuffer.sentence, "$PAISYS,%s,%s,%s*", hwRev(), FW_REV, serNum());
|
||||
|
||||
Utils::completeNMEA(e->nmeaBuffer.sentence);
|
||||
EventQueue::instance().push(e);
|
||||
@ -123,9 +141,13 @@ void Configuration::reportOTPData()
|
||||
{
|
||||
sprintf(e->nmeaBuffer.sentence, "$PAIOTP,%s,%s*", data->serialnum, data->hwrev);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
strcpy(e->nmeaBuffer.sentence, "$PAIOTP,,*");
|
||||
}
|
||||
Utils::completeNMEA(e->nmeaBuffer.sentence);
|
||||
EventQueue::instance().push(e);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user