command to reset error signal
This commit is contained in:
@ -49,7 +49,9 @@ ReturnValue_t StarTrackerHandler::initialize() {
|
||||
if (result != RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = manager->subscribeToAllEventsFrom(eventQueue->getId(), objects::STR_IMG_LOADER);
|
||||
result = manager->subscribeToEventRange(eventQueue->getId(),
|
||||
event::getEventId(StrImageLoader::IMAGE_UPLOAD_FAILED),
|
||||
event::getEventId(StrImageLoader::IMAGE_DOWNLOAD_SUCCESSFUL));
|
||||
if (result != RETURN_OK) {
|
||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||
sif::warning << "StarTrackerHandler::initialize: Failed to subscribe to events form image"
|
||||
@ -58,7 +60,10 @@ ReturnValue_t StarTrackerHandler::initialize() {
|
||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||
}
|
||||
|
||||
strImageLoader->setComIF(communicationInterface);
|
||||
result = strImageLoader->setComIF(communicationInterface);
|
||||
if (result != RETURN_OK) {
|
||||
return ObjectManagerIF::CHILD_INIT_FAILED;
|
||||
}
|
||||
strImageLoader->setComCookie(comCookie);
|
||||
return RETURN_OK;
|
||||
}
|
||||
@ -68,6 +73,11 @@ ReturnValue_t StarTrackerHandler::executeAction(ActionId_t actionId, MessageQueu
|
||||
|
||||
ReturnValue_t result = RETURN_OK;
|
||||
|
||||
if (actionId == StarTracker::STOP_IMAGE_LOADER) {
|
||||
strImageLoader->stopProcess();
|
||||
return EXECUTION_FINISHED;
|
||||
}
|
||||
|
||||
if (imageLoaderExecuting == true) {
|
||||
return IMAGE_LOADER_EXECUTING;
|
||||
}
|
||||
@ -176,7 +186,7 @@ ReturnValue_t StarTrackerHandler::buildCommandFromCommand(DeviceCommandId_t devi
|
||||
return RETURN_OK;
|
||||
}
|
||||
case (StarTracker::TAKE_IMAGE): {
|
||||
prepareTakeImageCommand();
|
||||
prepareTakeImageCommand(commandData);
|
||||
return RETURN_OK;
|
||||
}
|
||||
case (StarTracker::SUBSCRIBE_TO_TM): {
|
||||
@ -191,6 +201,10 @@ ReturnValue_t StarTrackerHandler::buildCommandFromCommand(DeviceCommandId_t devi
|
||||
prepareTemperatureRequest();
|
||||
return RETURN_OK;
|
||||
}
|
||||
case (StarTracker::RESET_ERROR): {
|
||||
prepareErrorResetRequest();
|
||||
return RETURN_OK;
|
||||
}
|
||||
case (StarTracker::LIMITS): {
|
||||
Limits limits;
|
||||
result = prepareParamCommand(commandData, commandDataLen, limits);
|
||||
@ -294,6 +308,8 @@ void StarTrackerHandler::fillCommandAndReplyMap() {
|
||||
StarTracker::MAX_FRAME_SIZE * 2 + 2);
|
||||
this->insertInCommandAndReplyMap(StarTracker::TAKE_IMAGE, 3, nullptr,
|
||||
StarTracker::MAX_FRAME_SIZE * 2 + 2);
|
||||
this->insertInCommandAndReplyMap(StarTracker::RESET_ERROR, 3, nullptr,
|
||||
StarTracker::MAX_FRAME_SIZE * 2 + 2);
|
||||
}
|
||||
|
||||
ReturnValue_t StarTrackerHandler::scanForReply(const uint8_t *start, size_t remainingSize,
|
||||
@ -366,6 +382,10 @@ ReturnValue_t StarTrackerHandler::interpretDeviceReply(DeviceCommandId_t id, con
|
||||
result = handleActionReply();
|
||||
break;
|
||||
}
|
||||
case (StarTracker::RESET_ERROR): {
|
||||
result = handleActionReply();
|
||||
break;
|
||||
}
|
||||
case (StarTracker::TAKE_IMAGE): {
|
||||
result = handleActionReply();
|
||||
break;
|
||||
@ -535,6 +555,10 @@ ReturnValue_t StarTrackerHandler::scanForActionReply(DeviceCommandId_t *foundId)
|
||||
*foundId = StarTracker::UPLOAD_IMAGE;
|
||||
break;
|
||||
}
|
||||
case (StarTracker::ID::ERROR_RESET): {
|
||||
*foundId = StarTracker::RESET_ERROR;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
sif::warning << "StarTrackerHandler::scanForParameterReply: Unknown parameter reply id"
|
||||
<< std::endl;
|
||||
@ -710,9 +734,10 @@ void StarTrackerHandler::prepareRebootCommand() {
|
||||
rawPacketLen = dataLinkLayer.getEncodedLength();
|
||||
}
|
||||
|
||||
void StarTrackerHandler::prepareTakeImageCommand() {
|
||||
void StarTrackerHandler::prepareTakeImageCommand(const uint8_t* commandData) {
|
||||
uint32_t length = 0;
|
||||
struct CameraActionRequest camReq;
|
||||
camReq.actionid = *commandData;
|
||||
arc_pack_camera_action_req(&camReq, commandBuffer, &length);
|
||||
dataLinkLayer.encodeFrame(commandBuffer, length);
|
||||
rawPacket = dataLinkLayer.getEncodedFrame();
|
||||
@ -761,6 +786,15 @@ void StarTrackerHandler::prepareTemperatureRequest() {
|
||||
rawPacketLen = dataLinkLayer.getEncodedLength();
|
||||
}
|
||||
|
||||
void StarTrackerHandler::prepareErrorResetRequest() {
|
||||
uint32_t length = 0;
|
||||
struct ResetErrorSignalActionRequest req;
|
||||
arc_pack_reseterrorsignal_action_req(&req, commandBuffer, &length);
|
||||
dataLinkLayer.encodeFrame(commandBuffer, length);
|
||||
rawPacket = dataLinkLayer.getEncodedFrame();
|
||||
rawPacketLen = dataLinkLayer.getEncodedLength();
|
||||
}
|
||||
|
||||
ReturnValue_t StarTrackerHandler::prepareParamCommand(const uint8_t* commandData,
|
||||
size_t commandDataLen, ArcsecJsonParamBase& paramSet) {
|
||||
ReturnValue_t result = RETURN_OK;
|
||||
|
Reference in New Issue
Block a user