#include "parameterdump.h" ParameterDump::ParameterDump(QWidget *parent) : QWidget(parent) { this->buildTabParameterDump(); packetToSend = new TCPacketToSend(); this->setLayout(layout_parameterDump); } void ParameterDump::buildTabParameterDump() { buildCOMM(); buildNORM(); buildBURST(); buildSBM1(); buildSBM2(); buildActions(); layout_parameterDump = new QGridLayout(); layout_parameterDump->addWidget(groupbox_COMM, 0, 0, 1, 1); layout_parameterDump->addWidget(groupbox_NORM, 0, 1, 1, 1); layout_parameterDump->addWidget(groupbox_BURST, 1, 0, 1, 1); layout_parameterDump->addWidget(groupbox_SBM1, 1 , 1, 1, 1); layout_parameterDump->addWidget(groupbox_SBM2, 2, 0, 1, 1); layout_parameterDump->addWidget(button_parameterDump, 2, 1, 1, 1); layout_parameterDump->setRowStretch(2, 1); layout_parameterDump->setColumnStretch(2, 1); } void ParameterDump::buildCOMM() { groupbox_COMM = new QGroupBox(tr("COMMON_PAR")); layout_COMM = new QGridLayout(); sy_lfr_bw = new QLabel("sy_lfr_bw "); sy_lfr_sp0 = new QLabel("sy_lfr_sp0 "); sy_lfr_sp1 = new QLabel("sy_lfr_sp1 "); sy_lfr_r0 = new QLabel("sy_lfr_r0 "); sy_lfr_r1 = new QLabel("sy_lfr_r1 "); spinbox_sy_lfr_bw = new QSpinBox(); spinbox_sy_lfr_sp0 = new QSpinBox(); spinbox_sy_lfr_sp1 = new QSpinBox(); spinbox_sy_lfr_r0 = new QSpinBox(); spinbox_sy_lfr_r1 = new QSpinBox(); button_loadCommon = new QPushButton(tr("LOAD_COMM")); button_loadCommon->setEnabled(false); spinbox_sy_lfr_bw->setRange(0, 1); spinbox_sy_lfr_sp0->setRange(0, 1); spinbox_sy_lfr_sp1->setRange(0, 1); spinbox_sy_lfr_r0->setRange(0, 1); spinbox_sy_lfr_r1->setRange(0, 1); spinbox_sy_lfr_bw->setValue(1); spinbox_sy_lfr_sp0->setValue(0); spinbox_sy_lfr_sp1->setValue(0); spinbox_sy_lfr_r0->setValue(0); spinbox_sy_lfr_r1->setValue(0); layout_COMM->addWidget(button_loadCommon, 0, 0, 1, 2); layout_COMM->addWidget(sy_lfr_bw, 1, 0, 1, 1); layout_COMM->addWidget(sy_lfr_sp0, 2, 0, 1, 1); layout_COMM->addWidget(sy_lfr_sp1, 3, 0, 1, 1); layout_COMM->addWidget(sy_lfr_r0, 4, 0, 1, 1); layout_COMM->addWidget(sy_lfr_r1, 5, 0, 1, 1); layout_COMM->addWidget(spinbox_sy_lfr_bw, 1, 1, 1, 1); layout_COMM->addWidget(spinbox_sy_lfr_sp0, 2, 1, 1, 1); layout_COMM->addWidget(spinbox_sy_lfr_sp1, 3, 1, 1, 1); layout_COMM->addWidget(spinbox_sy_lfr_r0, 4, 1, 1, 1); layout_COMM->addWidget(spinbox_sy_lfr_r1, 5, 1, 1, 1); layout_COMM->setColumnStretch(2, 1); layout_COMM->setRowStretch(6, 1); groupbox_COMM->setLayout(layout_COMM); connect(this->button_loadCommon, SIGNAL(clicked()), this, SLOT(sendLoadCommon())); } void ParameterDump::buildNORM() { groupbox_NORM = new QGroupBox(tr("NORMAL_PAR")); layout_NORM = new QGridLayout(); sy_lfr_n_swf_l = new QLabel("sy_lfr_n_swf_l "); sy_lfr_n_swf_p = new QLabel("sy_lfr_n_swf_p "); sy_lfr_n_asm_p = new QLabel("sy_lfr_n_asm_p "); sy_lfr_n_bp_p0 = new QLabel("sy_lfr_n_bp_p0 "); sy_lfr_n_bp_p1 = new QLabel("sy_lfr_n_bp_p1 "); spinbox_sy_lfr_n_swf_l = new QSpinBox(); spinbox_sy_lfr_n_swf_p = new QSpinBox(); spinbox_sy_lfr_n_asm_p = new QSpinBox(); spinbox_sy_lfr_n_bp_p0 = new QSpinBox(); spinbox_sy_lfr_n_bp_p1 = new QSpinBox(); button_loadNormal = new QPushButton(tr("LOAD_NORM")); button_loadNormal->setEnabled(false); spinbox_sy_lfr_n_swf_l->setRange(256, 65535); spinbox_sy_lfr_n_swf_p->setRange(16, 65535); spinbox_sy_lfr_n_asm_p->setRange(2, 65535); spinbox_sy_lfr_n_bp_p0->setRange(4, 255); spinbox_sy_lfr_n_bp_p1->setRange(20, 255); spinbox_sy_lfr_n_swf_l->setValue(2048); spinbox_sy_lfr_n_swf_p->setValue(300); spinbox_sy_lfr_n_asm_p->setValue(3600); spinbox_sy_lfr_n_bp_p0->setValue(4); spinbox_sy_lfr_n_bp_p1->setValue(20); layout_NORM->addWidget(button_loadNormal, 0, 0, 1, 2); layout_NORM->addWidget(sy_lfr_n_swf_l, 1, 0, 1, 1); layout_NORM->addWidget(sy_lfr_n_swf_p, 2, 0, 1, 1); layout_NORM->addWidget(sy_lfr_n_asm_p, 3, 0, 1, 1); layout_NORM->addWidget(sy_lfr_n_bp_p0, 4, 0, 1, 1); layout_NORM->addWidget(sy_lfr_n_bp_p1, 5, 0, 1, 1); layout_NORM->addWidget(spinbox_sy_lfr_n_swf_l, 1, 1, 1, 1); layout_NORM->addWidget(spinbox_sy_lfr_n_swf_p, 2, 1, 1, 1); layout_NORM->addWidget(spinbox_sy_lfr_n_asm_p, 3, 1, 1, 1); layout_NORM->addWidget(spinbox_sy_lfr_n_bp_p0, 4, 1, 1, 1); layout_NORM->addWidget(spinbox_sy_lfr_n_bp_p1, 5, 1, 1, 1); layout_NORM->setColumnStretch(2, 1); layout_NORM->setRowStretch(6, 1); groupbox_NORM->setLayout(layout_NORM); connect(this->button_loadNormal, SIGNAL(clicked()), this, SLOT(sendLoadNormal())); } void ParameterDump::buildBURST() { groupbox_BURST = new QGroupBox(tr("BURST_PAR")); layout_BURST = new QGridLayout(); sy_lfr_b_bp_p0 = new QLabel("sy_lfr_b_bp_p0 "); sy_lfr_b_bp_p1 = new QLabel("sy_lfr_b_bp_p1 "); spinbox_sy_lfr_b_bp_p0 = new QSpinBox(); spinbox_sy_lfr_b_bp_p1 = new QSpinBox(); button_loadBurst = new QPushButton(tr("LOAD_BURST")); button_loadBurst->setEnabled(false); spinbox_sy_lfr_b_bp_p0->setRange(1, 255); spinbox_sy_lfr_b_bp_p1->setRange(5, 255); layout_BURST->addWidget(button_loadBurst, 0, 0, 1, 2); layout_BURST->addWidget(sy_lfr_b_bp_p0, 1, 0, 1, 1); layout_BURST->addWidget(sy_lfr_b_bp_p1, 2, 0, 1, 1); layout_BURST->addWidget(spinbox_sy_lfr_b_bp_p0, 1, 1, 1, 1); layout_BURST->addWidget(spinbox_sy_lfr_b_bp_p1, 2, 1, 1, 1); layout_BURST->setColumnStretch(2, 1); layout_BURST->setRowStretch(3, 1); groupbox_BURST->setLayout(layout_BURST); connect(this->button_loadBurst, SIGNAL(clicked()), this, SLOT(sendLoadBurst())); } void ParameterDump::buildSBM1() { groupbox_SBM1 = new QGroupBox(tr("SBM1_PAR")); layout_SBM1 = new QGridLayout(); sy_lfr_s1_bp_p0 = new QLabel("sy_lfr_s1_bp_p0 "); sy_lfr_s1_bp_p1 = new QLabel("sy_lfr_s1_bp_p1 "); spinbox_sy_lfr_s1_bp_p0 = new QDoubleSpinBox(); spinbox_sy_lfr_s1_bp_p1 = new QSpinBox(); button_loadSBM1 = new QPushButton(tr("LOAD_SBM1")); button_loadSBM1->setEnabled(false); spinbox_sy_lfr_s1_bp_p0->setRange(0.25, 0.25*256); spinbox_sy_lfr_b_bp_p0->setValue(0.25); spinbox_sy_lfr_s1_bp_p1->setRange(1, 255); spinbox_sy_lfr_b_bp_p1->setValue(1); layout_SBM1->addWidget(button_loadSBM1, 0, 0, 1, 2); layout_SBM1->addWidget(sy_lfr_s1_bp_p0, 1, 0, 1, 1); layout_SBM1->addWidget(sy_lfr_s1_bp_p1, 2, 0, 1, 1); layout_SBM1->addWidget(spinbox_sy_lfr_s1_bp_p0, 1, 1, 1, 1); layout_SBM1->addWidget(spinbox_sy_lfr_s1_bp_p1, 2, 1, 1, 1); layout_SBM1->setColumnStretch(2, 1); layout_SBM1->setRowStretch(3, 1); groupbox_SBM1->setLayout(layout_SBM1); connect(this->button_loadSBM1, SIGNAL(clicked()), this, SLOT(sendLoadSBM1())); } void ParameterDump::buildSBM2() { groupbox_SBM2 = new QGroupBox(tr("SBM2_PAR")); layout_SBM2 = new QGridLayout(); sy_lfr_s2_bp_p0 = new QLabel("sy_lfr_s2_bp_p0 "); sy_lfr_s2_bp_p1 = new QLabel("sy_lfr_s2_bp_p1 "); spinbox_sy_lfr_s2_bp_p0 = new QSpinBox(); spinbox_sy_lfr_s2_bp_p1 = new QSpinBox(); button_loadSBM2 = new QPushButton(tr("LOAD_SBM2")); button_loadSBM2->setEnabled(false); spinbox_sy_lfr_s2_bp_p0->setRange(1, 255); spinbox_sy_lfr_s2_bp_p1->setRange(5, 255); layout_SBM2->addWidget(button_loadSBM2, 0, 0, 1, 2); layout_SBM2->addWidget(sy_lfr_s2_bp_p0, 1, 0, 1, 1); layout_SBM2->addWidget(sy_lfr_s2_bp_p1, 2, 0, 1, 1); layout_SBM2->addWidget(spinbox_sy_lfr_s2_bp_p0, 1, 1, 1, 1); layout_SBM2->addWidget(spinbox_sy_lfr_s2_bp_p1, 2, 1, 1, 1); layout_SBM2->setColumnStretch(2, 1); layout_SBM2->setRowStretch(3, 1); groupbox_SBM2->setLayout(layout_SBM2); connect(this->button_loadSBM2, SIGNAL(clicked()), this, SLOT(sendLoadSBM2())); } void ParameterDump::buildActions() { button_parameterDump = new QPushButton(tr("DUMP_PAR")); button_parameterDump->setEnabled(false); connect(this->button_parameterDump, SIGNAL(clicked()), this, SLOT(sendParameterDump())); } void ParameterDump::updateParameterDump(TMPacketToRead *tmPacketToRead) { Packet_TM_LFR_PARAMETER_DUMP_t *parameterPacket; parameterPacket = (Packet_TM_LFR_PARAMETER_DUMP_t *) tmPacketToRead->Value; // COMMON spinbox_sy_lfr_bw->setValue( (parameterPacket->bw_sp0_sp1_r0_r1 & 0x10 ) >> 4 ); spinbox_sy_lfr_sp0->setValue( (parameterPacket->bw_sp0_sp1_r0_r1 & 0x08 ) >> 3 ); spinbox_sy_lfr_sp1->setValue( (parameterPacket->bw_sp0_sp1_r0_r1 & 0x04 ) >> 2 ); spinbox_sy_lfr_r0->setValue( (parameterPacket->bw_sp0_sp1_r0_r1 & 0x02 ) >> 1 ); spinbox_sy_lfr_r1->setValue( (parameterPacket->bw_sp0_sp1_r0_r1 & 0x01 ) ); // NORMAL spinbox_sy_lfr_n_swf_l->setValue(parameterPacket->sy_lfr_n_swf_l[0] * 256 + parameterPacket->sy_lfr_n_swf_l[1]); spinbox_sy_lfr_n_swf_p->setValue(parameterPacket->sy_lfr_n_swf_p[0] * 256 + parameterPacket->sy_lfr_n_swf_p[1]); spinbox_sy_lfr_n_asm_p->setValue(parameterPacket->sy_lfr_n_asm_p[0] * 256 + parameterPacket->sy_lfr_n_asm_p[1]); spinbox_sy_lfr_n_bp_p0->setValue(parameterPacket->sy_lfr_n_bp_p0); spinbox_sy_lfr_n_bp_p1->setValue(parameterPacket->sy_lfr_n_bp_p1); // BURST spinbox_sy_lfr_b_bp_p0->setValue(parameterPacket->sy_lfr_b_bp_p0); spinbox_sy_lfr_b_bp_p1->setValue(parameterPacket->sy_lfr_b_bp_p1); // SBM1 spinbox_sy_lfr_s1_bp_p0->setValue(parameterPacket->sy_lfr_s1_bp_p0); spinbox_sy_lfr_s1_bp_p1->setValue(parameterPacket->sy_lfr_s1_bp_p1); // SBM2 spinbox_sy_lfr_s2_bp_p0->setValue(parameterPacket->sy_lfr_s2_bp_p0); spinbox_sy_lfr_s2_bp_p1->setValue(parameterPacket->sy_lfr_s2_bp_p1); } void ParameterDump::sendParameterDump() { Packet_TC_LFR_DUMP_PAR_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_DUMP_PAR >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_DUMP_PAR ); packet.ccsdsSecHeaderFlag_pusVersion_ack = 0x19; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_DUMP; packet.sourceID = SID_DEFAULT; packetToSend->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_DUMP_PAR + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_DUMP_PAR + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void ParameterDump::sendLoadCommon() { Packet_TC_LFR_LOAD_COMMON_PAR_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_LOAD_COMMON_PAR >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_LOAD_COMMON_PAR ); packet.ccsdsSecHeaderFlag_pusVersion_ack = TC_LFR_DATA_FIELD_HEADER0; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_LOAD_COMMON_PAR; packet.sourceID = SID_DEFAULT; packet.spare = TC_LFR_LOAD_COMMON_PAR_SPARE; packet.bw_sp0_sp1_r0_r1 = (spinbox_sy_lfr_bw->value() << 4) + (spinbox_sy_lfr_sp0->value() << 3) + (spinbox_sy_lfr_sp1->value() << 2) + (spinbox_sy_lfr_r0->value() << 1) + (spinbox_sy_lfr_r1->value() ); packetToSend->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_LOAD_COMMON_PAR + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_LOAD_COMMON_PAR + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void ParameterDump::sendLoadNormal() { Packet_TC_LFR_LOAD_NORMAL_PAR_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_LOAD_NORMAL_PAR >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_LOAD_NORMAL_PAR ); packet.ccsdsSecHeaderFlag_pusVersion_ack = TC_LFR_DATA_FIELD_HEADER0; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_LOAD_NORMAL_PAR; packet.sourceID = SID_DEFAULT; packet.sy_lfr_n_swf_l[0] = (unsigned char) (spinbox_sy_lfr_n_swf_l->value() >> 8); packet.sy_lfr_n_swf_l[1] = (unsigned char) (spinbox_sy_lfr_n_swf_l->value() ); packet.sy_lfr_n_swf_p[0] = (unsigned char) (spinbox_sy_lfr_n_swf_p->value() >> 8); packet.sy_lfr_n_swf_p[1] = (unsigned char) (spinbox_sy_lfr_n_swf_p->value() ); packet.sy_lfr_n_asm_p[0] = (unsigned char) (spinbox_sy_lfr_n_asm_p->value() >> 8); packet.sy_lfr_n_asm_p[1] = (unsigned char) (spinbox_sy_lfr_n_asm_p->value() ); packet.sy_lfr_n_bp_p0 = (unsigned char) (spinbox_sy_lfr_n_bp_p0->value() ); packet.sy_lfr_n_bp_p1 = (unsigned char) (spinbox_sy_lfr_n_bp_p1->value() ); packetToSend->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_LOAD_NORMAL_PAR + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_LOAD_NORMAL_PAR + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void ParameterDump::sendLoadBurst() { Packet_TC_LFR_LOAD_BURST_SBM1_SBM2_PAR_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_LOAD_BURST_PAR >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_LOAD_BURST_PAR ); packet.ccsdsSecHeaderFlag_pusVersion_ack = TC_LFR_DATA_FIELD_HEADER0; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_LOAD_BURST_PAR; packet.sourceID = SID_DEFAULT; packet.sy_lfr_bp_p0 = (unsigned char) (spinbox_sy_lfr_b_bp_p0->value() ); packet.sy_lfr_bp_p1 = (unsigned char) (spinbox_sy_lfr_b_bp_p1->value() ); packetToSend->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_LOAD_BURST_PAR + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_LOAD_BURST_PAR + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void ParameterDump::sendLoadSBM1() { Packet_TC_LFR_LOAD_BURST_SBM1_SBM2_PAR_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_LOAD_SBM1_PAR >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_LOAD_SBM1_PAR ); packet.ccsdsSecHeaderFlag_pusVersion_ack = TC_LFR_DATA_FIELD_HEADER0; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_LOAD_SBM1_PAR; packet.sourceID = SID_DEFAULT; packet.sy_lfr_bp_p0 = (unsigned char) (spinbox_sy_lfr_s1_bp_p0->value() ); packet.sy_lfr_bp_p1 = (unsigned char) (spinbox_sy_lfr_s1_bp_p1->value() ); packetToSend->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_LOAD_SBM1_PAR + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_LOAD_SBM1_PAR + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void ParameterDump::sendLoadSBM2() { Packet_TC_LFR_LOAD_BURST_SBM1_SBM2_PAR_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_LOAD_SBM2_PAR >> 8); packet.packetLength[1] = (unsigned char) (PACKET_LENGTH_TC_LFR_LOAD_SBM2_PAR ); packet.ccsdsSecHeaderFlag_pusVersion_ack = TC_LFR_DATA_FIELD_HEADER0; packet.serviceType = TC_TYPE_DEFAULT; packet.serviceSubType = TC_SUBTYPE_LOAD_SBM2_PAR; packet.sourceID = SID_DEFAULT; packet.sy_lfr_bp_p0 = (unsigned char) (spinbox_sy_lfr_s2_bp_p0->value() ); packet.sy_lfr_bp_p1 = (unsigned char) (spinbox_sy_lfr_s2_bp_p1->value() ); packetToSend->GetCRCAsTwoBytes((unsigned char*) &packet, crcAsTwoBytes, PACKET_LENGTH_TC_LFR_LOAD_SBM2_PAR + CCSDS_TC_TM_PACKET_OFFSET - 2); packet.crc[0] = crcAsTwoBytes[0]; packet.crc[1] = crcAsTwoBytes[1]; emit WriteSPWSig((char*) &packet, PACKET_LENGTH_TC_LFR_LOAD_SBM2_PAR + CCSDS_TC_TM_PACKET_OFFSET, CCSDS_NODE_ADDRESS, CCSDS_USER_APP); } void ParameterDump::actionsSetEnabled(bool state) { button_parameterDump->setEnabled(state); button_loadCommon->setEnabled(state); button_loadNormal->setEnabled(state); button_loadBurst->setEnabled(state); button_loadSBM1->setEnabled(state); button_loadSBM2->setEnabled(state); } void ParameterDump::GetCRCAsTwoBytes(unsigned char* data, unsigned char* crcAsTwoBytes, unsigned int sizeOfData) { packetToSend->GetCRCAsTwoBytes( data, crcAsTwoBytes, sizeOfData ); }