Skip to content
Snippets Groups Projects
main.cpp 6.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • kongr45gpen's avatar
    kongr45gpen committed
    #include <iostream>
    
    #include "Services/TestService.hpp"
    
    #include "Services/ParameterService.hpp"
    
    #include "Services/RequestVerificationService.hpp"
    
    #include "Services/MemoryManagementService.hpp"
    
    kongr45gpen's avatar
    kongr45gpen committed
    #include "Message.hpp"
    
    #include "Services/MemoryManagementService.hpp"
    
    kongr45gpen's avatar
    kongr45gpen committed
    
    int main() {
    
    kongr45gpen's avatar
    kongr45gpen committed
    	Message packet = Message(0, 0, Message::TC, 1);
    
    kongr45gpen's avatar
    kongr45gpen committed
    
    
    kongr45gpen's avatar
    kongr45gpen committed
    	packet.appendString(5, "hello");
    	packet.appendBits(15, 0x28a8);
    	packet.appendBits(1, 1);
    
    	packet.appendSint32(-123456789);
    
    kongr45gpen's avatar
    kongr45gpen committed
    
    
    kongr45gpen's avatar
    kongr45gpen committed
    	std::cout << "Hello, World!" << std::endl;
    	std::cout << std::hex << packet.data << std::endl; // packet data must be 'helloQQ'
    
    	char string[6];
    	packet.readString(string, 5);
    
    Grigoris Pavlakis's avatar
    Grigoris Pavlakis committed
    	std::cout << "Word: " << string << " " << packet.readBits(15) << packet.readBits(1)
    	          << std::endl;
    
    	std::cout << packet.readFloat() << " " << std::dec << packet.readSint32() << std::endl;
    
    
    	// ST[17] test
    	TestService testService;
    	Message receivedPacket = Message(17, 1, Message::TC, 1);
    	testService.areYouAlive(receivedPacket);
    
    kongr45gpen's avatar
    kongr45gpen committed
    	receivedPacket = Message(17, 3, Message::TC, 1);
    
    kongr45gpen's avatar
    kongr45gpen committed
    	testService.onBoardConnection(receivedPacket);
    
    	ParameterService paramService;
    
    	Message sentPacket = Message(20, 1, Message::TC, 1);  //application id is a dummy number (1)
    
    	sentPacket.appendUint16(2);  //number of contained IDs
    	sentPacket.appendUint16(0);  //first ID
    	sentPacket.appendUint16(1);  //second ID
    
    	paramService.reportParameterIds(sentPacket);
    
    Grigoris Pavlakis's avatar
    Grigoris Pavlakis committed
    
    
    	Message sentPacket2 = Message(20, 3, Message::TC, 1);  //application id is a dummy number (1)
    	sentPacket2.appendUint16(2);  //number of contained IDs
    	sentPacket2.appendUint16(0);  //first parameter ID
    	sentPacket2.appendUint32(63238);  //settings for first parameter
    	sentPacket2.appendUint16(1);  //2nd parameter ID
    	sentPacket2.appendUint32(45823);  //settings for 2nd parameter
    
    	paramService.setParameterIds(sentPacket2);
    
    	paramService.reportParameterIds(sentPacket);
    
    // ST[06] testing
    
    	char anotherStr[8] = "Fgthred";
    	char yetAnotherStr[2] = "F";
    
    	char *pStr = static_cast<char *>(malloc(4));
    	*pStr = 'T';
    	*(pStr + 1) = 'G';
    	*(pStr + 2) = '\0';
    
    	MemoryManagementService memMangService;
    
    	Message rcvPack = Message(6, 5, Message::TC, 1);
    
    Dimitrios Stoupis's avatar
    Dimitrios Stoupis committed
    	rcvPack.appendEnum8(MemoryManagementService::MemoryID::RAM); // Memory ID
    
    	rcvPack.appendUint16(3); // Iteration count
    
    	rcvPack.appendUint64(reinterpret_cast<uint64_t >(string)); // Start address
    
    	rcvPack.appendUint16(sizeof(string) / sizeof(string[0])); // Data read length
    
    
    	rcvPack.appendUint64(reinterpret_cast<uint64_t >(anotherStr));
    
    	rcvPack.appendUint16(sizeof(anotherStr) / sizeof(anotherStr[0]));
    
    
    	rcvPack.appendUint64(reinterpret_cast<uint64_t >(yetAnotherStr));
    
    	rcvPack.appendUint16(sizeof(yetAnotherStr) / sizeof(yetAnotherStr[0]));
    
    	memMangService.rawDataMemorySubservice.dumpRawData(rcvPack);
    
    	rcvPack = Message(6, 2, Message::TC, 1);
    
    	uint8_t data[2] = {'h', 'R'};
    	rcvPack.appendEnum8(MemoryManagementService::MemoryID::RAM); // Memory ID
    	rcvPack.appendUint16(2); // Iteration count
    	rcvPack.appendUint64(reinterpret_cast<uint64_t >(pStr)); // Start address
    	rcvPack.appendOctetString(2, data);
    	rcvPack.appendUint64(reinterpret_cast<uint64_t >(pStr + 1)); // Start address
    	rcvPack.appendOctetString(1, data);
    	memMangService.rawDataMemorySubservice.loadRawData(rcvPack);
    
    	// ST[01] test
    
    	RequestVerificationService reqVerifService;
    
    	Message receivedMessage = Message(1, 1, Message::TC, 3);
    	receivedMessage.appendEnumerated(3, ECSS_PUS_VERSION); // packet version number
    	receivedMessage.appendEnumerated(1, Message::TC); // packet type
    	receivedMessage.appendBits(1, static_cast<uint8_t >(true)); // secondary header flag
    
    thodkatz's avatar
    thodkatz committed
    	receivedMessage.appendEnumerated(11, 2); // application process ID(dummy value)
    	receivedMessage.appendEnumerated(2, 3); // sequence Flags
    	receivedMessage.appendBits(14, 10); // packet sequence count(dummy value)
    
    	reqVerifService.successAcceptanceVerification(receivedMessage);
    
    	receivedMessage = Message(1, 2, Message::TC, 3);
    	receivedMessage.appendEnumerated(3, ECSS_PUS_VERSION); // packet version number
    	receivedMessage.appendEnumerated(1, Message::TC); // packet type
    	receivedMessage.appendBits(1, static_cast<uint8_t >(true)); // secondary header flag
    
    thodkatz's avatar
    thodkatz committed
    	receivedMessage.appendEnumerated(11, 2); // application process ID(dummy value)
    	receivedMessage.appendEnumerated(2, 3); // sequence Flags
    	receivedMessage.appendBits(14, 10); // packet sequence count(dummy value)
    	receivedMessage.appendEnum16(5); // error code(dummy value)
    
    	reqVerifService.failAcceptanceVerification(receivedMessage);
    
    	receivedMessage = Message(1, 7, Message::TC, 3);
    	receivedMessage.appendEnumerated(3, ECSS_PUS_VERSION); // packet version number
    	receivedMessage.appendEnumerated(1, Message::TC); // packet type
    	receivedMessage.appendBits(1, static_cast<uint8_t >(true)); // secondary header flag
    
    thodkatz's avatar
    thodkatz committed
    	receivedMessage.appendEnumerated(11, 2); // application process ID(dummy value)
    	receivedMessage.appendEnumerated(2, 3); // sequence Flags
    	receivedMessage.appendBits(14, 10); // packet sequence count(dummy value)
    
    	reqVerifService.successExecutionVerification(receivedMessage);
    
    	receivedMessage = Message(1, 8, Message::TC, 3);
    	receivedMessage.appendEnumerated(3, ECSS_PUS_VERSION); // packet version number
    	receivedMessage.appendEnumerated(1, Message::TC); // packet type
    	receivedMessage.appendBits(1, static_cast<uint8_t >(true)); // secondary header flag
    
    thodkatz's avatar
    thodkatz committed
    	receivedMessage.appendEnumerated(11, 2); // application process ID(dummy value)
    	receivedMessage.appendEnumerated(2, 3); // sequence Flags
    	receivedMessage.appendBits(14, 10); // packet sequence count(dummy value)
    	receivedMessage.appendEnum16(6); // error code(dummy value)
    
    	reqVerifService.failExecutionVerification(receivedMessage);
    
    	receivedMessage = Message(1, 10, Message::TC, 3);
    	receivedMessage.appendEnumerated(3, ECSS_PUS_VERSION); // packet version number
    	receivedMessage.appendEnumerated(1, Message::TC); // packet type
    	receivedMessage.appendBits(1, static_cast<uint8_t >(true)); // secondary header flag
    
    thodkatz's avatar
    thodkatz committed
    	receivedMessage.appendEnumerated(11, 2); // application process ID(dummy value)
    	receivedMessage.appendEnumerated(2, 3); // sequence Flags
    	receivedMessage.appendBits(14, 10); // packet sequence count(dummy value)
    	receivedMessage.appendEnum16(7); // error code(dummy value)
    
    	reqVerifService.failRoutingVerification(receivedMessage);
    
    kongr45gpen's avatar
    kongr45gpen committed
    	return 0;
    
    Grigoris Pavlakis's avatar
    Grigoris Pavlakis committed
    }