mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Device: Add start/stop/clear script, script status, and preload coremini commands
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "icsneo/communication/message/neoreadmemorysdmessage.h"
|
||||
#include "icsneo/communication/message/extendedresponsemessage.h"
|
||||
#include "icsneo/communication/message/wiviresponsemessage.h"
|
||||
#include "icsneo/communication/message/scriptstatusmessage.h"
|
||||
#include "icsneo/communication/message/a2bmessage.h"
|
||||
#include "icsneo/communication/message/flexray/control/flexraycontrolmessage.h"
|
||||
#include "icsneo/communication/command.h"
|
||||
@@ -20,6 +21,7 @@
|
||||
#include "icsneo/communication/packet/ethphyregpacket.h"
|
||||
#include "icsneo/communication/packet/logicaldiskinfopacket.h"
|
||||
#include "icsneo/communication/packet/wivicommandpacket.h"
|
||||
#include "icsneo/communication/packet/scriptstatuspacket.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace icsneo;
|
||||
@@ -319,6 +321,14 @@ bool Decoder::decode(std::shared_ptr<Message>& result, const std::shared_ptr<Pac
|
||||
}
|
||||
return true;
|
||||
}
|
||||
case Network::NetID::ScriptStatus: {
|
||||
result = ScriptStatus::DecodeToMessage(packet->data);
|
||||
if(!result) {
|
||||
report(APIEvent::Type::PacketDecodingError, APIEvent::Severity::EventWarning);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
#include <iostream>
|
||||
#include "icsneo/communication/packet/scriptstatuspacket.h"
|
||||
#include "icsneo/communication/message/scriptstatusmessage.h"
|
||||
|
||||
using namespace icsneo;
|
||||
|
||||
std::shared_ptr<ScriptStatusMessage> ScriptStatus::DecodeToMessage(const std::vector<uint8_t>& bytestream){
|
||||
if(bytestream.size() != sizeof(ScriptStatus))
|
||||
return {};
|
||||
|
||||
auto msg = std::make_shared<ScriptStatusMessage>();
|
||||
const auto& decoded = *reinterpret_cast<const ScriptStatus*>(bytestream.data());
|
||||
msg->isCoreminiRunning = decoded.status.isRunning;
|
||||
msg->sectorOverflows = decoded.sectorOverflows;
|
||||
msg->numRemainingSectorBuffers = decoded.numRemainingSectorBuffers;
|
||||
msg->lastSector = decoded.lastSector;
|
||||
msg->readBinSize = decoded.readBinSize;
|
||||
msg->minSector = decoded.minSector;
|
||||
msg->maxSector = decoded.maxSector;
|
||||
msg->currentSector = decoded.currentSector;
|
||||
msg->coreminiCreateTime = ((uint64_t)decoded.coreminiCreateTimeMsb << 32) | decoded.coreminiCreateTimeLsb;
|
||||
msg->fileChecksum = decoded.fileChecksum;
|
||||
msg->coreminiVersion = decoded.coreminiVersion;
|
||||
msg->coreminiHeaderSize = decoded.coreminiHeaderSize;
|
||||
msg->diagnosticErrorCode = decoded.diagErrCode;
|
||||
msg->diagnosticErrorCodeCount = decoded.diagErrCodeCount;
|
||||
msg->maxCoreminiSizeKB = decoded.maxCoreminiSizeKB;
|
||||
|
||||
return msg;
|
||||
}
|
||||
Reference in New Issue
Block a user