#include "entermode.h" EnterMode::EnterMode(QWidget *parent) : QWidget(parent) { button_enterModeStandby = new QPushButton(tr("STANDBY")); button_enterModeNormal = new QPushButton(tr("NORMAL")); button_enterModeBurst = new QPushButton(tr("BURST")); button_enterModeSBM1 = new QPushButton(tr("SBM1")); button_enterModeSBM2 = new QPushButton(tr("SBM2")); mainLayout = new QGridLayout(); overallLayout = new QGridLayout(); groupBox = new QGroupBox(tr("ENTER_MODE")); mainLayout->addWidget(button_enterModeStandby, 0, 0, 1, 1); mainLayout->addWidget(button_enterModeNormal, 1, 0, 1, 1); mainLayout->addWidget(button_enterModeBurst, 2, 0, 1, 1); mainLayout->addWidget(button_enterModeSBM1, 3, 0, 1, 1); mainLayout->addWidget(button_enterModeSBM2, 4, 0, 1, 1); mainLayout->setColumnStretch(1, 1); mainLayout->setRowStretch(5, 1); groupBox->setLayout(mainLayout); parameterDump = new ParameterDump(); connect(this->button_enterModeStandby, SIGNAL(clicked()), this, SLOT(enterModeStandby())); connect(this->button_enterModeNormal, SIGNAL(clicked()), this, SLOT(enterModeNormal())); connect(this->button_enterModeBurst, SIGNAL(clicked()), this, SLOT(enterModeBurst())); connect(this->button_enterModeSBM1, SIGNAL(clicked()), this, SLOT(enterModeSBM1())); connect(this->button_enterModeSBM2, SIGNAL(clicked()), this, SLOT(enterModeSBM2())); overallLayout->addWidget(groupBox, 0, 0, 1, 1); this->setLayout(overallLayout); } void EnterMode::sendEnterMode( unsigned char mode) { Packet_TC_LFR_ENTER_MODE_t packet; unsigned char crcAsTwoBytes[2]; packet.packetID[0] = (unsigned char) (TC_LFR_PACKET_ID >> 8); packet.packetID[1] = (unsigned char) (TC_LFR_PACKET_ID ); packet.packetSequenceControl[0] = (unsigned char) (TC_LFR_PACKET_SEQUENCE_CONTROL >> 8); packet.packetSequenceControl[1] = (unsigned char) (TC_LFR_PACKET_SEQUENCE_CONTROL ); packet.packetLength[0] = (unsigned char) (PACKET_LENGTH_TC_LFR_ENTER_MODE >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_ENTER_MODE ); packet.ccsdsSecHeaderFlag_pusVersion_ack = 0x19; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_ENTER_MODE; packet.sourceID = SID_DEFAULT; packet.spare = 0x00; packet.mode = mode; packet.enterModeTime[0] = 0x00; packet.enterModeTime[1] = 0x00; packet.enterModeTime[2] = 0x00; packet.enterModeTime[3] = 0x00; packet.enterModeTime[4] = 0x00; packet.enterModeTime[5] = 0x00; parameterDump->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_ENTER_MODE + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_ENTER_MODE + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void EnterMode::enterModeStandby() { sendEnterMode( 0 ); } void EnterMode::enterModeNormal() { sendEnterMode( 1 ); } void EnterMode::enterModeBurst() { sendEnterMode( 2 ); } void EnterMode::enterModeSBM1() { sendEnterMode( 3 ); } void EnterMode::enterModeSBM2() { sendEnterMode( 4 ); }