From 07582458f656ddd0364da4d0c72e4dc1345e0664 Mon Sep 17 00:00:00 2001 From: Addi Amaya Date: Sat, 12 Mar 2022 16:57:41 -0600 Subject: [PATCH 01/18] compiled message.proto to generate .py file --- .../message.proto | 26 +++++++++ .../message_pb2.py | 58 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 radsat-sk/testing/protobuf_with_python_example/message.proto create mode 100644 radsat-sk/testing/protobuf_with_python_example/message_pb2.py diff --git a/radsat-sk/testing/protobuf_with_python_example/message.proto b/radsat-sk/testing/protobuf_with_python_example/message.proto new file mode 100644 index 0000000..e784d10 --- /dev/null +++ b/radsat-sk/testing/protobuf_with_python_example/message.proto @@ -0,0 +1,26 @@ +syntax = "proto2"; + +package tutorial; + +message Person { + optional string name = 1; + optional int32 id = 2; + optional string email = 3; + + enum PhoneType { + MOBILE = 0; + HOME = 1; + WORK = 2; + } + + message PhoneNumber { + optional string number = 1; + optional PhoneType type = 2 [default = HOME]; + } + + repeated PhoneNumber phones = 4; +} + +message AddressBook { + repeated Person people = 1; +} \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_with_python_example/message_pb2.py b/radsat-sk/testing/protobuf_with_python_example/message_pb2.py new file mode 100644 index 0000000..f164500 --- /dev/null +++ b/radsat-sk/testing/protobuf_with_python_example/message_pb2.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: message.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\x12\x08tutorial\"\xdb\x01\n\x06Person\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12,\n\x06phones\x18\x04 \x03(\x0b\x32\x1c.tutorial.Person.PhoneNumber\x1aM\n\x0bPhoneNumber\x12\x0e\n\x06number\x18\x01 \x01(\t\x12.\n\x04type\x18\x02 \x01(\x0e\x32\x1a.tutorial.Person.PhoneType:\x04HOME\"+\n\tPhoneType\x12\n\n\x06MOBILE\x10\x00\x12\x08\n\x04HOME\x10\x01\x12\x08\n\x04WORK\x10\x02\"/\n\x0b\x41\x64\x64ressBook\x12 \n\x06people\x18\x01 \x03(\x0b\x32\x10.tutorial.Person') + + + +_PERSON = DESCRIPTOR.message_types_by_name['Person'] +_PERSON_PHONENUMBER = _PERSON.nested_types_by_name['PhoneNumber'] +_ADDRESSBOOK = DESCRIPTOR.message_types_by_name['AddressBook'] +_PERSON_PHONETYPE = _PERSON.enum_types_by_name['PhoneType'] +Person = _reflection.GeneratedProtocolMessageType('Person', (_message.Message,), { + + 'PhoneNumber' : _reflection.GeneratedProtocolMessageType('PhoneNumber', (_message.Message,), { + 'DESCRIPTOR' : _PERSON_PHONENUMBER, + '__module__' : 'message_pb2' + # @@protoc_insertion_point(class_scope:tutorial.Person.PhoneNumber) + }) + , + 'DESCRIPTOR' : _PERSON, + '__module__' : 'message_pb2' + # @@protoc_insertion_point(class_scope:tutorial.Person) + }) +_sym_db.RegisterMessage(Person) +_sym_db.RegisterMessage(Person.PhoneNumber) + +AddressBook = _reflection.GeneratedProtocolMessageType('AddressBook', (_message.Message,), { + 'DESCRIPTOR' : _ADDRESSBOOK, + '__module__' : 'message_pb2' + # @@protoc_insertion_point(class_scope:tutorial.AddressBook) + }) +_sym_db.RegisterMessage(AddressBook) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _PERSON._serialized_start=28 + _PERSON._serialized_end=247 + _PERSON_PHONENUMBER._serialized_start=125 + _PERSON_PHONENUMBER._serialized_end=202 + _PERSON_PHONETYPE._serialized_start=204 + _PERSON_PHONETYPE._serialized_end=247 + _ADDRESSBOOK._serialized_start=249 + _ADDRESSBOOK._serialized_end=296 +# @@protoc_insertion_point(module_scope) From db6a1fc55c482312aebf3f3ecc675b8781d433a2 Mon Sep 17 00:00:00 2001 From: Addi Amaya Date: Sat, 12 Mar 2022 17:38:44 -0600 Subject: [PATCH 02/18] working basic python to python example --- .../{message.proto => addressbook.proto} | 0 .../{message_pb2.py => addressbook_pb2.py} | 26 ++++----- .../protobuf_with_python_example/read.py | 34 ++++++++++++ .../protobuf_with_python_example/text.txt | 5 ++ .../protobuf_with_python_example/write.py | 55 +++++++++++++++++++ 5 files changed, 107 insertions(+), 13 deletions(-) rename radsat-sk/testing/protobuf_with_python_example/{message.proto => addressbook.proto} (100%) rename radsat-sk/testing/protobuf_with_python_example/{message_pb2.py => addressbook_pb2.py} (59%) create mode 100644 radsat-sk/testing/protobuf_with_python_example/read.py create mode 100644 radsat-sk/testing/protobuf_with_python_example/text.txt create mode 100644 radsat-sk/testing/protobuf_with_python_example/write.py diff --git a/radsat-sk/testing/protobuf_with_python_example/message.proto b/radsat-sk/testing/protobuf_with_python_example/addressbook.proto similarity index 100% rename from radsat-sk/testing/protobuf_with_python_example/message.proto rename to radsat-sk/testing/protobuf_with_python_example/addressbook.proto diff --git a/radsat-sk/testing/protobuf_with_python_example/message_pb2.py b/radsat-sk/testing/protobuf_with_python_example/addressbook_pb2.py similarity index 59% rename from radsat-sk/testing/protobuf_with_python_example/message_pb2.py rename to radsat-sk/testing/protobuf_with_python_example/addressbook_pb2.py index f164500..85a4227 100644 --- a/radsat-sk/testing/protobuf_with_python_example/message_pb2.py +++ b/radsat-sk/testing/protobuf_with_python_example/addressbook_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: message.proto +# source: addressbook.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\x12\x08tutorial\"\xdb\x01\n\x06Person\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12,\n\x06phones\x18\x04 \x03(\x0b\x32\x1c.tutorial.Person.PhoneNumber\x1aM\n\x0bPhoneNumber\x12\x0e\n\x06number\x18\x01 \x01(\t\x12.\n\x04type\x18\x02 \x01(\x0e\x32\x1a.tutorial.Person.PhoneType:\x04HOME\"+\n\tPhoneType\x12\n\n\x06MOBILE\x10\x00\x12\x08\n\x04HOME\x10\x01\x12\x08\n\x04WORK\x10\x02\"/\n\x0b\x41\x64\x64ressBook\x12 \n\x06people\x18\x01 \x03(\x0b\x32\x10.tutorial.Person') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61\x64\x64ressbook.proto\x12\x08tutorial\"\xdb\x01\n\x06Person\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12,\n\x06phones\x18\x04 \x03(\x0b\x32\x1c.tutorial.Person.PhoneNumber\x1aM\n\x0bPhoneNumber\x12\x0e\n\x06number\x18\x01 \x01(\t\x12.\n\x04type\x18\x02 \x01(\x0e\x32\x1a.tutorial.Person.PhoneType:\x04HOME\"+\n\tPhoneType\x12\n\n\x06MOBILE\x10\x00\x12\x08\n\x04HOME\x10\x01\x12\x08\n\x04WORK\x10\x02\"/\n\x0b\x41\x64\x64ressBook\x12 \n\x06people\x18\x01 \x03(\x0b\x32\x10.tutorial.Person') @@ -26,12 +26,12 @@ 'PhoneNumber' : _reflection.GeneratedProtocolMessageType('PhoneNumber', (_message.Message,), { 'DESCRIPTOR' : _PERSON_PHONENUMBER, - '__module__' : 'message_pb2' + '__module__' : 'addressbook_pb2' # @@protoc_insertion_point(class_scope:tutorial.Person.PhoneNumber) }) , 'DESCRIPTOR' : _PERSON, - '__module__' : 'message_pb2' + '__module__' : 'addressbook_pb2' # @@protoc_insertion_point(class_scope:tutorial.Person) }) _sym_db.RegisterMessage(Person) @@ -39,7 +39,7 @@ AddressBook = _reflection.GeneratedProtocolMessageType('AddressBook', (_message.Message,), { 'DESCRIPTOR' : _ADDRESSBOOK, - '__module__' : 'message_pb2' + '__module__' : 'addressbook_pb2' # @@protoc_insertion_point(class_scope:tutorial.AddressBook) }) _sym_db.RegisterMessage(AddressBook) @@ -47,12 +47,12 @@ if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - _PERSON._serialized_start=28 - _PERSON._serialized_end=247 - _PERSON_PHONENUMBER._serialized_start=125 - _PERSON_PHONENUMBER._serialized_end=202 - _PERSON_PHONETYPE._serialized_start=204 - _PERSON_PHONETYPE._serialized_end=247 - _ADDRESSBOOK._serialized_start=249 - _ADDRESSBOOK._serialized_end=296 + _PERSON._serialized_start=32 + _PERSON._serialized_end=251 + _PERSON_PHONENUMBER._serialized_start=129 + _PERSON_PHONENUMBER._serialized_end=206 + _PERSON_PHONETYPE._serialized_start=208 + _PERSON_PHONETYPE._serialized_end=251 + _ADDRESSBOOK._serialized_start=253 + _ADDRESSBOOK._serialized_end=300 # @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_with_python_example/read.py b/radsat-sk/testing/protobuf_with_python_example/read.py new file mode 100644 index 0000000..e442517 --- /dev/null +++ b/radsat-sk/testing/protobuf_with_python_example/read.py @@ -0,0 +1,34 @@ +import addressbook_pb2 +import sys + +# Iterates though all people in the AddressBook and prints info about them. +def ListPeople(address_book): + for person in address_book.people: + print ("Person ID:", person.id) + print(" Name:", person.name) + if person.HasField('email'): + print (" E-mail address:", person.email) + + for phone_number in person.phones: + if phone_number.type == addressbook_pb2.Person.PhoneType.MOBILE: + print(" Mobile phone #: ",) + elif phone_number.type == addressbook_pb2.Person.PhoneType.HOME: + print (" Home phone #: ",) + elif phone_number.type == addressbook_pb2.Person.PhoneType.WORK: + print(" Work phone #: ",) + print(phone_number.number) + +# Main procedure: Reads the entire address book from a file and prints all +# the information inside. +if len(sys.argv) != 2: + print("Usage:", sys.argv[0], "ADDRESS_BOOK_FILE") + sys.exit(-1) + +address_book = addressbook_pb2.AddressBook() + +# Read the existing address book. +f = open(sys.argv[1], "rb") +address_book.ParseFromString(f.read()) +f.close() + +ListPeople(address_book) \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_with_python_example/text.txt b/radsat-sk/testing/protobuf_with_python_example/text.txt new file mode 100644 index 0000000..8a2f128 --- /dev/null +++ b/radsat-sk/testing/protobuf_with_python_example/text.txt @@ -0,0 +1,5 @@ + +- +Addi{generalmember@usst.ca" + +6039665273 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_with_python_example/write.py b/radsat-sk/testing/protobuf_with_python_example/write.py new file mode 100644 index 0000000..94e613f --- /dev/null +++ b/radsat-sk/testing/protobuf_with_python_example/write.py @@ -0,0 +1,55 @@ + +import addressbook_pb2 +import sys + +# This function fills in a Person message based on user input. +def PromptForAddress(person): + person.id = int(input("Enter person ID number: ")) + person.name = input("Enter name: ") + + email = input("Enter email address (blank for none): ") + if email != "": + person.email = email + + while True: + number = input("Enter a phone number (or leave blank to finish): ") + if number == "": + break + + phone_number = person.phones.add() + phone_number.number = number + + type = input("Is this a mobile, home, or work phone? ") + if type == "mobile": + phone_number.type = addressbook_pb2.Person.PhoneType.MOBILE + elif type == "home": + phone_number.type = addressbook_pb2.Person.PhoneType.HOME + elif type == "work": + phone_number.type = addressbook_pb2.Person.PhoneType.WORK + else: + print("Unknown phone type; leaving as default value.") + +# Main procedure: Reads the entire address book from a file, +# adds one person based on user input, then writes it back out to the same +# file. +if len(sys.argv) != 2: + print("Usage:", sys.argv[0], "ADDRESS_BOOK_FILE") + sys.exit(-1) + +address_book = addressbook_pb2.AddressBook() + +# Read the existing address book. +try: + f = open(sys.argv[1], "rb") + address_book.ParseFromString(f.read()) + f.close() +except IOError: + print(sys.argv[1] + ": Could not open file. Creating a new one.") + +# Add an address. +PromptForAddress(address_book.people.add()) + +# Write the new address book back to disk. +f = open(sys.argv[1], "wb") +f.write(address_book.SerializeToString()) +f.close() \ No newline at end of file From de966161db8d0c0480286c1157f7994ef69339f1 Mon Sep 17 00:00:00 2001 From: Brian <78610140+baxm1@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:02:13 -0600 Subject: [PATCH 03/18] Python spitballing --- radsat-sk/gs.py | 97 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 radsat-sk/gs.py diff --git a/radsat-sk/gs.py b/radsat-sk/gs.py new file mode 100644 index 0000000..4392f4b --- /dev/null +++ b/radsat-sk/gs.py @@ -0,0 +1,97 @@ +import struct + +class GenericMessage(object): + preamble = bytes(69) # preamble is hard-coded and doesn't change. + def __init__(self, + data, # contains the raw data to be unpacked + timestamp=None, # time (in seconds) since Unix Epoch that the message was created + size=None, # size of the message in bytes (NOT including header) + type=None, # type of message + frameNum=0, # frame number of message + imageID=0, # image ID if applicable + body=None # the body of the message. Doesn't include the header (preamble, CRC, size, timestamp) + ): + + # if the data given can make up a message, strip off the header + if isinstance(data, bytes): + # see page 58 of the software design document + _, self.crc, self.size, self.timestamp, *self.body = struct.unpack('HHBI' + 'I' * len(data) - 9, data) + + # at this point, the data contained in self.body is still encoded by protobuf. Need to decode. + a, b, c, d, e = protobuf_decode(self.body) + + # otherwise, create a message with the given attributes + else: + self.timestamp = timestamp + self.size = size + self.type = type + self.frameNum = frameNum + self.imageID = imageID + self.body = body + self.data = None # no raw message given + + # pack the data back into a string of bytes + def __generateRaw(self): + return struct.pack('HHBI' + 'I' * len(data) - 9, GenericMessage.preamble, self.crc, self.size, self.timestamp) + + # convert the data into a csv format with appropriate values included + def convertToCsv(self): + return f'{self.timestamp},{self.size},{self.type},{self.frameNum},{self.body}' + + """----------------------------- + Public + -----------------------------""" + + def generateLog(self): + return self.convertToCsv() + + """----------------------------- + Dunders + -----------------------------""" + + def __bytes__(self): + if not data: + self.data = self.generateRaw() + return self.data + + def __str__(self): + return str(self.data) + + def __repr__(self): + return self.__str__() + + + +class TelemetryMessage(GenericMessage): + + def __generateRaw(self): + return struct.pack('some_string_here', GenericMessage.preamble, self.crc, self.size, self.timestamp) + + + # this function is where the bulk of the work will be. We need to determine what data is contained in + # the message and what data we want to save to a log. + def generateLog(self): + stringOut = self.convertToCsv() + file.writeLine(stringOut) + file.flush() + return self.convertToCsv() + + +def rawToMsg(rawData): + if rawData[64] == bytes(1): + return GenericMessage(rawData) + elif rawData[64] == bytes(1): + return TelemetryMessage(rawData) + + + + +raw = getSatMessage() +msg = rawToMsg(raw) + +logger = Logger() + +if isinstance(msg, GenericMessage): + logger.generic(msg) +elif isinstance(msg, TelemetryMessage): + logger.telemetry(msg) \ No newline at end of file From ecf29fdc0181fb698a0588d9292dae9e6e6cecaf Mon Sep 17 00:00:00 2001 From: Brian <78610140+baxm1@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:02:50 -0600 Subject: [PATCH 04/18] Rename gs.py to spitballing.py --- radsat-sk/{gs.py => spitballing.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename radsat-sk/{gs.py => spitballing.py} (96%) diff --git a/radsat-sk/gs.py b/radsat-sk/spitballing.py similarity index 96% rename from radsat-sk/gs.py rename to radsat-sk/spitballing.py index 4392f4b..f6999d7 100644 --- a/radsat-sk/gs.py +++ b/radsat-sk/spitballing.py @@ -94,4 +94,4 @@ def rawToMsg(rawData): if isinstance(msg, GenericMessage): logger.generic(msg) elif isinstance(msg, TelemetryMessage): - logger.telemetry(msg) \ No newline at end of file + logger.telemetry(msg) From 5ab9d2010241531fbab8636b02cb1b7791366cf3 Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Wed, 20 Jul 2022 20:32:11 -0600 Subject: [PATCH 05/18] adds basic proto msg maker with msg files --- .../protobuf_messages/RFileTransfer.proto | 143 ++++++++++++ .../protobuf_messages/RFileTransfer_pb2.py | 57 +++++ .../protobuf_messages/RTelecommands.proto | 51 +++++ .../protobuf_messages/RTelecommands_pb2.py | 39 ++++ .../testing/protobuf_messages/crc_test.py | 18 ++ .../file_transfer_message_reader_rev1.py | 210 ++++++++++++++++++ .../telecommandMessage_BeginFileTransfer | 1 + ...lecommandMessage_BeginFileTransfer_header2 | 1 + ...lecommandMessage_BeginFileTransfer_out.txt | 3 + .../output/telecommandMessage_BeginPass | 2 + .../telecommandMessage_BeginPass_header2 | 4 + .../telecommandMessage_BeginPass_out.txt | 3 + .../telecommandMessage_CeaseTransmission | 1 + ...lecommandMessage_CeaseTransmission_header2 | 1 + ...lecommandMessage_CeaseTransmission_out.txt | 3 + .../output/telecommandMessage_Reset | 1 + .../output/telecommandMessage_Reset_header2 | 1 + .../output/telecommandMessage_Reset_out.txt | 3 + .../telecommandMessage_ResumeTransmission | 1 + ...ecommandMessage_ResumeTransmission_header2 | 1 + ...ecommandMessage_ResumeTransmission_out.txt | 3 + .../output/telecommandMessage_UpdateTime | 1 + .../telecommandMessage_UpdateTime_header2 | 1 + .../telecommandMessage_UpdateTime_out.txt | 3 + 24 files changed, 552 insertions(+) create mode 100644 radsat-sk/testing/protobuf_messages/RFileTransfer.proto create mode 100644 radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py create mode 100644 radsat-sk/testing/protobuf_messages/RTelecommands.proto create mode 100644 radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py create mode 100644 radsat-sk/testing/protobuf_messages/crc_test.py create mode 100644 radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2 create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_out.txt create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2 create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_out.txt create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2 create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_out.txt create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2 create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_out.txt create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2 create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_out.txt create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2 create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_out.txt diff --git a/radsat-sk/testing/protobuf_messages/RFileTransfer.proto b/radsat-sk/testing/protobuf_messages/RFileTransfer.proto new file mode 100644 index 0000000..16c5f8d --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RFileTransfer.proto @@ -0,0 +1,143 @@ +syntax = "proto3"; + +// top level File Transfer message object +message file_transfer_message { + oneof message { + obc_telemetry ObcTelemetry = 1; + transceiver_telemetry TransceiverTelemetry = 2; + camera_telemetry CameraTelemetry = 3; + eps_telemetry EpsTelemetry = 4; + battery_telemetry BatteryTelemetry = 5; + antenna_telemetry AntennaTelemetry = 6; + dosimeter_data DosimeterData = 7; + image_packet ImagePacket = 8; + module_error_report ModuleErrorReport = 9; + component_error_report ComponentErrorReport = 10; + error_report_summary ErrorReportSummary = 11; + } +} + +// Information about the state of the OBC +message obc_telemetry { + uint32 mode = 1; ///< Mode of operation at time of recording + uint32 uptime = 2; ///< Uptime (in ticks) since last reset (of any kind) + uint32 rtcTime = 3; ///< RTC Time (in unix time; seconds since Unix Epoch) + uint32 rtcTemperature = 4; ///< 10bit Temperature recorded by OBC's RTC +} + + +// Telemetry for the Receiver +// Used internally; not sent as standalone message +message receiver_telemetry { + float rxDoppler = 1; ///< Rx Telemetry receiver doppler. + float rxRssi = 2; ///< Rx Telemetry rssi measurement. + float busVoltage = 3; ///< Rx Telemetry bus voltage. + float totalCurrent = 4; ///< Tx Telemetry total current. + float txCurrent = 5; ///< Tx Telemetry transmitter current. + float rxCurrent = 6; ///< Tx Telemetry receiver current. + float powerAmplifierCurrent = 7; ///< Tx Telemetry power amplifier current. + float powerAmplifierTemperature = 8; ///< Rx Telemetry power amplifier temperature + float boardTemperature = 9; ///< Rx Telemetry board temperature. + uint32 uptime = 10; ///< Rx Uptime in Seconds. + uint32 frames = 11; ///< Rx Frames currently in Receive Buffer. +} + +// Telemetry for the Transmitter +// Used internally; not sent as standalone message +message transmitter_telemetry { + float reflectedPower = 1; ///< Tx Telemetry reflected power. + float forwardPower = 2; ///< Tx Telemetry forward power. + float busVoltage = 3; ///< Tx Telemetry bus voltage. + float totalCurrent = 4; ///< Tx Telemetry total current. + float txCurrent = 5; ///< Tx Telemetry transmitter current. + float rxCurrent = 6; ///< Tx Telemetry receiver current. + float powerAmplifierCurrent = 7; ///< Tx Telemetry power amplifier current. + float powerAmplifierTemperature = 8; ///< Tx Telemetry power amplifier temperature. + float boardTemperature = 9; ///< Tx Telemetry board temperature. + uint32 uptime = 10; ///< Tx Uptime in Seconds. +} + +// Information about the state of the Transceiver +message transceiver_telemetry { + receiver_telemetry receiver = 1; ///< Receiver Telemetry + transmitter_telemetry transmitter = 2; ///< Transmitter Telemetry +} + +// Information about the state of the Camera +message camera_telemetry { + uint32 uptime = 1; ///< Local uptime (since last startup) in seconds +} + +// Information about the state of the Electrical Power Supply +message eps_telemetry { + +} + +// Information about the state of the Battery +message battery_telemetry { + +} + +// Information about the state of the Antenna +message antenna_telemetry { + +} + +// Payload Data for a single Dosimeter board +// Used internally; not sent as standalone message +message dosimeter_board_data { + float channelZero = 1; ///< COTS 2048mV REF IC, Shielding: none + float channelOne = 2; ///< COTS 2048mV REF IC, Shielding: 50 mil + float channelTwo = 3; ///< COTS 2048mV REF IC, Shielding: 100 mil + float channelThree = 4; ///< COTS 2048mV REF IC, Shielding: 200 mil + float channelFour = 5; ///< COTS 2048mV REF IC, Shielding: 20 mil + float channelFive = 6; ///< RADFET Experimental Dosimeter, Shielding: none + float channelSix = 7; ///< COTS 2048mV REF IC, Shielding: 300 mil + float channelSeven = 8; ///< Temperature Sensor +} + +// Dosimeter Payload Data (both boards) +message dosimeter_data { + dosimeter_board_data boardOne = 1; ///< Payload Data from the first Dosimeter Board ("bottom" of the Satellite, beneath OBC) + dosimeter_board_data boardTwo = 2; ///< Payload Data from the second Dosimeter Board ("top" of the Satellite, beneath Antenna) +} + +// Enum for image types (i.e. sizes) +enum image_type_t { + FullResolution = 0; ///< 1024 x 1024 = 1MB + HalfResolution = 1; ///< 512 x 512 = 256kB + QuarterResolution = 2; ///< 256 x 256 = 64kB + Thumbnail = 3; ///< 64 x 64 = 4kB +} + +// Image Packet +message image_packet { + uint32 id = 1; ///< ID of the image + image_type_t type = 2; ///< Size of the image + bytes data = 3; ///< The raw image data +} + +// Error Report (single module) +message module_error_report { + uint32 module = 1; ///< The unique ID of the module + int32 error = 2; ///< The ID of the error that occurred +} + +// Error Report (single module) +message component_error_report { + uint32 component = 1; ///< The unique ID of the component + int32 error = 2; ///< The ID of the error that occurred +} + +// record of the current error status for a particular module or component +// Used internally; not sent as standalone message +message error_record { + uint32 timeRecorded = 1; ///< Tick time that the last error was recorded + uint32 count = 2; ///< Current count of tracked errors +} + +// Error Report (summary) +message error_report_summary { + repeated uint32 moduleErrorCount = 1; ///< Error counts for all modules + repeated uint32 componentErrorCount = 2; ///< Error counts for all components +} \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py b/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py new file mode 100644 index 0000000..866ce74 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: RFileTransfer.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RFileTransfer.proto\"\xa9\x04\n\x15\x66ile_transfer_message\x12&\n\x0cObcTelemetry\x18\x01 \x01(\x0b\x32\x0e.obc_telemetryH\x00\x12\x36\n\x14TransceiverTelemetry\x18\x02 \x01(\x0b\x32\x16.transceiver_telemetryH\x00\x12,\n\x0f\x43\x61meraTelemetry\x18\x03 \x01(\x0b\x32\x11.camera_telemetryH\x00\x12&\n\x0c\x45psTelemetry\x18\x04 \x01(\x0b\x32\x0e.eps_telemetryH\x00\x12.\n\x10\x42\x61tteryTelemetry\x18\x05 \x01(\x0b\x32\x12.battery_telemetryH\x00\x12.\n\x10\x41ntennaTelemetry\x18\x06 \x01(\x0b\x32\x12.antenna_telemetryH\x00\x12(\n\rDosimeterData\x18\x07 \x01(\x0b\x32\x0f.dosimeter_dataH\x00\x12$\n\x0bImagePacket\x18\x08 \x01(\x0b\x32\r.image_packetH\x00\x12\x31\n\x11ModuleErrorReport\x18\t \x01(\x0b\x32\x14.module_error_reportH\x00\x12\x37\n\x14\x43omponentErrorReport\x18\n \x01(\x0b\x32\x17.component_error_reportH\x00\x12\x33\n\x12\x45rrorReportSummary\x18\x0b \x01(\x0b\x32\x15.error_report_summaryH\x00\x42\t\n\x07message\"V\n\robc_telemetry\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x0e\n\x06uptime\x18\x02 \x01(\r\x12\x0f\n\x07rtcTime\x18\x03 \x01(\r\x12\x16\n\x0ertcTemperature\x18\x04 \x01(\r\"\x83\x02\n\x12receiver_telemetry\x12\x11\n\trxDoppler\x18\x01 \x01(\x02\x12\x0e\n\x06rxRssi\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\x12\x0e\n\x06\x66rames\x18\x0b \x01(\r\"\x81\x02\n\x15transmitter_telemetry\x12\x16\n\x0ereflectedPower\x18\x01 \x01(\x02\x12\x14\n\x0c\x66orwardPower\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\"k\n\x15transceiver_telemetry\x12%\n\x08receiver\x18\x01 \x01(\x0b\x32\x13.receiver_telemetry\x12+\n\x0btransmitter\x18\x02 \x01(\x0b\x32\x16.transmitter_telemetry\"\"\n\x10\x63\x61mera_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"\x0f\n\reps_telemetry\"\x13\n\x11\x62\x61ttery_telemetry\"\x13\n\x11\x61ntenna_telemetry\"\xbd\x01\n\x14\x64osimeter_board_data\x12\x13\n\x0b\x63hannelZero\x18\x01 \x01(\x02\x12\x12\n\nchannelOne\x18\x02 \x01(\x02\x12\x12\n\nchannelTwo\x18\x03 \x01(\x02\x12\x14\n\x0c\x63hannelThree\x18\x04 \x01(\x02\x12\x13\n\x0b\x63hannelFour\x18\x05 \x01(\x02\x12\x13\n\x0b\x63hannelFive\x18\x06 \x01(\x02\x12\x12\n\nchannelSix\x18\x07 \x01(\x02\x12\x14\n\x0c\x63hannelSeven\x18\x08 \x01(\x02\"b\n\x0e\x64osimeter_data\x12\'\n\x08\x62oardOne\x18\x01 \x01(\x0b\x32\x15.dosimeter_board_data\x12\'\n\x08\x62oardTwo\x18\x02 \x01(\x0b\x32\x15.dosimeter_board_data\"E\n\x0cimage_packet\x12\n\n\x02id\x18\x01 \x01(\r\x12\x1b\n\x04type\x18\x02 \x01(\x0e\x32\r.image_type_t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"4\n\x13module_error_report\x12\x0e\n\x06module\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\":\n\x16\x63omponent_error_report\x12\x11\n\tcomponent\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\"3\n\x0c\x65rror_record\x12\x14\n\x0ctimeRecorded\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"M\n\x14\x65rror_report_summary\x12\x18\n\x10moduleErrorCount\x18\x01 \x03(\r\x12\x1b\n\x13\x63omponentErrorCount\x18\x02 \x03(\r*\\\n\x0cimage_type_t\x12\x12\n\x0e\x46ullResolution\x10\x00\x12\x12\n\x0eHalfResolution\x10\x01\x12\x15\n\x11QuarterResolution\x10\x02\x12\r\n\tThumbnail\x10\x03\x62\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RFileTransfer_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _IMAGE_TYPE_T._serialized_start=2002 + _IMAGE_TYPE_T._serialized_end=2094 + _FILE_TRANSFER_MESSAGE._serialized_start=24 + _FILE_TRANSFER_MESSAGE._serialized_end=577 + _OBC_TELEMETRY._serialized_start=579 + _OBC_TELEMETRY._serialized_end=665 + _RECEIVER_TELEMETRY._serialized_start=668 + _RECEIVER_TELEMETRY._serialized_end=927 + _TRANSMITTER_TELEMETRY._serialized_start=930 + _TRANSMITTER_TELEMETRY._serialized_end=1187 + _TRANSCEIVER_TELEMETRY._serialized_start=1189 + _TRANSCEIVER_TELEMETRY._serialized_end=1296 + _CAMERA_TELEMETRY._serialized_start=1298 + _CAMERA_TELEMETRY._serialized_end=1332 + _EPS_TELEMETRY._serialized_start=1334 + _EPS_TELEMETRY._serialized_end=1349 + _BATTERY_TELEMETRY._serialized_start=1351 + _BATTERY_TELEMETRY._serialized_end=1370 + _ANTENNA_TELEMETRY._serialized_start=1372 + _ANTENNA_TELEMETRY._serialized_end=1391 + _DOSIMETER_BOARD_DATA._serialized_start=1394 + _DOSIMETER_BOARD_DATA._serialized_end=1583 + _DOSIMETER_DATA._serialized_start=1585 + _DOSIMETER_DATA._serialized_end=1683 + _IMAGE_PACKET._serialized_start=1685 + _IMAGE_PACKET._serialized_end=1754 + _MODULE_ERROR_REPORT._serialized_start=1756 + _MODULE_ERROR_REPORT._serialized_end=1808 + _COMPONENT_ERROR_REPORT._serialized_start=1810 + _COMPONENT_ERROR_REPORT._serialized_end=1868 + _ERROR_RECORD._serialized_start=1870 + _ERROR_RECORD._serialized_end=1921 + _ERROR_REPORT_SUMMARY._serialized_start=1923 + _ERROR_REPORT_SUMMARY._serialized_end=2000 +# @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/RTelecommands.proto b/radsat-sk/testing/protobuf_messages/RTelecommands.proto new file mode 100644 index 0000000..2dbcacc --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RTelecommands.proto @@ -0,0 +1,51 @@ +syntax = "proto3"; + +// top level File Transfer message object +message telecommand_message { + oneof message { + begin_pass BeginPass = 1; + begin_file_transfer BeginFileTransfer = 2; + cease_transmission CeaseTransmission = 3; + resume_transmission ResumeTransmission = 4; + update_time UpdateTime = 5; + reset Reset = 6; + } +} + +// Inform OBC that it is within the Pass range; Subsequent Telecommands will follow +message begin_pass { + uint32 passLength = 1; +} + +// Inform OBC that there are no more telecommands; Ground Station is ready to receive Files (telemetry, images, etc.) +message begin_file_transfer { + bool begin = 1; +} + +// Inform the OBC that it is to cease all downlink transmissions immediately (no ACK will follow this message) +message cease_transmission { + uint32 duration = 1; +} + +// Inform the OBC that it can end its previous halting of all downlink transmissions +message resume_transmission { + bool resume = 1; +} + +// Update the OBC's local time on its Real-Time Clock +message update_time { + uint32 unixTime = 1; +} + +// Instruct the OBC to reset a certain component via Software reset (hard=0) or Power-Cycle (hard=1) +message reset { + enum device_t { + Obc = 0; + Transmitter = 1; + Receiver = 2; + AntennaSideA = 3; + AntennaSideB = 4; + } + device_t device = 1; + uint32 hard = 2; +} \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py b/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py new file mode 100644 index 0000000..f4c4c3f --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: RTelecommands.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RTelecommands.proto\"\x98\x02\n\x13telecommand_message\x12 \n\tBeginPass\x18\x01 \x01(\x0b\x32\x0b.begin_passH\x00\x12\x31\n\x11\x42\x65ginFileTransfer\x18\x02 \x01(\x0b\x32\x14.begin_file_transferH\x00\x12\x30\n\x11\x43\x65\x61seTransmission\x18\x03 \x01(\x0b\x32\x13.cease_transmissionH\x00\x12\x32\n\x12ResumeTransmission\x18\x04 \x01(\x0b\x32\x14.resume_transmissionH\x00\x12\"\n\nUpdateTime\x18\x05 \x01(\x0b\x32\x0c.update_timeH\x00\x12\x17\n\x05Reset\x18\x06 \x01(\x0b\x32\x06.resetH\x00\x42\t\n\x07message\" \n\nbegin_pass\x12\x12\n\npassLength\x18\x01 \x01(\r\"$\n\x13\x62\x65gin_file_transfer\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"&\n\x12\x63\x65\x61se_transmission\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"%\n\x13resume_transmission\x12\x0e\n\x06resume\x18\x01 \x01(\x08\"\x1f\n\x0bupdate_time\x12\x10\n\x08unixTime\x18\x01 \x01(\r\"\x8e\x01\n\x05reset\x12\x1f\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x0f.reset.device_t\x12\x0c\n\x04hard\x18\x02 \x01(\r\"V\n\x08\x64\x65vice_t\x12\x07\n\x03Obc\x10\x00\x12\x0f\n\x0bTransmitter\x10\x01\x12\x0c\n\x08Receiver\x10\x02\x12\x10\n\x0c\x41ntennaSideA\x10\x03\x12\x10\n\x0c\x41ntennaSideB\x10\x04\x62\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RTelecommands_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _TELECOMMAND_MESSAGE._serialized_start=24 + _TELECOMMAND_MESSAGE._serialized_end=304 + _BEGIN_PASS._serialized_start=306 + _BEGIN_PASS._serialized_end=338 + _BEGIN_FILE_TRANSFER._serialized_start=340 + _BEGIN_FILE_TRANSFER._serialized_end=376 + _CEASE_TRANSMISSION._serialized_start=378 + _CEASE_TRANSMISSION._serialized_end=416 + _RESUME_TRANSMISSION._serialized_start=418 + _RESUME_TRANSMISSION._serialized_end=455 + _UPDATE_TIME._serialized_start=457 + _UPDATE_TIME._serialized_end=488 + _RESET._serialized_start=491 + _RESET._serialized_end=633 + _RESET_DEVICE_T._serialized_start=547 + _RESET_DEVICE_T._serialized_end=633 +# @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/crc_test.py b/radsat-sk/testing/protobuf_messages/crc_test.py new file mode 100644 index 0000000..72d1176 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/crc_test.py @@ -0,0 +1,18 @@ +from crc import CrcCalculator, Configuration + +data = bytes([0x00,0x01,0x02,0x03,0x04,0x05]) +expected_checksum = 0xBB3D +width = 16 +poly=0x8005 +init_value=0x0000 +final_xor_value=0x0000 +reverse_input=True +reverse_output=True + +configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output) +use_table = True + +crc_calculator = CrcCalculator(configuration, use_table) + +checksum = crc_calculator.calculate_checksum(data) +print(hex(checksum)) \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py new file mode 100644 index 0000000..d2090a1 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py @@ -0,0 +1,210 @@ +from time import * +from crc import CrcCalculator, Configuration +from numpy import * +import RFileTransfer_pb2 as fileTransfer +import RTelecommands_pb2 as telecommands + +def writeToFile(protoMessage, fileName = "serializedFile"): + fw = open("./output/" + fileName,"wb") + fw.write(protoMessage.SerializeToString()) + fw.close() + +def readFileTransferMessage(fileName = "serializedFile"): + # Read data from file + fb = open("./output/" + fileName,"rb") + output = fileTransfer.file_transfer_message() + output.ParseFromString(fb.read()) + fb.close() + + fc = open("./output/" + fileName + "_out.txt","w") + fc.write(str(output)) + print(output) + +def readTelecommandMessage(fileName = "serializedFile"): + # Read data from file + fb = open("./output/" + fileName,"rb") + output = telecommands.telecommand_message() + output.ParseFromString(fb.read()) + fb.close() + + fc = open("./output/" + fileName + "_out.txt","w") + fc.write(str(output)) + print(output) + +def makeFileTransferMessage(): + + message = fileTransfer.file_transfer_message() + + messageType = input("Select message type:\n(1) OBC Telemetry\n(2) Tranceiver Telemetry\n\ +(3) Camera Telemetry\n(4) EPS Telemetry\n(5) Battery Telemetry\n(6) Antenna Telemetry\n\ +(7) Dosimeter Data\n(8) Image Packet\n(9) Module Error Report\n(10) Component Error Report\n\ +(11) Error Report Summary\n") + + if messageType == "1": + message.ObcTelemetry.mode = 0 + message.ObcTelemetry.uptime = 0 + message.ObcTelemetry.rtcTime = 0 + message.ObcTelemetry.rtcTemperature = 0 + + elif messageType == "2": + message.TransceiverTelemetry.receiver.rxDoppler = 1.02 + message.TransceiverTelemetry.receiver.rxRssi = 34.56 + message.TransceiverTelemetry.receiver.busVoltage = 5.9 + message.TransceiverTelemetry.receiver.totalCurrent = 2.50 + message.TransceiverTelemetry.receiver.txCurrent = 1.98 + message.TransceiverTelemetry.receiver.rxCurrent = 2.01 + message.TransceiverTelemetry.receiver.powerAmplifierCurrent = 28.4 + message.TransceiverTelemetry.receiver.powerAmplifierTemperature = 29.8 + message.TransceiverTelemetry.receiver.boardTemperature = 30.2 + message.TransceiverTelemetry.receiver.uptime = 1092 + message.TransceiverTelemetry.receiver.frames = 234 + + message.TransceiverTelemetry.transmitter.reflectedPower = 1.23 + message.TransceiverTelemetry.transmitter.forwardPower = 26.98 + message.TransceiverTelemetry.transmitter.busVoltage = 4.5 + message.TransceiverTelemetry.transmitter.totalCurrent = 3.1 + message.TransceiverTelemetry.transmitter.txCurrent = 2.21 + message.TransceiverTelemetry.transmitter.rxCurrent = 2.23 + message.TransceiverTelemetry.transmitter.powerAmplifierCurrent = 5.9 + message.TransceiverTelemetry.transmitter.powerAmplifierTemperature = 6.11 + message.TransceiverTelemetry.transmitter.boardTemperature = 28.6 + message.TransceiverTelemetry.transmitter.uptime = 1191 + + elif messageType == "3": + message.CameraTelemetry.uptime = 0 + + elif messageType == "4": + message.EpsTelemetry = 0 + + elif messageType == "5": + message.BatteryTelemetry = -1 + + elif messageType == "6": + message.AntennaTelemetry = -1 + + elif messageType == "7": + message.DosimeterData.boardOne.channelZero = 0 + message.DosimeterData.boardOne.channelOne = 0 + message.DosimeterData.boardOne.channelTwo = 0 + message.DosimeterData.boardOne.channelThree = 0 + message.DosimeterData.boardOne.channelFour = 0 + message.DosimeterData.boardOne.channelFive = 0 + message.DosimeterData.boardOne.channelSix = 0 + message.DosimeterData.boardOne.channelSeven = 0 + + message.DosimeterData.boardTwo.channelZero = 0 + message.DosimeterData.boardTwo.channelOne = 0 + message.DosimeterData.boardTwo.channelTwo = 0 + message.DosimeterData.boardTwo.channelThree = 0 + message.DosimeterData.boardTwo.channelFour = 0 + message.DosimeterData.boardTwo.channelFive = 0 + message.DosimeterData.boardTwo.channelSix = 0 + message.DosimeterData.boardTwo.channelSeven = 0 + + elif messageType == "8": + message.ImagePacket.id = 0 + message.ImagePacket.type = "FullResolution" + message.ImagePacket.data = 0 + + elif messageType == "9": + message.ModuleErrorReport.uptime = 0 + + elif messageType == "10": + message.ComponentErrorReport.uptime = 0 + + elif messageType == "11": + message.ErrorReportSummary.uptime = 0 + + writeToFile(message, "fileTransferMessage") + + return message + +def makeTelecommandMessage(): + + message = telecommands.telecommand_message() + + messageType = input("Select message type:\n(1) Begin Pass\n(2) Begin File Transfer\n\ +(3) Cease Transmission\n(4) Resume Transmission\n(5) Update Time\n(6) Reset\n") + + if messageType == "1": + message.BeginPass.passLength = 10 + msgType = "BeginPass" + + elif messageType == "2": + message.BeginFileTransfer.begin = True + msgType = "BeginFileTransfer" + + elif messageType == "3": + message.CeaseTransmission.duration = 1 + msgType = "CeaseTransmission" + + elif messageType == "4": + message.ResumeTransmission.resume = True + msgType = "ResumeTransmission" + + elif messageType == "5": + message.UpdateTime.unixTime = 1123 + msgType = "UpdateTime" + + elif messageType == "6": + message.Reset.Obc + message.Reset.hard = 1 + msgType = "Reset" + + fileName = "telecommandMessage_" + msgType + writeToFile(message, fileName) + + return message,fileName + +def addHeader(fileName = "serializedFile"): + fb = open("./output/" + fileName,"rb") + messageData = fb.read() + + preamble = int(0x2018).to_bytes(2,byteorder="big") + + length = len(messageData).to_bytes(1,byteorder="big") + + unixTime = int(time()).to_bytes(4,byteorder="big") + + header1 = length + unixTime + messageData + print("Header data : ", "".join(f"0x{i:02x} " for i in header1)) + + width = 16 + poly=0x8005 + init_value=0x0000 + final_xor_value=0x0000 + reverse_input=True + reverse_output=True + configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output) + crc_calculator = CrcCalculator(configuration, True) + checksum = int(crc_calculator.calculate_checksum(header1)).to_bytes(2,byteorder="big") + print("Checksum : 0x" + str(checksum.hex())) + + header = preamble + checksum + header1 + fullMessage = header + messageData + + fh = open("./output/" + fileName + "_header","wb") + fh.write(bytearray(fullMessage)) + fh.close() + +def readBinFile(file): + with open(file,"rb") as f: + byte = f.read(1) + while byte: + # Do stuff with byte. + byte = f.read(1) + print(byte) + +messageType = "3" #input("Select message type:\n(1) File Transfer\n(2) Telecommand\n") + +if messageType == "1": + message = makeFileTransferMessage() + readFileTransferMessage("fileTransferMessage") + +elif messageType == "2": + message,fileName = makeTelecommandMessage() + readTelecommandMessage(fileName) + addHeader(fileName) + +elif messageType == "3": + readBinFile("./output/telecommandMessage_BeginFileTransfer_header2") \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer new file mode 100644 index 0000000..4baf8e1 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2 b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2 new file mode 100644 index 0000000..8a7f721 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2 @@ -0,0 +1 @@ + ;$bشt \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_out.txt b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_out.txt new file mode 100644 index 0000000..f0d0943 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_out.txt @@ -0,0 +1,3 @@ +BeginFileTransfer { + begin: true +} diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass new file mode 100644 index 0000000..5b9b964 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass @@ -0,0 +1,2 @@ + + diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2 b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2 new file mode 100644 index 0000000..828d89c --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2 @@ -0,0 +1,4 @@ + \bشq + + + diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_out.txt b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_out.txt new file mode 100644 index 0000000..c32ea99 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_out.txt @@ -0,0 +1,3 @@ +BeginPass { + passLength: 10 +} diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission new file mode 100644 index 0000000..6460e71 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2 b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2 new file mode 100644 index 0000000..582af09 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2 @@ -0,0 +1 @@ + _bشv \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_out.txt b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_out.txt new file mode 100644 index 0000000..35d8f92 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_out.txt @@ -0,0 +1,3 @@ +CeaseTransmission { + duration: 1 +} diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset new file mode 100644 index 0000000..29bcd22 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset @@ -0,0 +1 @@ +2 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2 b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2 new file mode 100644 index 0000000..1d8d258 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2 @@ -0,0 +1 @@ + :bش|22 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_out.txt b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_out.txt new file mode 100644 index 0000000..63173f2 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_out.txt @@ -0,0 +1,3 @@ +Reset { + hard: 1 +} diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission new file mode 100644 index 0000000..74729ef --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission @@ -0,0 +1 @@ +" \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2 b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2 new file mode 100644 index 0000000..f3750cc --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2 @@ -0,0 +1 @@ + ;obشw"" \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_out.txt b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_out.txt new file mode 100644 index 0000000..d0f09d8 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_out.txt @@ -0,0 +1,3 @@ +ResumeTransmission { + resume: true +} diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime new file mode 100644 index 0000000..d673a08 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2 b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2 new file mode 100644 index 0000000..47ec87f --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2 @@ -0,0 +1 @@ + bشy** \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_out.txt b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_out.txt new file mode 100644 index 0000000..3d724e2 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_out.txt @@ -0,0 +1,3 @@ +UpdateTime { + unixTime: 1123 +} From ac1d3f4102dab30b74e3a36a6c2a20dae98e757b Mon Sep 17 00:00:00 2001 From: Gedeon Isezerano Date: Thu, 21 Jul 2022 15:49:52 -0600 Subject: [PATCH 06/18] Xor_cipher function for messages --- .../protobuf_messages/binfile_xor_cipher.py | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py diff --git a/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py b/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py new file mode 100644 index 0000000..0430282 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py @@ -0,0 +1,76 @@ +from os import urandom + +""" +-This file contains three function: + - genkey() : It is used to create an arbitrary key for testing purposes + - xor_cipher(): It is used to cipher a binary file + - xor_decipher(): It is used to decipher a binary file +""" + + +#random key generating function for testing purposes +def genkey(length): + """Generate key in bytes""" + return urandom(length) + +#Generate key and store it in a file +key = genkey(10) +try: + with open("encryption_key",'wb')as file: + file.write(key) +except: + print("binary file key was not successfully created") + + + + +def xor_cipher(file, key): + """ + Takes in a binary file, and a encryption key and produces an XOR ciphered text + * Encryption is done byte by byte + """ + + + encrypted_binary = [] #list to store the encrypted message + + #open binary message to be encrypted + try: + with open(file,"rb") as f: + binary_list = list(f.read()) + except: + print("An error occured with opening the file") + + #perform cipher + for i in binary_list: + encrypted_binary.append(i ^key[0]) + #create file to store cipher in the same directory + try: + with open("encrypted_msg",'wb')as file: + file.write(bytes(encrypted_binary)) + + return binary_list #for testing purposes only + except: + print("an error occured with storing the encrypted messaged") + + + +def xor_decipher(file,key): + decrypted_binary = [] + with open(file,"rb") as f: + binary_list = list(f.read()) + + for i in binary_list: + decrypted_binary.append(i ^key[0]) + return decrypted_binary + + #Quick test: Insert test bin files +# check1 = xor_cipher("output-onlinefiletools.bin",key) +# check2 = xor_decipher("encrypted_msg",key) + +# for i in range(0,len(check1)): +# if check1[i]!=check2[i]: +# print("Encryption failed") +# break +# else: +# continue + From 5e34e34a0d8d08d6a5b506d9807af3fede7029de Mon Sep 17 00:00:00 2001 From: Gedeon Isezerano Date: Thu, 21 Jul 2022 16:11:41 -0600 Subject: [PATCH 07/18] xor_cipher file modified to read in key from file --- .../protobuf_messages/binfile_xor_cipher.py | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py b/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py index 0430282..1073f68 100644 --- a/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py +++ b/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py @@ -2,24 +2,24 @@ """ -This file contains three function: - - genkey() : It is used to create an arbitrary key for testing purposes + - genkey() : It is used to create an arbitrary key for testing purposes -- Uncomment it when you want to generate a key - xor_cipher(): It is used to cipher a binary file - xor_decipher(): It is used to decipher a binary file """ #random key generating function for testing purposes -def genkey(length): - """Generate key in bytes""" - return urandom(length) +# def genkey(length): +# """Generate key in bytes""" +# return urandom(length) -#Generate key and store it in a file -key = genkey(10) -try: - with open("encryption_key",'wb')as file: - file.write(key) -except: - print("binary file key was not successfully created") +# #Generate key and store it in a file +# key = genkey(10) +# try: +# with open("encryption_key",'wb')as file: +# file.write(key) +# except: +# print("binary file key was not successfully created") @@ -40,9 +40,16 @@ def xor_cipher(file, key): except: print("An error occured with opening the file") + #open key to use for cipher + try: + with open(key,"rb") as f: + k = f.read() + except: + print("An error occured with opening the file") + #perform cipher for i in binary_list: - encrypted_binary.append(i ^key[0]) + encrypted_binary.append(i ^k[0]) #create file to store cipher in the same directory try: with open("encrypted_msg",'wb')as file: @@ -59,14 +66,22 @@ def xor_decipher(file,key): with open(file,"rb") as f: binary_list = list(f.read()) + #open key to use for cipher + try: + with open(key,"rb") as f: + k = f.read() + except: + print("An error occured with opening the file") + for i in binary_list: - decrypted_binary.append(i ^key[0]) + decrypted_binary.append(i ^k[0]) return decrypted_binary #Quick test: Insert test bin files -# check1 = xor_cipher("output-onlinefiletools.bin",key) -# check2 = xor_decipher("encrypted_msg",key) - +# check1 = xor_cipher("output-onlinefiletools.bin","encryption_key") +# check2 = xor_decipher("encrypted_msg","encryption_key") +# print(check1) +# print(check2) # for i in range(0,len(check1)): # if check1[i]!=check2[i]: # print("Encryption failed") From 4f291d9e2b47e438131f7a26f44ef4f511e56148 Mon Sep 17 00:00:00 2001 From: Gedeon Isezerano Date: Thu, 21 Jul 2022 16:13:27 -0600 Subject: [PATCH 08/18] Encryption key file used for cipher --- radsat-sk/testing/protobuf_messages/encryption_key | 1 + 1 file changed, 1 insertion(+) create mode 100644 radsat-sk/testing/protobuf_messages/encryption_key diff --git a/radsat-sk/testing/protobuf_messages/encryption_key b/radsat-sk/testing/protobuf_messages/encryption_key new file mode 100644 index 0000000..d22f50f --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/encryption_key @@ -0,0 +1 @@ +k[|:{ \ No newline at end of file From 5db153df868148c6acdb8e638a4d237981430e48 Mon Sep 17 00:00:00 2001 From: Gedeon Isezerano Date: Thu, 21 Jul 2022 17:32:07 -0600 Subject: [PATCH 09/18] ciphered message using encryption key located in protobuf_messages directory --- .../output/telecommandMessage_BeginFileTransfer_header2_cipher | 1 + .../output/telecommandMessage_BeginPass_header2_cipher | 1 + .../output/telecommandMessage_CeaseTransmission_header2_cipher | 1 + .../output/telecommandMessage_Reset_header2_cipher | 1 + .../output/telecommandMessage_ResumeTransmission_header2_cipher | 1 + .../output/telecommandMessage_UpdateTime_header2_cipher | 1 + 6 files changed, 6 insertions(+) create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher new file mode 100644 index 0000000..77e3663 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher @@ -0,0 +1 @@ +<'8~Ĩh \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher new file mode 100644 index 0000000..fb1afca --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher @@ -0,0 +1 @@ +<@~Ĩm \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher new file mode 100644 index 0000000..3e7b937 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher @@ -0,0 +1 @@ +<C~Ĩj \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher new file mode 100644 index 0000000..e58890e --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher @@ -0,0 +1 @@ +<&~Ĩ`. .  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher new file mode 100644 index 0000000..b0efda9 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher @@ -0,0 +1 @@ +<'s~Ĩk>> \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher new file mode 100644 index 0000000..b9fd961 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher @@ -0,0 +1 @@ +<~Ĩe66 \ No newline at end of file From c1e9b68afc9a8fcedbd1c5d2f045143dfacdb1b3 Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Sat, 23 Jul 2022 20:53:53 -0600 Subject: [PATCH 10/18] fixes message_reader and adjusts checksum --- .../testing/protobuf_messages/crc_test.py | 1 - .../file_transfer_message_reader_rev1.py | 216 ++++++++++-------- 2 files changed, 120 insertions(+), 97 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/crc_test.py b/radsat-sk/testing/protobuf_messages/crc_test.py index 72d1176..4beb709 100644 --- a/radsat-sk/testing/protobuf_messages/crc_test.py +++ b/radsat-sk/testing/protobuf_messages/crc_test.py @@ -1,7 +1,6 @@ from crc import CrcCalculator, Configuration data = bytes([0x00,0x01,0x02,0x03,0x04,0x05]) -expected_checksum = 0xBB3D width = 16 poly=0x8005 init_value=0x0000 diff --git a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py index d2090a1..e187b9f 100644 --- a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py +++ b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py @@ -1,35 +1,81 @@ from time import * -from crc import CrcCalculator, Configuration from numpy import * import RFileTransfer_pb2 as fileTransfer import RTelecommands_pb2 as telecommands +from crc import CrcCalculator, Configuration + +########################## Read / Write Message Functions ########################## def writeToFile(protoMessage, fileName = "serializedFile"): fw = open("./output/" + fileName,"wb") fw.write(protoMessage.SerializeToString()) fw.close() -def readFileTransferMessage(fileName = "serializedFile"): +def readMessage(msgClass, fileName = "serializedFile", withHeader = False): # Read data from file - fb = open("./output/" + fileName,"rb") - output = fileTransfer.file_transfer_message() - output.ParseFromString(fb.read()) - fb.close() + if withHeader: + fileName += "_header" + fb = open("./output/" + fileName,"rb") + removedHeader = fb.read()[9:] + output = msgClass + output.ParseFromString(removedHeader) + fb.close() + print("Data from file :\n#########################\n") + + elif not withHeader: + fb = open("./output/" + fileName,"rb") + output = msgClass + output.ParseFromString(fb.read()) + fb.close() + print("Data into file :\n#########################\n") - fc = open("./output/" + fileName + "_out.txt","w") - fc.write(str(output)) print(output) + print("#########################\n") -def readTelecommandMessage(fileName = "serializedFile"): - # Read data from file +def addHeader(fileName = "serializedFile", checkHeader=False): fb = open("./output/" + fileName,"rb") - output = telecommands.telecommand_message() - output.ParseFromString(fb.read()) - fb.close() + messageData = fb.read() + + preamble = int(0x2018).to_bytes(2,byteorder="big") - fc = open("./output/" + fileName + "_out.txt","w") - fc.write(str(output)) - print(output) + length = len(messageData).to_bytes(1,byteorder="big") + + unixTime = int(time()).to_bytes(4,byteorder="big") + + header = length + unixTime + messageData + + + width = 16 + poly=0x8005 + init_value=0x0000 + final_xor_value=0x0000 + reverse_input=True + reverse_output=True + configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output) + crc_calculator = CrcCalculator(configuration, True) + checksum = int(crc_calculator.calculate_checksum(header)).to_bytes(2,byteorder="big") + + if checkHeader: + print("Header data : ", "".join(f"0x{i:02x} " for i in header)) + print("Checksum : 0x" + str(checksum.hex()).upper()) + + fullMessage = preamble + checksum + header + + fh = open("./output/" + fileName + "_header","wb") + fh.write(bytearray(fullMessage)) + fh.close() + +def xorCipher(inString): + xorKey = 'P' + length = len(inString) + + for i in range(length): + inString = (inString[:i] + chr(ord(inString[i]) ^ ord(xorKey)) + inString[i + 1:]) + print(inString[i], end = "") + + return inString + +############################ Populate Message Functions ############################ def makeFileTransferMessage(): @@ -41,10 +87,11 @@ def makeFileTransferMessage(): (11) Error Report Summary\n") if messageType == "1": - message.ObcTelemetry.mode = 0 - message.ObcTelemetry.uptime = 0 - message.ObcTelemetry.rtcTime = 0 - message.ObcTelemetry.rtcTemperature = 0 + message.ObcTelemetry.mode = 1 + message.ObcTelemetry.uptime = 12 + message.ObcTelemetry.rtcTime = 23423 + message.ObcTelemetry.rtcTemperature = 32 + msgType = "ObcTelemetry" elif messageType == "2": message.TransceiverTelemetry.receiver.rxDoppler = 1.02 @@ -69,55 +116,69 @@ def makeFileTransferMessage(): message.TransceiverTelemetry.transmitter.powerAmplifierTemperature = 6.11 message.TransceiverTelemetry.transmitter.boardTemperature = 28.6 message.TransceiverTelemetry.transmitter.uptime = 1191 + msgType = "TransceiverTelemetry" elif messageType == "3": - message.CameraTelemetry.uptime = 0 + message.CameraTelemetry.uptime = 5744 + msgType = "CameraTelemetry" elif messageType == "4": - message.EpsTelemetry = 0 + message.EpsTelemetry.uptime = 2344 + msgType = "EpsTelemetry" elif messageType == "5": - message.BatteryTelemetry = -1 + message.BatteryTelemetry.uptime = 3423 + msgType = "BatteryTelemetry" elif messageType == "6": - message.AntennaTelemetry = -1 + message.AntennaTelemetry.uptime = 9368 + msgType = "AntennaTelemetry" elif messageType == "7": - message.DosimeterData.boardOne.channelZero = 0 - message.DosimeterData.boardOne.channelOne = 0 - message.DosimeterData.boardOne.channelTwo = 0 - message.DosimeterData.boardOne.channelThree = 0 - message.DosimeterData.boardOne.channelFour = 0 - message.DosimeterData.boardOne.channelFive = 0 - message.DosimeterData.boardOne.channelSix = 0 - message.DosimeterData.boardOne.channelSeven = 0 - - message.DosimeterData.boardTwo.channelZero = 0 - message.DosimeterData.boardTwo.channelOne = 0 - message.DosimeterData.boardTwo.channelTwo = 0 - message.DosimeterData.boardTwo.channelThree = 0 - message.DosimeterData.boardTwo.channelFour = 0 - message.DosimeterData.boardTwo.channelFive = 0 - message.DosimeterData.boardTwo.channelSix = 0 - message.DosimeterData.boardTwo.channelSeven = 0 + message.DosimeterData.boardOne.channelZero = 1 + message.DosimeterData.boardOne.channelOne = 1 + message.DosimeterData.boardOne.channelTwo = 1 + message.DosimeterData.boardOne.channelThree = 1 + message.DosimeterData.boardOne.channelFour = 1 + message.DosimeterData.boardOne.channelFive = 1 + message.DosimeterData.boardOne.channelSix = 1 + message.DosimeterData.boardOne.channelSeven = 1 + + message.DosimeterData.boardTwo.channelZero = 2 + message.DosimeterData.boardTwo.channelOne = 2 + message.DosimeterData.boardTwo.channelTwo = 2 + message.DosimeterData.boardTwo.channelThree = 2 + message.DosimeterData.boardTwo.channelFour = 2 + message.DosimeterData.boardTwo.channelFive = 2 + message.DosimeterData.boardTwo.channelSix = 2 + message.DosimeterData.boardTwo.channelSeven = 2 + msgType = "DosimeterData" elif messageType == "8": - message.ImagePacket.id = 0 - message.ImagePacket.type = "FullResolution" - message.ImagePacket.data = 0 + message.ImagePacket.id = 124122 + message.ImagePacket.type = 1 + message.ImagePacket.data = b'0x01' + msgType = "ImagePacket" elif messageType == "9": - message.ModuleErrorReport.uptime = 0 + message.ModuleErrorReport.module = 1231 + message.ModuleErrorReport.error = 1231 + msgType = "ModuleErrorReport" elif messageType == "10": - message.ComponentErrorReport.uptime = 0 + message.ComponentErrorReport.component = 5231 + message.ComponentErrorReport.error = 2231 + msgType = "ComponentErrorReport" elif messageType == "11": - message.ErrorReportSummary.uptime = 0 + message.ErrorReportSummary.moduleErrorCount.extend([1,2]) + message.ErrorReportSummary.componentErrorCount.extend([3,4,5,6]) + msgType = "ErrorReportSummary" - writeToFile(message, "fileTransferMessage") + fileName = "fileTransferMessage" + msgType + writeToFile(message, fileName) - return message + return message,fileName def makeTelecommandMessage(): @@ -147,64 +208,27 @@ def makeTelecommandMessage(): msgType = "UpdateTime" elif messageType == "6": - message.Reset.Obc + message.Reset.device = "Obc" message.Reset.hard = 1 msgType = "Reset" - fileName = "telecommandMessage_" + msgType + fileName = "telecommandMessage" + msgType writeToFile(message, fileName) return message,fileName -def addHeader(fileName = "serializedFile"): - fb = open("./output/" + fileName,"rb") - messageData = fb.read() - - preamble = int(0x2018).to_bytes(2,byteorder="big") - - length = len(messageData).to_bytes(1,byteorder="big") - - unixTime = int(time()).to_bytes(4,byteorder="big") - - header1 = length + unixTime + messageData - print("Header data : ", "".join(f"0x{i:02x} " for i in header1)) - - width = 16 - poly=0x8005 - init_value=0x0000 - final_xor_value=0x0000 - reverse_input=True - reverse_output=True - configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output) - crc_calculator = CrcCalculator(configuration, True) - checksum = int(crc_calculator.calculate_checksum(header1)).to_bytes(2,byteorder="big") - print("Checksum : 0x" + str(checksum.hex())) - - header = preamble + checksum + header1 - fullMessage = header + messageData +################################# Script Interface ################################# - fh = open("./output/" + fileName + "_header","wb") - fh.write(bytearray(fullMessage)) - fh.close() - -def readBinFile(file): - with open(file,"rb") as f: - byte = f.read(1) - while byte: - # Do stuff with byte. - byte = f.read(1) - print(byte) - -messageType = "3" #input("Select message type:\n(1) File Transfer\n(2) Telecommand\n") +messageType = "2"#input("Select message type:\n(1) File Transfer\n(2) Telecommand\n") if messageType == "1": - message = makeFileTransferMessage() - readFileTransferMessage("fileTransferMessage") + message,fileName = makeFileTransferMessage() + readMessage(fileTransfer.file_transfer_message(), fileName) + addHeader(fileName) + readMessage(fileTransfer.file_transfer_message(), fileName,withHeader=True) elif messageType == "2": message,fileName = makeTelecommandMessage() - readTelecommandMessage(fileName) + readMessage(telecommands.telecommand_message(), fileName) addHeader(fileName) - -elif messageType == "3": - readBinFile("./output/telecommandMessage_BeginFileTransfer_header2") \ No newline at end of file + readMessage(telecommands.telecommand_message(), fileName,withHeader=True) \ No newline at end of file From 4e38ecfc52d3c9252a08e2ab7a926958a4e76a73 Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Sat, 23 Jul 2022 20:54:35 -0600 Subject: [PATCH 11/18] modifies .proto files --- .../protobuf_messages/RFileTransfer.proto | 15 ++++--- .../protobuf_messages/RFileTransfer_pb2.py | 44 +++++++++---------- .../protobuf_messages/RTelecommands.proto | 11 ++--- .../protobuf_messages/RTelecommands_pb2.py | 6 +-- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/RFileTransfer.proto b/radsat-sk/testing/protobuf_messages/RFileTransfer.proto index 16c5f8d..96ec180 100644 --- a/radsat-sk/testing/protobuf_messages/RFileTransfer.proto +++ b/radsat-sk/testing/protobuf_messages/RFileTransfer.proto @@ -70,17 +70,17 @@ message camera_telemetry { // Information about the state of the Electrical Power Supply message eps_telemetry { - + uint32 uptime = 1; } // Information about the state of the Battery message battery_telemetry { - + uint32 uptime = 1; } // Information about the state of the Antenna message antenna_telemetry { - + uint32 uptime = 1; } // Payload Data for a single Dosimeter board @@ -104,10 +104,11 @@ message dosimeter_data { // Enum for image types (i.e. sizes) enum image_type_t { - FullResolution = 0; ///< 1024 x 1024 = 1MB - HalfResolution = 1; ///< 512 x 512 = 256kB - QuarterResolution = 2; ///< 256 x 256 = 64kB - Thumbnail = 3; ///< 64 x 64 = 4kB + None = 0; + FullResolution = 1; ///< 1024 x 1024 = 1MB + HalfResolution = 2; ///< 512 x 512 = 256kB + QuarterResolution = 3; ///< 256 x 256 = 64kB + Thumbnail = 4; ///< 64 x 64 = 4kB } // Image Packet diff --git a/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py b/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py index 866ce74..382e22e 100644 --- a/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py +++ b/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py @@ -13,15 +13,15 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RFileTransfer.proto\"\xa9\x04\n\x15\x66ile_transfer_message\x12&\n\x0cObcTelemetry\x18\x01 \x01(\x0b\x32\x0e.obc_telemetryH\x00\x12\x36\n\x14TransceiverTelemetry\x18\x02 \x01(\x0b\x32\x16.transceiver_telemetryH\x00\x12,\n\x0f\x43\x61meraTelemetry\x18\x03 \x01(\x0b\x32\x11.camera_telemetryH\x00\x12&\n\x0c\x45psTelemetry\x18\x04 \x01(\x0b\x32\x0e.eps_telemetryH\x00\x12.\n\x10\x42\x61tteryTelemetry\x18\x05 \x01(\x0b\x32\x12.battery_telemetryH\x00\x12.\n\x10\x41ntennaTelemetry\x18\x06 \x01(\x0b\x32\x12.antenna_telemetryH\x00\x12(\n\rDosimeterData\x18\x07 \x01(\x0b\x32\x0f.dosimeter_dataH\x00\x12$\n\x0bImagePacket\x18\x08 \x01(\x0b\x32\r.image_packetH\x00\x12\x31\n\x11ModuleErrorReport\x18\t \x01(\x0b\x32\x14.module_error_reportH\x00\x12\x37\n\x14\x43omponentErrorReport\x18\n \x01(\x0b\x32\x17.component_error_reportH\x00\x12\x33\n\x12\x45rrorReportSummary\x18\x0b \x01(\x0b\x32\x15.error_report_summaryH\x00\x42\t\n\x07message\"V\n\robc_telemetry\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x0e\n\x06uptime\x18\x02 \x01(\r\x12\x0f\n\x07rtcTime\x18\x03 \x01(\r\x12\x16\n\x0ertcTemperature\x18\x04 \x01(\r\"\x83\x02\n\x12receiver_telemetry\x12\x11\n\trxDoppler\x18\x01 \x01(\x02\x12\x0e\n\x06rxRssi\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\x12\x0e\n\x06\x66rames\x18\x0b \x01(\r\"\x81\x02\n\x15transmitter_telemetry\x12\x16\n\x0ereflectedPower\x18\x01 \x01(\x02\x12\x14\n\x0c\x66orwardPower\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\"k\n\x15transceiver_telemetry\x12%\n\x08receiver\x18\x01 \x01(\x0b\x32\x13.receiver_telemetry\x12+\n\x0btransmitter\x18\x02 \x01(\x0b\x32\x16.transmitter_telemetry\"\"\n\x10\x63\x61mera_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"\x0f\n\reps_telemetry\"\x13\n\x11\x62\x61ttery_telemetry\"\x13\n\x11\x61ntenna_telemetry\"\xbd\x01\n\x14\x64osimeter_board_data\x12\x13\n\x0b\x63hannelZero\x18\x01 \x01(\x02\x12\x12\n\nchannelOne\x18\x02 \x01(\x02\x12\x12\n\nchannelTwo\x18\x03 \x01(\x02\x12\x14\n\x0c\x63hannelThree\x18\x04 \x01(\x02\x12\x13\n\x0b\x63hannelFour\x18\x05 \x01(\x02\x12\x13\n\x0b\x63hannelFive\x18\x06 \x01(\x02\x12\x12\n\nchannelSix\x18\x07 \x01(\x02\x12\x14\n\x0c\x63hannelSeven\x18\x08 \x01(\x02\"b\n\x0e\x64osimeter_data\x12\'\n\x08\x62oardOne\x18\x01 \x01(\x0b\x32\x15.dosimeter_board_data\x12\'\n\x08\x62oardTwo\x18\x02 \x01(\x0b\x32\x15.dosimeter_board_data\"E\n\x0cimage_packet\x12\n\n\x02id\x18\x01 \x01(\r\x12\x1b\n\x04type\x18\x02 \x01(\x0e\x32\r.image_type_t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"4\n\x13module_error_report\x12\x0e\n\x06module\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\":\n\x16\x63omponent_error_report\x12\x11\n\tcomponent\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\"3\n\x0c\x65rror_record\x12\x14\n\x0ctimeRecorded\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"M\n\x14\x65rror_report_summary\x12\x18\n\x10moduleErrorCount\x18\x01 \x03(\r\x12\x1b\n\x13\x63omponentErrorCount\x18\x02 \x03(\r*\\\n\x0cimage_type_t\x12\x12\n\x0e\x46ullResolution\x10\x00\x12\x12\n\x0eHalfResolution\x10\x01\x12\x15\n\x11QuarterResolution\x10\x02\x12\r\n\tThumbnail\x10\x03\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RFileTransfer.proto\"\xa9\x04\n\x15\x66ile_transfer_message\x12&\n\x0cObcTelemetry\x18\x01 \x01(\x0b\x32\x0e.obc_telemetryH\x00\x12\x36\n\x14TransceiverTelemetry\x18\x02 \x01(\x0b\x32\x16.transceiver_telemetryH\x00\x12,\n\x0f\x43\x61meraTelemetry\x18\x03 \x01(\x0b\x32\x11.camera_telemetryH\x00\x12&\n\x0c\x45psTelemetry\x18\x04 \x01(\x0b\x32\x0e.eps_telemetryH\x00\x12.\n\x10\x42\x61tteryTelemetry\x18\x05 \x01(\x0b\x32\x12.battery_telemetryH\x00\x12.\n\x10\x41ntennaTelemetry\x18\x06 \x01(\x0b\x32\x12.antenna_telemetryH\x00\x12(\n\rDosimeterData\x18\x07 \x01(\x0b\x32\x0f.dosimeter_dataH\x00\x12$\n\x0bImagePacket\x18\x08 \x01(\x0b\x32\r.image_packetH\x00\x12\x31\n\x11ModuleErrorReport\x18\t \x01(\x0b\x32\x14.module_error_reportH\x00\x12\x37\n\x14\x43omponentErrorReport\x18\n \x01(\x0b\x32\x17.component_error_reportH\x00\x12\x33\n\x12\x45rrorReportSummary\x18\x0b \x01(\x0b\x32\x15.error_report_summaryH\x00\x42\t\n\x07message\"V\n\robc_telemetry\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x0e\n\x06uptime\x18\x02 \x01(\r\x12\x0f\n\x07rtcTime\x18\x03 \x01(\r\x12\x16\n\x0ertcTemperature\x18\x04 \x01(\r\"\x83\x02\n\x12receiver_telemetry\x12\x11\n\trxDoppler\x18\x01 \x01(\x02\x12\x0e\n\x06rxRssi\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\x12\x0e\n\x06\x66rames\x18\x0b \x01(\r\"\x81\x02\n\x15transmitter_telemetry\x12\x16\n\x0ereflectedPower\x18\x01 \x01(\x02\x12\x14\n\x0c\x66orwardPower\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\"k\n\x15transceiver_telemetry\x12%\n\x08receiver\x18\x01 \x01(\x0b\x32\x13.receiver_telemetry\x12+\n\x0btransmitter\x18\x02 \x01(\x0b\x32\x16.transmitter_telemetry\"\"\n\x10\x63\x61mera_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"\x1f\n\reps_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"#\n\x11\x62\x61ttery_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"#\n\x11\x61ntenna_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"\xbd\x01\n\x14\x64osimeter_board_data\x12\x13\n\x0b\x63hannelZero\x18\x01 \x01(\x02\x12\x12\n\nchannelOne\x18\x02 \x01(\x02\x12\x12\n\nchannelTwo\x18\x03 \x01(\x02\x12\x14\n\x0c\x63hannelThree\x18\x04 \x01(\x02\x12\x13\n\x0b\x63hannelFour\x18\x05 \x01(\x02\x12\x13\n\x0b\x63hannelFive\x18\x06 \x01(\x02\x12\x12\n\nchannelSix\x18\x07 \x01(\x02\x12\x14\n\x0c\x63hannelSeven\x18\x08 \x01(\x02\"b\n\x0e\x64osimeter_data\x12\'\n\x08\x62oardOne\x18\x01 \x01(\x0b\x32\x15.dosimeter_board_data\x12\'\n\x08\x62oardTwo\x18\x02 \x01(\x0b\x32\x15.dosimeter_board_data\"E\n\x0cimage_packet\x12\n\n\x02id\x18\x01 \x01(\r\x12\x1b\n\x04type\x18\x02 \x01(\x0e\x32\r.image_type_t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"4\n\x13module_error_report\x12\x0e\n\x06module\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\":\n\x16\x63omponent_error_report\x12\x11\n\tcomponent\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\"3\n\x0c\x65rror_record\x12\x14\n\x0ctimeRecorded\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"M\n\x14\x65rror_report_summary\x12\x18\n\x10moduleErrorCount\x18\x01 \x03(\r\x12\x1b\n\x13\x63omponentErrorCount\x18\x02 \x03(\r*f\n\x0cimage_type_t\x12\x08\n\x04None\x10\x00\x12\x12\n\x0e\x46ullResolution\x10\x01\x12\x12\n\x0eHalfResolution\x10\x02\x12\x15\n\x11QuarterResolution\x10\x03\x12\r\n\tThumbnail\x10\x04\x62\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RFileTransfer_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - _IMAGE_TYPE_T._serialized_start=2002 - _IMAGE_TYPE_T._serialized_end=2094 + _IMAGE_TYPE_T._serialized_start=2050 + _IMAGE_TYPE_T._serialized_end=2152 _FILE_TRANSFER_MESSAGE._serialized_start=24 _FILE_TRANSFER_MESSAGE._serialized_end=577 _OBC_TELEMETRY._serialized_start=579 @@ -35,23 +35,23 @@ _CAMERA_TELEMETRY._serialized_start=1298 _CAMERA_TELEMETRY._serialized_end=1332 _EPS_TELEMETRY._serialized_start=1334 - _EPS_TELEMETRY._serialized_end=1349 - _BATTERY_TELEMETRY._serialized_start=1351 - _BATTERY_TELEMETRY._serialized_end=1370 - _ANTENNA_TELEMETRY._serialized_start=1372 - _ANTENNA_TELEMETRY._serialized_end=1391 - _DOSIMETER_BOARD_DATA._serialized_start=1394 - _DOSIMETER_BOARD_DATA._serialized_end=1583 - _DOSIMETER_DATA._serialized_start=1585 - _DOSIMETER_DATA._serialized_end=1683 - _IMAGE_PACKET._serialized_start=1685 - _IMAGE_PACKET._serialized_end=1754 - _MODULE_ERROR_REPORT._serialized_start=1756 - _MODULE_ERROR_REPORT._serialized_end=1808 - _COMPONENT_ERROR_REPORT._serialized_start=1810 - _COMPONENT_ERROR_REPORT._serialized_end=1868 - _ERROR_RECORD._serialized_start=1870 - _ERROR_RECORD._serialized_end=1921 - _ERROR_REPORT_SUMMARY._serialized_start=1923 - _ERROR_REPORT_SUMMARY._serialized_end=2000 + _EPS_TELEMETRY._serialized_end=1365 + _BATTERY_TELEMETRY._serialized_start=1367 + _BATTERY_TELEMETRY._serialized_end=1402 + _ANTENNA_TELEMETRY._serialized_start=1404 + _ANTENNA_TELEMETRY._serialized_end=1439 + _DOSIMETER_BOARD_DATA._serialized_start=1442 + _DOSIMETER_BOARD_DATA._serialized_end=1631 + _DOSIMETER_DATA._serialized_start=1633 + _DOSIMETER_DATA._serialized_end=1731 + _IMAGE_PACKET._serialized_start=1733 + _IMAGE_PACKET._serialized_end=1802 + _MODULE_ERROR_REPORT._serialized_start=1804 + _MODULE_ERROR_REPORT._serialized_end=1856 + _COMPONENT_ERROR_REPORT._serialized_start=1858 + _COMPONENT_ERROR_REPORT._serialized_end=1916 + _ERROR_RECORD._serialized_start=1918 + _ERROR_RECORD._serialized_end=1969 + _ERROR_REPORT_SUMMARY._serialized_start=1971 + _ERROR_REPORT_SUMMARY._serialized_end=2048 # @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/RTelecommands.proto b/radsat-sk/testing/protobuf_messages/RTelecommands.proto index 2dbcacc..fa9de5e 100644 --- a/radsat-sk/testing/protobuf_messages/RTelecommands.proto +++ b/radsat-sk/testing/protobuf_messages/RTelecommands.proto @@ -40,11 +40,12 @@ message update_time { // Instruct the OBC to reset a certain component via Software reset (hard=0) or Power-Cycle (hard=1) message reset { enum device_t { - Obc = 0; - Transmitter = 1; - Receiver = 2; - AntennaSideA = 3; - AntennaSideB = 4; + None = 0; + Obc = 1; + Transmitter = 2; + Receiver = 3; + AntennaSideA = 4; + AntennaSideB = 5; } device_t device = 1; uint32 hard = 2; diff --git a/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py b/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py index f4c4c3f..467f522 100644 --- a/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py +++ b/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RTelecommands.proto\"\x98\x02\n\x13telecommand_message\x12 \n\tBeginPass\x18\x01 \x01(\x0b\x32\x0b.begin_passH\x00\x12\x31\n\x11\x42\x65ginFileTransfer\x18\x02 \x01(\x0b\x32\x14.begin_file_transferH\x00\x12\x30\n\x11\x43\x65\x61seTransmission\x18\x03 \x01(\x0b\x32\x13.cease_transmissionH\x00\x12\x32\n\x12ResumeTransmission\x18\x04 \x01(\x0b\x32\x14.resume_transmissionH\x00\x12\"\n\nUpdateTime\x18\x05 \x01(\x0b\x32\x0c.update_timeH\x00\x12\x17\n\x05Reset\x18\x06 \x01(\x0b\x32\x06.resetH\x00\x42\t\n\x07message\" \n\nbegin_pass\x12\x12\n\npassLength\x18\x01 \x01(\r\"$\n\x13\x62\x65gin_file_transfer\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"&\n\x12\x63\x65\x61se_transmission\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"%\n\x13resume_transmission\x12\x0e\n\x06resume\x18\x01 \x01(\x08\"\x1f\n\x0bupdate_time\x12\x10\n\x08unixTime\x18\x01 \x01(\r\"\x8e\x01\n\x05reset\x12\x1f\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x0f.reset.device_t\x12\x0c\n\x04hard\x18\x02 \x01(\r\"V\n\x08\x64\x65vice_t\x12\x07\n\x03Obc\x10\x00\x12\x0f\n\x0bTransmitter\x10\x01\x12\x0c\n\x08Receiver\x10\x02\x12\x10\n\x0c\x41ntennaSideA\x10\x03\x12\x10\n\x0c\x41ntennaSideB\x10\x04\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RTelecommands.proto\"\x98\x02\n\x13telecommand_message\x12 \n\tBeginPass\x18\x01 \x01(\x0b\x32\x0b.begin_passH\x00\x12\x31\n\x11\x42\x65ginFileTransfer\x18\x02 \x01(\x0b\x32\x14.begin_file_transferH\x00\x12\x30\n\x11\x43\x65\x61seTransmission\x18\x03 \x01(\x0b\x32\x13.cease_transmissionH\x00\x12\x32\n\x12ResumeTransmission\x18\x04 \x01(\x0b\x32\x14.resume_transmissionH\x00\x12\"\n\nUpdateTime\x18\x05 \x01(\x0b\x32\x0c.update_timeH\x00\x12\x17\n\x05Reset\x18\x06 \x01(\x0b\x32\x06.resetH\x00\x42\t\n\x07message\" \n\nbegin_pass\x12\x12\n\npassLength\x18\x01 \x01(\r\"$\n\x13\x62\x65gin_file_transfer\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"&\n\x12\x63\x65\x61se_transmission\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"%\n\x13resume_transmission\x12\x0e\n\x06resume\x18\x01 \x01(\x08\"\x1f\n\x0bupdate_time\x12\x10\n\x08unixTime\x18\x01 \x01(\r\"\x98\x01\n\x05reset\x12\x1f\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x0f.reset.device_t\x12\x0c\n\x04hard\x18\x02 \x01(\r\"`\n\x08\x64\x65vice_t\x12\x08\n\x04None\x10\x00\x12\x07\n\x03Obc\x10\x01\x12\x0f\n\x0bTransmitter\x10\x02\x12\x0c\n\x08Receiver\x10\x03\x12\x10\n\x0c\x41ntennaSideA\x10\x04\x12\x10\n\x0c\x41ntennaSideB\x10\x05\x62\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RTelecommands_pb2', globals()) @@ -33,7 +33,7 @@ _UPDATE_TIME._serialized_start=457 _UPDATE_TIME._serialized_end=488 _RESET._serialized_start=491 - _RESET._serialized_end=633 + _RESET._serialized_end=643 _RESET_DEVICE_T._serialized_start=547 - _RESET_DEVICE_T._serialized_end=633 + _RESET_DEVICE_T._serialized_end=643 # @@protoc_insertion_point(module_scope) From 0bd7fdf18cc41b5d55ffad220b184c312a531921 Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Sat, 23 Jul 2022 20:55:23 -0600 Subject: [PATCH 12/18] adds file transfer & telecommand message examples --- .../RFileTransfer_pb2.cpython-310.pyc | Bin 0 -> 3738 bytes .../RTelecommands_pb2.cpython-310.pyc | Bin 0 -> 1790 bytes .../output/fileTransferMessageAntennaTelemetry | 1 + .../fileTransferMessageAntennaTelemetry_header | 1 + .../output/fileTransferMessageBatteryTelemetry | 1 + .../fileTransferMessageBatteryTelemetry_header | 1 + .../output/fileTransferMessageCameraTelemetry | 1 + .../fileTransferMessageCameraTelemetry_header | 1 + .../fileTransferMessageComponentErrorReport | 1 + ...ileTransferMessageComponentErrorReport_header | 1 + .../output/fileTransferMessageDosimeterData | Bin 0 -> 86 bytes .../fileTransferMessageDosimeterData_header | Bin 0 -> 95 bytes .../output/fileTransferMessageEpsTelemetry | 1 + .../fileTransferMessageEpsTelemetry_header | 1 + .../output/fileTransferMessageErrorReportSummary | 3 +++ .../fileTransferMessageErrorReportSummary_header | 3 +++ .../output/fileTransferMessageImagePacket | 1 + .../output/fileTransferMessageImagePacket_header | 1 + .../output/fileTransferMessageModuleErrorReport | 1 + .../fileTransferMessageModuleErrorReport_header | 1 + .../output/fileTransferMessageObcTelemetry | 3 +++ .../fileTransferMessageObcTelemetry_header | 3 +++ .../fileTransferMessageTransceiverTelemetry | Bin 0 -> 105 bytes ...ileTransferMessageTransceiverTelemetry_header | Bin 0 -> 114 bytes ...nsfer => telecommandMessageBeginFileTransfer} | 0 .../telecommandMessageBeginFileTransfer_header | 1 + ...age_BeginPass => telecommandMessageBeginPass} | 0 .../output/telecommandMessageBeginPass_header | 2 ++ ...ssion => telecommandMessageCeaseTransmission} | 0 .../telecommandMessageCeaseTransmission_header | 1 + .../output/telecommandMessageReset | 1 + .../output/telecommandMessageReset_header | 1 + ...sion => telecommandMessageResumeTransmission} | 0 .../telecommandMessageResumeTransmission_header | 1 + ...e_UpdateTime => telecommandMessageUpdateTime} | 0 .../output/telecommandMessageUpdateTime_header | 1 + .../telecommandMessage_BeginFileTransfer_header2 | 1 - .../telecommandMessage_BeginFileTransfer_out.txt | 3 --- .../output/telecommandMessage_BeginPass_header2 | 4 ---- .../output/telecommandMessage_BeginPass_out.txt | 3 --- .../telecommandMessage_CeaseTransmission_header2 | 1 - .../telecommandMessage_CeaseTransmission_out.txt | 3 --- .../output/telecommandMessage_Reset | 1 - .../output/telecommandMessage_Reset_header2 | 1 - .../output/telecommandMessage_Reset_out.txt | 3 --- ...telecommandMessage_ResumeTransmission_header2 | 1 - ...telecommandMessage_ResumeTransmission_out.txt | 3 --- .../output/telecommandMessage_UpdateTime_header2 | 1 - .../output/telecommandMessage_UpdateTime_out.txt | 3 --- 49 files changed, 34 insertions(+), 28 deletions(-) create mode 100644 radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc create mode 100644 radsat-sk/testing/protobuf_messages/__pycache__/RTelecommands_pb2.cpython-310.pyc create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header rename radsat-sk/testing/protobuf_messages/output/{telecommandMessage_BeginFileTransfer => telecommandMessageBeginFileTransfer} (100%) create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer_header rename radsat-sk/testing/protobuf_messages/output/{telecommandMessage_BeginPass => telecommandMessageBeginPass} (100%) create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass_header rename radsat-sk/testing/protobuf_messages/output/{telecommandMessage_CeaseTransmission => telecommandMessageCeaseTransmission} (100%) create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission_header create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageReset create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageReset_header rename radsat-sk/testing/protobuf_messages/output/{telecommandMessage_ResumeTransmission => telecommandMessageResumeTransmission} (100%) create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission_header rename radsat-sk/testing/protobuf_messages/output/{telecommandMessage_UpdateTime => telecommandMessageUpdateTime} (100%) create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2 delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_out.txt delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2 delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_out.txt delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2 delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_out.txt delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2 delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_out.txt delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2 delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_out.txt delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2 delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_out.txt diff --git a/radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc b/radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28eb2294f3120c28cef1a0eb1771079eb0167a35 GIT binary patch literal 3738 zcmdT{UvC@75kDR&ky`R7@uk_Pes0jke47&`2+>})Y&~!JW6`&Q%UHj+1c6M*_qwn z4w6*PR%Z4Y z;iby|LN;g_ZxKXmxK4_I1}V{PkTpPqlxYLxO+bTG=oOHwfCka&dmwKC8l*p256A$bO+=cfCky2H$lD$Xpkmtf_w|m zAh+o)knaE* zXcQI{1#MY-o==C|2_l%iC0A>HmqYalsBt{k<0*|I=a}kuQK>(6ht#K28uODzW+!vM z_^{k!V;9E@?Gr`+1l8o6F7>{kd}*&rd!r>MPC8e{eS|hU&J?!39Fmnosx4RQSFFJs zGmMs|xw$tqj8^PgsIu$CG36&q+cjycx5i1wdHZ${(;!H>u|BtVl8zPo`$+4u$b*nj z-i7cs^3r&-MHX5ab%@JtRNS9JAP*h)C5;;eX{WV3p~In6g4Hikwa3WJrzYo&TQp=m zZfr=~T5BqMFcn>x%RU(LD^%;SX~+T^#OYB;j@oXyi_Y@{A0a(uKbTFY4&=2cht*r@ zRdAGaK2dfzP=0P>958x`E0< zL8qZO@H0*uB8yt{D;4RSoad>T^5Eu<#GvCEWuw}QRK-bR9#1CJd2(&KZc;n zRaCu(N->Kazcb?;A|%&P#boj8g-RRdIMF)%;6;6Bho2-pNB^zN``B~;h;w{16uQsDyqx7GWEpyU7k7_H#+gD z3nXzU+?z)Ob~<7F6|9zMMcDtZW72#%55a}Aa0e9@CuB}UTdjp66{!zVF%?32NQw{V z6m&kU%_gdxCz{k57IddIZy;@jVJ;ZlLe&eja+%QuF1cXz&kU+9NkkqZNhSIgD!MP6 zAfUcYIh*GmPX1ik50VQfGe6f2U$NzFSm<7Gn%p=wHRT?g@kVkVmh0>RlQ)tZv0P{1 zy_RGrZ`gd!0sVpolG@bf7?qdqia65T6E;nqNsFdbU za8C7zoLkecqFj6uCb1|#ToA2L;aD)0a7hNG)chE2T|%uQBZ+!GqlVTbDN3K#nx7)$ za%vUia@KSC*hi?e;8&M%B1sB}(W0V77h8Y@T{Z*Gk_6i9q1s}Qcor6-zHuv1E%)ity+d@-Aj1IP0#x$(NJEFPU!SLzKMjvwwFcq&vP-V1=A8&KDH zZ55y+;A;VY67WqH;9CKI&H?;YKm|%rPZ#j9fKLP*3HY6WHv+yC@Qr|P1>ki6N5H=X zd@lgy0ZIZs7qBbfO96in@OJ_K5TJm65AL1jF(%B#*lrv%cI?xnWP;+X_GVf|17aI^Z~rM6 zTkV6vo@wEpIT*kcb{Y3~J9ub5HGAgJdTwuF%j}r@&%k7{o(L3{RR6f?zDTR z)lN-O#^&K5)z)+Mb|zUng<8zadq775B9+~Sa`SJwz|069=2hBOSM!iLUP#d z{Kg#GHQeiWk6^>5W%VuC(_!Bl+S|C(?;Z9J%!A=-hj!NN^sTO4KWmC%cyQF~wXNsh zDO~(elklI|{d9B$VUI?x%bi!FE^}v7D0rgL(O@tfJ?6j*WM>dNB4eXt*%Y~vP41A$ ziGLBj9K|$>z2JBxFD;zyMg1R*E?nPMcye0!ETNuX!!JQ48Uf_8rA+cIWXo%1wUR-Z Pb#*=SzkX3B_rreyVn!aJ literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/__pycache__/RTelecommands_pb2.cpython-310.pyc b/radsat-sk/testing/protobuf_messages/__pycache__/RTelecommands_pb2.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c7d5a381811abd1b4c8a40ee262eae6f7b18a2a GIT binary patch literal 1790 zcmaJ>OK;mo5GM8Z>P(0_;AZZQtblfqvQ*Z zb1w`UNwuZccBN;n-nekbJ~2kXSBsllQk$nl%5{5Bi;&3@ONX(yfJRzr3+J|MNX6l9c0W=(Ix?UMYpT4bD6;5}2duH(GaNm`X- z?2-(Fr=AOHYiYl{F0;KRsW1v8_1KA+dTqtlx0sTWqbEmF!!Uq~W@Jh7Wad_MqfGLf z7bgTnl?3k2jlc!(DXx;3NTCx52m;6Q7<4MBTg*WvJ+bHL%gW zhdRQ(gpq`?gl7`YC0t1OQNk}0ewFa2guf)bz%KXRL)d!|XDMZ&OKIGghvD3Zb-UwW zwLMHS3LHN|p%&-pX0GD$En$?D{ye=JuP7y%$~8s}TqHkPNZ%T|INO6WXXOjb1znWQ z;%bL63nI_)y>no4aAMLkt?sCQIzAc24-Vvr57rad378qI7QNS_&g1Od4`+_gH^Ona zyyivyW+#sgI zr@hV?+5W(^Gg4!Y?ehALxqs8|qVH!dx`*eh;2+_BKAm8meCoQ9^Zm3Jy7+Af1fNbU zYdk%Q!d1YUmQZ6govWoRMixGe9L62-F@G`@z=apgr>YyVC;t2D@#!0V*Ch|m{ N$P;-YPvnU_(FQ%_3xfav literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header new file mode 100644 index 0000000000000000000000000000000000000000..70d170fa5c512a97f86b963bfc131017064fff79 GIT binary patch literal 95 zcmY$8C~gZ&y0ht!RS1^`F9Sn^y(ox~1re$sLKj4sf(Tm>;R+&zKq?s=fGQarfGQar YfGQarfGQarfGQarfGQarfGQar0J%F4yZ`_I literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry new file mode 100644 index 0000000..e2008ff --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry @@ -0,0 +1 @@ +" \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header new file mode 100644 index 0000000..8c7f4da --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header @@ -0,0 +1 @@ + bܲ" \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary new file mode 100644 index 0000000..21a9343 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary @@ -0,0 +1,3 @@ +Z + + \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header new file mode 100644 index 0000000..e1c2bd6 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header @@ -0,0 +1,3 @@ + [( bܲZ + + \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket new file mode 100644 index 0000000..72e3d16 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket @@ -0,0 +1 @@ +B 0x01 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header new file mode 100644 index 0000000..f020272 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header @@ -0,0 +1 @@ + bܲB 0x01 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport new file mode 100644 index 0000000..c06afc7 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport @@ -0,0 +1 @@ +J  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header new file mode 100644 index 0000000..0da2652 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header @@ -0,0 +1 @@ + lbܲJ  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry new file mode 100644 index 0000000..856d7a9 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry @@ -0,0 +1,3 @@ + + +  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header new file mode 100644 index 0000000..881d288 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header @@ -0,0 +1,3 @@ +  bܲ + +  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry new file mode 100644 index 0000000000000000000000000000000000000000..55621c938633dbbafa4c45785bae5df20c4e8f32 GIT binary patch literal 105 zcmWei=Q8Gv>2IrUIM^B+KX!CYOMB<&J8R}g z$ABXo5w94940x9m%(WNgx_;eJmVse{gKAou8%PtcgK5wXJ_lQnL9X(xhaG&+o_XRJ Hu$&VBmft4N literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header new file mode 100644 index 0000000000000000000000000000000000000000..7328ba1cbd7b7cf1581a13ed09ac8c464768252c GIT binary patch literal 114 zcmY$82&l Date: Sat, 23 Jul 2022 21:41:55 -0600 Subject: [PATCH 13/18] integrates xor cipher into message creation script --- .../file_transfer_message_reader_rev1.py | 37 +++++++++++------- ...fileTransferMessageAntennaTelemetry_header | 2 +- ...fileTransferMessageBatteryTelemetry_header | 2 +- .../fileTransferMessageCameraTelemetry_header | 2 +- ...TransferMessageComponentErrorReport_header | 2 +- .../fileTransferMessageDosimeterData_header | Bin 95 -> 95 bytes .../fileTransferMessageEpsTelemetry_header | 2 +- ...leTransferMessageErrorReportSummary_header | 5 +-- .../fileTransferMessageImagePacket_header | 2 +- ...ileTransferMessageModuleErrorReport_header | 2 +- .../fileTransferMessageObcTelemetry_header | 4 +- ...TransferMessageTransceiverTelemetry_header | Bin 114 -> 114 bytes ...telecommandMessageBeginFileTransfer_header | 2 +- .../output/telecommandMessageBeginPass_header | 3 +- ...telecommandMessageCeaseTransmission_header | 2 +- .../output/telecommandMessageReset_header | 2 +- ...elecommandMessageResumeTransmission_header | 2 +- .../telecommandMessageUpdateTime_header | 2 +- 18 files changed, 39 insertions(+), 34 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py index e187b9f..2eea4cd 100644 --- a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py +++ b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py @@ -16,7 +16,16 @@ def readMessage(msgClass, fileName = "serializedFile", withHeader = False): if withHeader: fileName += "_header" fb = open("./output/" + fileName,"rb") - removedHeader = fb.read()[9:] + + encryptedMessage = list(fb.read()) + decryptedMessage = [] + + with open("encryption_key","rb") as fk: + key = fk.read() + for i in encryptedMessage: + decryptedMessage.append(i ^key[0]) + + removedHeader = bytes(decryptedMessage[9:]) output = msgClass output.ParseFromString(removedHeader) fb.close() @@ -33,6 +42,8 @@ def readMessage(msgClass, fileName = "serializedFile", withHeader = False): print("#########################\n") def addHeader(fileName = "serializedFile", checkHeader=False): + + # Make header fb = open("./output/" + fileName,"rb") messageData = fb.read() @@ -43,7 +54,6 @@ def addHeader(fileName = "serializedFile", checkHeader=False): unixTime = int(time()).to_bytes(4,byteorder="big") header = length + unixTime + messageData - width = 16 poly=0x8005 @@ -59,22 +69,21 @@ def addHeader(fileName = "serializedFile", checkHeader=False): print("Header data : ", "".join(f"0x{i:02x} " for i in header)) print("Checksum : 0x" + str(checksum.hex()).upper()) - fullMessage = preamble + checksum + header + headerMessage = list(preamble + checksum + header) + + # Encrypt message with header + with open("encryption_key","rb") as fk: + key = fk.read() + + fullMessage = [] + + for i in headerMessage: + fullMessage.append(i ^key[0]) fh = open("./output/" + fileName + "_header","wb") fh.write(bytearray(fullMessage)) fh.close() -def xorCipher(inString): - xorKey = 'P' - length = len(inString) - - for i in range(length): - inString = (inString[:i] + chr(ord(inString[i]) ^ ord(xorKey)) + inString[i + 1:]) - print(inString[i], end = "") - - return inString - ############################ Populate Message Functions ############################ def makeFileTransferMessage(): @@ -219,7 +228,7 @@ def makeTelecommandMessage(): ################################# Script Interface ################################# -messageType = "2"#input("Select message type:\n(1) File Transfer\n(2) Telecommand\n") +messageType = input("Select message type:\n(1) File Transfer\n(2) Telecommand\n") if messageType == "1": message,fileName = makeFileTransferMessage() diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header index ad4433a..097591a 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header @@ -1 +1 @@ - 6bܲ2I \ No newline at end of file +<~.U \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header index 7b3b4ba..a5da6d4 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header @@ -1 +1 @@ - dbܲ* \ No newline at end of file +<q~6 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header index d5a718a..f2e181a 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header @@ -1 +1 @@ - bܲ, \ No newline at end of file +<b~0 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header index ead352b..64d306a 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header @@ -1 +1 @@ - gCbܲR( \ No newline at end of file +<t~N4 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header index 70d170fa5c512a97f86b963bfc131017064fff79..153a26115470791e1b47d5e927bcbf09dd8baa5c 100644 GIT binary patch literal 95 zcmcCvS>@+dcVMxonunN)pp48MWlj*m2qG*&gdvE~1QCiLA`(RKfmF)G09DGw09DGw Z09DGw09DGw09DGw09DGw09DGw0019)6Z-%F literal 95 zcmY$8C~gZ&y0ht!RS1^`F9Sn^y(ox~1re$sLKj4sf(Tm>;R+&zKq?s=fGQarfGQar YfGQarfGQarfGQarfGQarfGQar0J%F4yZ`_I diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header index 8c7f4da..110174e 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header @@ -1 +1 @@ - bܲ" \ No newline at end of file +<x~> \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header index e1c2bd6..e3944ea 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header @@ -1,3 +1,2 @@ - [( bܲZ - - \ No newline at end of file +<7~ +F \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header index f020272..42008a1 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header @@ -1 +1 @@ - bܲB 0x01 \ No newline at end of file +<|Z~^ ,d,- \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header index 0da2652..5661b47 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header @@ -1 +1 @@ - lbܲJ  \ No newline at end of file +<O:~ V  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header index 881d288..f777000 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header @@ -1,3 +1 @@ -  bܲ - -  \ No newline at end of file +<~ << \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header index 7328ba1cbd7b7cf1581a13ed09ac8c464768252c..d0528cdfad5e2e76992e31097c85b6fc1b198f1f 100644 GIT binary patch literal 114 zcmcCv30YQJcVMwRU$vONpu^;O%AC21VsVTYFD!_$l##KCG2D^!P+9Zzewi3Wef|Hj zkyTZnVguV+-^Tjf5OMh?%cmo_Bd1ZBQ|$EVSVkF{o*2ujswj{q!5B@yB|A QXWowqym;Y9tj}&y0E*iz$^ZZW literal 114 zcmY$82&l \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header index ffdc70a..0de6a77 100644 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header @@ -1 +1 @@ - lbܳJ* \ No newline at end of file +<I)~?6 \ No newline at end of file From 7456cf94d46b6ef41c3f913f2fc1dbcd9d8afc7d Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Mon, 25 Jul 2022 22:13:41 -0600 Subject: [PATCH 14/18] adds radsat.proto fixes --- .../file_transfer_message_reader_rev1.py | 345 +++++++++++------- 1 file changed, 215 insertions(+), 130 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py index 2eea4cd..5f79485 100644 --- a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py +++ b/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py @@ -1,10 +1,12 @@ from time import * from numpy import * +import RRadsat_pb2 as radsat +import RProtocol_pb2 as protocol import RFileTransfer_pb2 as fileTransfer -import RTelecommands_pb2 as telecommands +import RTelecommands_pb2 as telecommands from crc import CrcCalculator, Configuration -########################## Read / Write Message Functions ########################## +####################################### Read / Write Message Functions ####################################### def writeToFile(protoMessage, fileName = "serializedFile"): fw = open("./output/" + fileName,"wb") @@ -84,160 +86,243 @@ def addHeader(fileName = "serializedFile", checkHeader=False): fh.write(bytearray(fullMessage)) fh.close() -############################ Populate Message Functions ############################ +def printDataAsHex(fileName, header = False): + if header: + fileName = fileName + "_header" + with open('./output/' + fileName,'rb') as fr: + out = bytearray(fr.read()).hex() + return out + +######################################### Populate Message Functions ######################################### def makeFileTransferMessage(): - message = fileTransfer.file_transfer_message() + message = radsat.radsat_message() + + while True: - messageType = input("Select message type:\n(1) OBC Telemetry\n(2) Tranceiver Telemetry\n\ + messageType = input("Select message type:\n(1) OBC Telemetry\n(2) Tranceiver Telemetry\n\ (3) Camera Telemetry\n(4) EPS Telemetry\n(5) Battery Telemetry\n(6) Antenna Telemetry\n\ (7) Dosimeter Data\n(8) Image Packet\n(9) Module Error Report\n(10) Component Error Report\n\ (11) Error Report Summary\n") - if messageType == "1": - message.ObcTelemetry.mode = 1 - message.ObcTelemetry.uptime = 12 - message.ObcTelemetry.rtcTime = 23423 - message.ObcTelemetry.rtcTemperature = 32 - msgType = "ObcTelemetry" - - elif messageType == "2": - message.TransceiverTelemetry.receiver.rxDoppler = 1.02 - message.TransceiverTelemetry.receiver.rxRssi = 34.56 - message.TransceiverTelemetry.receiver.busVoltage = 5.9 - message.TransceiverTelemetry.receiver.totalCurrent = 2.50 - message.TransceiverTelemetry.receiver.txCurrent = 1.98 - message.TransceiverTelemetry.receiver.rxCurrent = 2.01 - message.TransceiverTelemetry.receiver.powerAmplifierCurrent = 28.4 - message.TransceiverTelemetry.receiver.powerAmplifierTemperature = 29.8 - message.TransceiverTelemetry.receiver.boardTemperature = 30.2 - message.TransceiverTelemetry.receiver.uptime = 1092 - message.TransceiverTelemetry.receiver.frames = 234 - - message.TransceiverTelemetry.transmitter.reflectedPower = 1.23 - message.TransceiverTelemetry.transmitter.forwardPower = 26.98 - message.TransceiverTelemetry.transmitter.busVoltage = 4.5 - message.TransceiverTelemetry.transmitter.totalCurrent = 3.1 - message.TransceiverTelemetry.transmitter.txCurrent = 2.21 - message.TransceiverTelemetry.transmitter.rxCurrent = 2.23 - message.TransceiverTelemetry.transmitter.powerAmplifierCurrent = 5.9 - message.TransceiverTelemetry.transmitter.powerAmplifierTemperature = 6.11 - message.TransceiverTelemetry.transmitter.boardTemperature = 28.6 - message.TransceiverTelemetry.transmitter.uptime = 1191 - msgType = "TransceiverTelemetry" - - elif messageType == "3": - message.CameraTelemetry.uptime = 5744 - msgType = "CameraTelemetry" - - elif messageType == "4": - message.EpsTelemetry.uptime = 2344 - msgType = "EpsTelemetry" - - elif messageType == "5": - message.BatteryTelemetry.uptime = 3423 - msgType = "BatteryTelemetry" - - elif messageType == "6": - message.AntennaTelemetry.uptime = 9368 - msgType = "AntennaTelemetry" - - elif messageType == "7": - message.DosimeterData.boardOne.channelZero = 1 - message.DosimeterData.boardOne.channelOne = 1 - message.DosimeterData.boardOne.channelTwo = 1 - message.DosimeterData.boardOne.channelThree = 1 - message.DosimeterData.boardOne.channelFour = 1 - message.DosimeterData.boardOne.channelFive = 1 - message.DosimeterData.boardOne.channelSix = 1 - message.DosimeterData.boardOne.channelSeven = 1 - - message.DosimeterData.boardTwo.channelZero = 2 - message.DosimeterData.boardTwo.channelOne = 2 - message.DosimeterData.boardTwo.channelTwo = 2 - message.DosimeterData.boardTwo.channelThree = 2 - message.DosimeterData.boardTwo.channelFour = 2 - message.DosimeterData.boardTwo.channelFive = 2 - message.DosimeterData.boardTwo.channelSix = 2 - message.DosimeterData.boardTwo.channelSeven = 2 - msgType = "DosimeterData" - - elif messageType == "8": - message.ImagePacket.id = 124122 - message.ImagePacket.type = 1 - message.ImagePacket.data = b'0x01' - msgType = "ImagePacket" - - elif messageType == "9": - message.ModuleErrorReport.module = 1231 - message.ModuleErrorReport.error = 1231 - msgType = "ModuleErrorReport" - - elif messageType == "10": - message.ComponentErrorReport.component = 5231 - message.ComponentErrorReport.error = 2231 - msgType = "ComponentErrorReport" - - elif messageType == "11": - message.ErrorReportSummary.moduleErrorCount.extend([1,2]) - message.ErrorReportSummary.componentErrorCount.extend([3,4,5,6]) - msgType = "ErrorReportSummary" - - fileName = "fileTransferMessage" + msgType + if messageType == "1": + message.FileTransferMessage.ObcTelemetry.mode = 1 + message.FileTransferMessage.ObcTelemetry.uptime = 12 + message.FileTransferMessage.ObcTelemetry.rtcTime = 23423 + message.FileTransferMessage.ObcTelemetry.rtcTemperature = 32 + msgType = "ObcTelemetry" + break + + elif messageType == "2": + message.FileTransferMessage.TransceiverTelemetry.receiver.rxDoppler = 1.02 + message.FileTransferMessage.TransceiverTelemetry.receiver.rxRssi = 34.56 + message.FileTransferMessage.TransceiverTelemetry.receiver.busVoltage = 5.9 + message.FileTransferMessage.TransceiverTelemetry.receiver.totalCurrent = 2.50 + message.FileTransferMessage.TransceiverTelemetry.receiver.txCurrent = 1.98 + message.FileTransferMessage.TransceiverTelemetry.receiver.rxCurrent = 2.01 + message.FileTransferMessage.TransceiverTelemetry.receiver.powerAmplifierCurrent = 28.4 + message.FileTransferMessage.TransceiverTelemetry.receiver.powerAmplifierTemperature = 29.8 + message.FileTransferMessage.TransceiverTelemetry.receiver.boardTemperature = 30.2 + message.FileTransferMessage.TransceiverTelemetry.receiver.uptime = 1092 + message.FileTransferMessage.TransceiverTelemetry.receiver.frames = 234 + + message.FileTransferMessage.TransceiverTelemetry.transmitter.reflectedPower = 1.23 + message.FileTransferMessage.TransceiverTelemetry.transmitter.forwardPower = 26.98 + message.FileTransferMessage.TransceiverTelemetry.transmitter.busVoltage = 4.5 + message.FileTransferMessage.TransceiverTelemetry.transmitter.totalCurrent = 3.1 + message.FileTransferMessage.TransceiverTelemetry.transmitter.txCurrent = 2.21 + message.FileTransferMessage.TransceiverTelemetry.transmitter.rxCurrent = 2.23 + message.FileTransferMessage.TransceiverTelemetry.transmitter.powerAmplifierCurrent = 5.9 + message.FileTransferMessage.TransceiverTelemetry.transmitter.powerAmplifierTemperature = 6.11 + message.FileTransferMessage.TransceiverTelemetry.transmitter.boardTemperature = 28.6 + message.FileTransferMessage.TransceiverTelemetry.transmitter.uptime = 1191 + msgType = "TransceiverTelemetry" + break + + elif messageType == "3": + message.FileTransferMessage.CameraTelemetry.uptime = 5744 + msgType = "CameraTelemetry" + break + + elif messageType == "4": + message.FileTransferMessage.EpsTelemetry.uptime = 2344 + msgType = "EpsTelemetry" + break + + elif messageType == "5": + message.FileTransferMessage.BatteryTelemetry.uptime = 3423 + msgType = "BatteryTelemetry" + break + + elif messageType == "6": + message.FileTransferMessage.AntennaTelemetry.uptime = 9368 + msgType = "AntennaTelemetry" + break + + elif messageType == "7": + message.FileTransferMessage.DosimeterData.boardOne.channelZero = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelOne = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelTwo = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelThree = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelFour = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelFive = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelSix = 1 + message.FileTransferMessage.DosimeterData.boardOne.channelSeven = 1 + + message.FileTransferMessage.DosimeterData.boardTwo.channelZero = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelOne = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelTwo = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelThree = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelFour = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelFive = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelSix = 2 + message.FileTransferMessage.DosimeterData.boardTwo.channelSeven = 2 + msgType = "DosimeterData" + break + + elif messageType == "8": + message.FileTransferMessage.ImagePacket.id = 124122 + message.FileTransferMessage.ImagePacket.type = 1 + message.FileTransferMessage.ImagePacket.data = b'0x01' + msgType = "ImagePacket" + break + + elif messageType == "9": + message.FileTransferMessage.ModuleErrorReport.module = 1231 + message.FileTransferMessage.ModuleErrorReport.error = 1231 + msgType = "ModuleErrorReport" + break + + elif messageType == "10": + message.FileTransferMessage.ComponentErrorReport.component = 5231 + message.FileTransferMessage.ComponentErrorReport.error = 2231 + msgType = "ComponentErrorReport" + break + + elif messageType == "11": + message.FileTransferMessage.ErrorReportSummary.moduleErrorCount.extend([1,2]) + message.FileTransferMessage.ErrorReportSummary.componentErrorCount.extend([3,4,5,6]) + msgType = "ErrorReportSummary" + break + + else: + print("Invalid entry\n") + + fileName = "fileTransferMessage_" + msgType writeToFile(message, fileName) return message,fileName def makeTelecommandMessage(): - message = telecommands.telecommand_message() - - messageType = input("Select message type:\n(1) Begin Pass\n(2) Begin File Transfer\n\ + message = radsat.radsat_message() + while True: + messageType = input("Select message type:\n(1) Begin Pass\n(2) Begin File Transfer\n\ (3) Cease Transmission\n(4) Resume Transmission\n(5) Update Time\n(6) Reset\n") - if messageType == "1": - message.BeginPass.passLength = 10 - msgType = "BeginPass" + if messageType == "1": + message.TelecommandMessage.BeginPass.passLength = 10 + msgType = "BeginPass" + print("MADE IT") + break - elif messageType == "2": - message.BeginFileTransfer.begin = True - msgType = "BeginFileTransfer" + elif messageType == "2": + message.TelecommandMessage.BeginFileTransfer.begin = True + msgType = "BeginFileTransfer" + break + + elif messageType == "3": + message.TelecommandMessage.CeaseTransmission.duration = 1 + msgType = "CeaseTransmission" + break + + elif messageType == "4": + message.TelecommandMessage.ResumeTransmission.resume = True + msgType = "ResumeTransmission" + break + + elif messageType == "5": + message.TelecommandMessage.UpdateTime.unixTime = 1123 + msgType = "UpdateTime" + break + + elif messageType == "6": + message.TelecommandMessage.Reset.device = "Obc" + message.Reset.hard = 1 + msgType = "Reset" + break + + else: + print("Invalid entry\n") + + fileName = "telecommandMessage_" + msgType + writeToFile(message, fileName) - elif messageType == "3": - message.CeaseTransmission.duration = 1 - msgType = "CeaseTransmission" + return message,fileName + +def makeProtocolMessage(): + + message = radsat.radsat_message() + while True: + messageType = input("Select message type:\n(1) ACK\n(2) NACK\n") + + if messageType == "1": + message.ProtocolMessage.Ack.resp = 0 + msgType = "ack" + break - elif messageType == "4": - message.ResumeTransmission.resume = True - msgType = "ResumeTransmission" - elif messageType == "5": - message.UpdateTime.unixTime = 1123 - msgType = "UpdateTime" + elif messageType == "2": + message.ProtocolMessage.Nack.resp = 0 + msgType = "nack" + break - elif messageType == "6": - message.Reset.device = "Obc" - message.Reset.hard = 1 - msgType = "Reset" + else: + print("Invalid entry\n") - fileName = "telecommandMessage" + msgType + fileName = "protocol_" + msgType writeToFile(message, fileName) return message,fileName -################################# Script Interface ################################# +############################################## Script Interface ############################################## + +while True: + + messageType = input("Select message type:\n(1) Protocol\n(2) File Transfer\n(3) Telecommand\n(Q) Quit\n") + + if messageType == "1": + message,fileName = makeProtocolMessage() + readMessage(radsat.radsat_message(), fileName) + print("Pre-scramble data : " + printDataAsHex(fileName)) + addHeader(fileName) + readMessage(radsat.radsat_message(), fileName,withHeader=True) + print("Post-scramble data : " + printDataAsHex(fileName,header = True)) + + elif messageType == "2": + message,fileName = makeFileTransferMessage() + readMessage(radsat.radsat_message(), fileName) + print("Pre-scramble data : " + printDataAsHex(fileName)) + addHeader(fileName) + readMessage(radsat.radsat_message(), fileName,withHeader=True) + print("Post-scramble data : " + printDataAsHex(fileName,header = True)) + + elif messageType == "3": + message,fileName = makeTelecommandMessage() + readMessage(radsat.radsat_message(), fileName) + print("Pre-scramble data : " + printDataAsHex(fileName)) + addHeader(fileName) + readMessage(radsat.radsat_message(), fileName,withHeader=True) + print("Post-scramble data : " + printDataAsHex(fileName,header = True)) + print(type(printDataAsHex(fileName,header = True))) + print(len(printDataAsHex(fileName,header = True))) -messageType = input("Select message type:\n(1) File Transfer\n(2) Telecommand\n") -if messageType == "1": - message,fileName = makeFileTransferMessage() - readMessage(fileTransfer.file_transfer_message(), fileName) - addHeader(fileName) - readMessage(fileTransfer.file_transfer_message(), fileName,withHeader=True) -elif messageType == "2": - message,fileName = makeTelecommandMessage() - readMessage(telecommands.telecommand_message(), fileName) - addHeader(fileName) - readMessage(telecommands.telecommand_message(), fileName,withHeader=True) \ No newline at end of file + elif messageType.upper() == "Q": + print("Exiting ... ") + break + + else: + print("Invalid entry\n") \ No newline at end of file From 411669f139bc61a1c1f1b5a3794070c4efde4b91 Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Tue, 26 Jul 2022 18:34:21 -0600 Subject: [PATCH 15/18] updates to remove dummy variables --- .../testing/protobuf_messages/RProtocol.proto | 30 +++++++++++++++++++ .../testing/protobuf_messages/RRadsat.proto | 26 ++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 radsat-sk/testing/protobuf_messages/RProtocol.proto create mode 100644 radsat-sk/testing/protobuf_messages/RRadsat.proto diff --git a/radsat-sk/testing/protobuf_messages/RProtocol.proto b/radsat-sk/testing/protobuf_messages/RProtocol.proto new file mode 100644 index 0000000..ee3b375 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RProtocol.proto @@ -0,0 +1,30 @@ +/* file: fileTransfer.proto + * date: February 9 2022 + * + * This proto file includes the raw definitions (using proto3 syntax) of + * messages that are to be compiled into C structs using the protoc library. + * + * The messages defined in this file will be used for the Acknowledgement (ACK) and + * Negative-Acknowledgement (NACK) of messages sent between the Satellite and the Ground + * Station. + */ + + syntax = "proto3"; + + // top level File Transfer message object + message protocol_message { + oneof message { + ack Ack = 1; + nack Nack = 2; + } + } + + // Positive Acknowledgement + message ack { + uint32 resp = 1; + } + + // Negative Acknowledgement + message nack { + uint32 resp = 1; + } \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/RRadsat.proto b/radsat-sk/testing/protobuf_messages/RRadsat.proto new file mode 100644 index 0000000..5990545 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RRadsat.proto @@ -0,0 +1,26 @@ +/* file: fileTransfer.proto + * date: January 25 2021 + * + * This proto file includes the raw definitions (using proto3 syntax) of + * messages that are to be compiled into C structs using the protoc library. + * + * This proto defines top-level messages, that include (or are used by) the + * topic-specific messages. For example, radsatMessage is the single top-level + * message that wraps every other defined message inside of it. + */ + + +syntax = "proto3"; + +import "RProtocol.proto"; +import "RTelecommands.proto"; +import "RFileTransfer.proto"; + +// top level RADSAT message object +message radsat_message { + oneof service { + protocol_message ProtocolMessage = 1; + file_transfer_message FileTransferMessage = 2; + telecommand_message TelecommandMessage = 3; + } +} \ No newline at end of file From 4896868b16ab54f831d9b39ddeffc6771daa92ab Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Wed, 27 Jul 2022 10:43:10 -0600 Subject: [PATCH 16/18] updates message_reader for filled-out proto files --- radsat-sk/testing/proto/RRadsat_pb2.py | 28 +++ .../protobuf_messages/RFileTransfer.proto | 98 +++++++++- .../protobuf_messages/RFileTransfer_pb2.py | 58 +++--- .../testing/protobuf_messages/RProtocol.proto | 22 +-- .../protobuf_messages/RProtocol_pb2.py | 29 +++ .../testing/protobuf_messages/RRadsat.proto | 2 +- .../testing/protobuf_messages/RRadsat_pb2.py | 28 +++ .../protobuf_messages/RTelecommands.proto | 25 ++- .../protobuf_messages/RTelecommands_pb2.py | 24 +-- .../RFileTransfer_pb2.cpython-310.pyc | Bin 3738 -> 5362 bytes .../__pycache__/RProtocol_pb2.cpython-310.pyc | Bin 0 -> 1042 bytes .../__pycache__/RRadsat_pb2.cpython-310.pyc | Bin 0 -> 1232 bytes .../RTelecommands_pb2.cpython-310.pyc | Bin 1790 -> 1777 bytes ...ge_reader_rev1.py => message_generator.py} | 181 ++++++++++++------ .../fileTransferMessageAntennaTelemetry | 1 - ...fileTransferMessageAntennaTelemetry_header | 1 - .../fileTransferMessageBatteryTelemetry | 1 - ...fileTransferMessageBatteryTelemetry_header | 1 - .../output/fileTransferMessageCameraTelemetry | 1 - .../fileTransferMessageCameraTelemetry_header | 1 - .../fileTransferMessageComponentErrorReport | 1 - ...TransferMessageComponentErrorReport_header | 1 - .../fileTransferMessageDosimeterData_header | 1 - .../output/fileTransferMessageEpsTelemetry | 1 - .../fileTransferMessageEpsTelemetry_header | 1 - ...leTransferMessageErrorReportSummary_header | 2 - .../output/fileTransferMessageImagePacket | 1 - .../fileTransferMessageImagePacket_header | 1 - .../fileTransferMessageModuleErrorReport | 1 - ...ileTransferMessageModuleErrorReport_header | 1 - .../fileTransferMessageObcTelemetry_header | 1 - ...TransferMessageTransceiverTelemetry_header | 1 - .../fileTransferMessage_AntennaTelemetry | Bin 0 -> 54 bytes ...ileTransferMessage_AntennaTelemetry_header | 1 + .../fileTransferMessage_BatteryTelemetry | Bin 0 -> 59 bytes ...ileTransferMessage_BatteryTelemetry_header | 1 + .../fileTransferMessage_CameraTelemetry | 1 + ...fileTransferMessage_CameraTelemetry_header | 1 + .../fileTransferMessage_ComponentErrorReport | 1 + ...ransferMessage_ComponentErrorReport_header | 1 + ...Data => fileTransferMessage_DosimeterData} | Bin 86 -> 88 bytes .../fileTransferMessage_DosimeterData_header | 1 + .../output/fileTransferMessage_EpsTelemetry | Bin 0 -> 81 bytes .../fileTransferMessage_EpsTelemetry_header | 1 + ...=> fileTransferMessage_ErrorReportSummary} | 2 +- ...eTransferMessage_ErrorReportSummary_header | Bin 0 -> 23 bytes .../output/fileTransferMessage_ImagePacket | 1 + .../fileTransferMessage_ImagePacket_header | Bin 0 -> 25 bytes .../fileTransferMessage_ModuleErrorReport | 1 + ...leTransferMessage_ModuleErrorReport_header | 1 + ...metry => fileTransferMessage_ObcTelemetry} | 2 +- .../fileTransferMessage_ObcTelemetry_header | Bin 0 -> 23 bytes ... fileTransferMessage_TransceiverTelemetry} | Bin 105 -> 107 bytes ...ransferMessage_TransceiverTelemetry_header | Bin 0 -> 116 bytes .../protobuf_messages/output/protocol_ack | Bin 0 -> 4 bytes .../output/protocol_ack_header | 1 + .../protobuf_messages/output/protocol_nack | Bin 0 -> 4 bytes .../output/protocol_nack_header | 1 + .../telecommandMessageBeginFileTransfer | 1 - ...telecommandMessageBeginFileTransfer_header | 1 - .../output/telecommandMessageBeginPass | 2 - .../output/telecommandMessageBeginPass_header | 1 - .../telecommandMessageCeaseTransmission | 1 - ...telecommandMessageCeaseTransmission_header | 1 - .../output/telecommandMessageReset | 1 - .../output/telecommandMessageReset_header | 1 - .../telecommandMessageResumeTransmission | 1 - ...elecommandMessageResumeTransmission_header | 1 - .../output/telecommandMessageUpdateTime | 1 - .../telecommandMessageUpdateTime_header | 1 - .../telecommandMessage_BeginFileTransfer | Bin 0 -> 4 bytes ...elecommandMessage_BeginFileTransfer_header | 1 + ...ndMessage_BeginFileTransfer_header2_cipher | 1 - .../output/telecommandMessage_BeginPass | 2 + .../telecommandMessage_BeginPass_header | 1 + ...elecommandMessage_BeginPass_header2_cipher | 1 - .../telecommandMessage_CeaseTransmission | 1 + ...elecommandMessage_CeaseTransmission_header | Bin 0 -> 15 bytes ...ndMessage_CeaseTransmission_header2_cipher | 1 - .../output/telecommandMessage_Reset | 1 + .../output/telecommandMessage_Reset_header | Bin 0 -> 17 bytes .../telecommandMessage_Reset_header2_cipher | 1 - .../telecommandMessage_ResumeTransmission | Bin 0 -> 4 bytes ...lecommandMessage_ResumeTransmission_header | 1 + ...dMessage_ResumeTransmission_header2_cipher | 1 - .../output/telecommandMessage_UpdateTime | 1 + .../telecommandMessage_UpdateTime_header | Bin 0 -> 16 bytes ...lecommandMessage_UpdateTime_header2_cipher | 1 - .../{ => xorCipher}/binfile_xor_cipher.py | 0 .../{ => xorCipher}/crc_test.py | 0 .../{ => xorCipher}/encryption_key | 0 .../protobuf_messages/xorCipher/new_key | 1 + 92 files changed, 399 insertions(+), 160 deletions(-) create mode 100644 radsat-sk/testing/proto/RRadsat_pb2.py create mode 100644 radsat-sk/testing/protobuf_messages/RProtocol_pb2.py create mode 100644 radsat-sk/testing/protobuf_messages/RRadsat_pb2.py create mode 100644 radsat-sk/testing/protobuf_messages/__pycache__/RProtocol_pb2.cpython-310.pyc create mode 100644 radsat-sk/testing/protobuf_messages/__pycache__/RRadsat_pb2.cpython-310.pyc rename radsat-sk/testing/protobuf_messages/{file_transfer_message_reader_rev1.py => message_generator.py} (55%) delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport_header rename radsat-sk/testing/protobuf_messages/output/{fileTransferMessageDosimeterData => fileTransferMessage_DosimeterData} (94%) create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_DosimeterData_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry_header rename radsat-sk/testing/protobuf_messages/output/{fileTransferMessageErrorReportSummary => fileTransferMessage_ErrorReportSummary} (71%) create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ErrorReportSummary_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ImagePacket create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ImagePacket_header create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ModuleErrorReport create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ModuleErrorReport_header rename radsat-sk/testing/protobuf_messages/output/{fileTransferMessageObcTelemetry => fileTransferMessage_ObcTelemetry} (78%) create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ObcTelemetry_header rename radsat-sk/testing/protobuf_messages/output/{fileTransferMessageTransceiverTelemetry => fileTransferMessage_TransceiverTelemetry} (95%) create mode 100644 radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry_header create mode 100644 radsat-sk/testing/protobuf_messages/output/protocol_ack create mode 100644 radsat-sk/testing/protobuf_messages/output/protocol_ack_header create mode 100644 radsat-sk/testing/protobuf_messages/output/protocol_nack create mode 100644 radsat-sk/testing/protobuf_messages/output/protocol_nack_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageReset delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageReset_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime create mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header delete mode 100644 radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher rename radsat-sk/testing/protobuf_messages/{ => xorCipher}/binfile_xor_cipher.py (100%) rename radsat-sk/testing/protobuf_messages/{ => xorCipher}/crc_test.py (100%) rename radsat-sk/testing/protobuf_messages/{ => xorCipher}/encryption_key (100%) create mode 100644 radsat-sk/testing/protobuf_messages/xorCipher/new_key diff --git a/radsat-sk/testing/proto/RRadsat_pb2.py b/radsat-sk/testing/proto/RRadsat_pb2.py new file mode 100644 index 0000000..622e643 --- /dev/null +++ b/radsat-sk/testing/proto/RRadsat_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: proto/RRadsat.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from proto import RProtocol_pb2 as proto_dot_RProtocol__pb2 +from proto import RTelecommands_pb2 as proto_dot_RTelecommands__pb2 +from proto import RFileTransfer_pb2 as proto_dot_RFileTransfer__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/RRadsat.proto\x1a\x15proto/RProtocol.proto\x1a\x19proto/RTelecommands.proto\x1a\x19proto/RFileTransfer.proto\"\xb4\x01\n\x0eradsat_message\x12,\n\x0fProtocolMessage\x18\x01 \x01(\x0b\x32\x11.protocol_messageH\x00\x12\x35\n\x13\x46ileTransferMessage\x18\x02 \x01(\x0b\x32\x16.file_transfer_messageH\x00\x12\x32\n\x12TelecommandMessage\x18\x03 \x01(\x0b\x32\x14.telecommand_messageH\x00\x42\t\n\x07serviceb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.RRadsat_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _RADSAT_MESSAGE._serialized_start=101 + _RADSAT_MESSAGE._serialized_end=281 +# @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/RFileTransfer.proto b/radsat-sk/testing/protobuf_messages/RFileTransfer.proto index 96ec180..11c6d3a 100644 --- a/radsat-sk/testing/protobuf_messages/RFileTransfer.proto +++ b/radsat-sk/testing/protobuf_messages/RFileTransfer.proto @@ -1,3 +1,14 @@ +/* file: fileTransfer.proto + * date: January 18 2021 + * + * This proto file includes the raw definitions (using proto3 syntax) of + * messages that are to be compiled into C structs using the protoc library. + * + * The messages defined in this file will be used for file transfers, which + * focuses on the downlinked transmission of all data objects (images, telemetry + * data, etc.) from the RADSAT-SK Satellite to the Ground Station on Earth. + */ + syntax = "proto3"; // top level File Transfer message object @@ -63,26 +74,96 @@ message transceiver_telemetry { transmitter_telemetry transmitter = 2; ///< Transmitter Telemetry } +// Camera power related telemetry +// Used internally; not sent as standalone message +message camera_power_telemetry { + float current_3V3 = 1; + float current_5V = 2; + float current_SRAM_1 = 3; + float current_SRAM_2 = 4; + uint32 overcurrent_SRAM_1 = 5; + uint32 overcurrent_SRAM_2 = 6; +} + +// Camera configuration related telemetry +// Used internally; not sent as standalone message +message camera_configuration_telemetry { + uint32 detectionThreshold = 1; + uint32 autoAdjustMode = 2; + uint32 exposure = 3; + uint32 autoGainControl = 4; + uint32 blueGain = 5; + uint32 redGain = 6; +} + // Information about the state of the Camera message camera_telemetry { uint32 uptime = 1; ///< Local uptime (since last startup) in seconds + camera_power_telemetry powerTelemetry = 2; + camera_configuration_telemetry cameraOneTelemetry = 3; + camera_configuration_telemetry cameraTwoTelemetry = 4; +} + +// Data for the sun sensor telemetry +// Used internally; not sent as standalone message +message sun_sensor_data { + float xPos = 1; + float xNeg = 2; + float yPos = 3; + float yNeg = 4; + float zPos = 5; + float zNeg = 6; } // Information about the state of the Electrical Power Supply message eps_telemetry { - uint32 uptime = 1; + sun_sensor_data sunSensorData = 1; + float outputVoltageBCR = 2; + float outputVoltageBatteryBus = 3; + float outputVoltage5VBus = 4; + float outputVoltage3V3Bus = 5; + float outputCurrentBCR_mA = 6; + float outputCurrentBatteryBus = 7; + float outputCurrent5VBus = 8; + float outputCurrent3V3Bus = 9; + float PdbTemperature = 10; } // Information about the state of the Battery message battery_telemetry { - uint32 uptime = 1; + float outputVoltageBatteryBus = 1; + float outputVoltage5VBus = 2; + float outputVoltage3V3Bus = 3; + float outputCurrentBatteryBus = 4; + float outputCurrent5VBus = 5; + float outputCurrent3V3Bus = 6; + float batteryCurrentDirection = 7; + float motherboardTemp = 8; + float daughterboardTemp1 = 9; + float daughterboardTemp2 = 10; + float daughterboardTemp3 = 11; +} + +// Telemetry data for a single antenna microcontroller +// Used internally; not sent as standalone message +message antenna_side_data { + uint32 deployedAntenna1 = 1; + uint32 deployedAntenna2 = 2; + uint32 deployedAntenna3 = 3; + uint32 deployedAntenna4 = 4; + uint32 armed = 5; + float boardTemp = 6; + uint32 uptime = 7; } // Information about the state of the Antenna message antenna_telemetry { - uint32 uptime = 1; + antenna_side_data sideA = 1; + antenna_side_data sideB = 2; } + + // Payload Data for a single Dosimeter board // Used internally; not sent as standalone message message dosimeter_board_data { @@ -104,11 +185,10 @@ message dosimeter_data { // Enum for image types (i.e. sizes) enum image_type_t { - None = 0; - FullResolution = 1; ///< 1024 x 1024 = 1MB - HalfResolution = 2; ///< 512 x 512 = 256kB - QuarterResolution = 3; ///< 256 x 256 = 64kB - Thumbnail = 4; ///< 64 x 64 = 4kB + FullResolution = 0; ///< 1024 x 1024 = 1MB + HalfResolution = 1; ///< 512 x 512 = 256kB + QuarterResolution = 2; ///< 256 x 256 = 64kB + Thumbnail = 3; ///< 64 x 64 = 4kB } // Image Packet @@ -141,4 +221,4 @@ message error_record { message error_report_summary { repeated uint32 moduleErrorCount = 1; ///< Error counts for all modules repeated uint32 componentErrorCount = 2; ///< Error counts for all components -} \ No newline at end of file +} diff --git a/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py b/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py index 382e22e..dcb9d79 100644 --- a/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py +++ b/radsat-sk/testing/protobuf_messages/RFileTransfer_pb2.py @@ -13,15 +13,15 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RFileTransfer.proto\"\xa9\x04\n\x15\x66ile_transfer_message\x12&\n\x0cObcTelemetry\x18\x01 \x01(\x0b\x32\x0e.obc_telemetryH\x00\x12\x36\n\x14TransceiverTelemetry\x18\x02 \x01(\x0b\x32\x16.transceiver_telemetryH\x00\x12,\n\x0f\x43\x61meraTelemetry\x18\x03 \x01(\x0b\x32\x11.camera_telemetryH\x00\x12&\n\x0c\x45psTelemetry\x18\x04 \x01(\x0b\x32\x0e.eps_telemetryH\x00\x12.\n\x10\x42\x61tteryTelemetry\x18\x05 \x01(\x0b\x32\x12.battery_telemetryH\x00\x12.\n\x10\x41ntennaTelemetry\x18\x06 \x01(\x0b\x32\x12.antenna_telemetryH\x00\x12(\n\rDosimeterData\x18\x07 \x01(\x0b\x32\x0f.dosimeter_dataH\x00\x12$\n\x0bImagePacket\x18\x08 \x01(\x0b\x32\r.image_packetH\x00\x12\x31\n\x11ModuleErrorReport\x18\t \x01(\x0b\x32\x14.module_error_reportH\x00\x12\x37\n\x14\x43omponentErrorReport\x18\n \x01(\x0b\x32\x17.component_error_reportH\x00\x12\x33\n\x12\x45rrorReportSummary\x18\x0b \x01(\x0b\x32\x15.error_report_summaryH\x00\x42\t\n\x07message\"V\n\robc_telemetry\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x0e\n\x06uptime\x18\x02 \x01(\r\x12\x0f\n\x07rtcTime\x18\x03 \x01(\r\x12\x16\n\x0ertcTemperature\x18\x04 \x01(\r\"\x83\x02\n\x12receiver_telemetry\x12\x11\n\trxDoppler\x18\x01 \x01(\x02\x12\x0e\n\x06rxRssi\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\x12\x0e\n\x06\x66rames\x18\x0b \x01(\r\"\x81\x02\n\x15transmitter_telemetry\x12\x16\n\x0ereflectedPower\x18\x01 \x01(\x02\x12\x14\n\x0c\x66orwardPower\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\"k\n\x15transceiver_telemetry\x12%\n\x08receiver\x18\x01 \x01(\x0b\x32\x13.receiver_telemetry\x12+\n\x0btransmitter\x18\x02 \x01(\x0b\x32\x16.transmitter_telemetry\"\"\n\x10\x63\x61mera_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"\x1f\n\reps_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"#\n\x11\x62\x61ttery_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"#\n\x11\x61ntenna_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\"\xbd\x01\n\x14\x64osimeter_board_data\x12\x13\n\x0b\x63hannelZero\x18\x01 \x01(\x02\x12\x12\n\nchannelOne\x18\x02 \x01(\x02\x12\x12\n\nchannelTwo\x18\x03 \x01(\x02\x12\x14\n\x0c\x63hannelThree\x18\x04 \x01(\x02\x12\x13\n\x0b\x63hannelFour\x18\x05 \x01(\x02\x12\x13\n\x0b\x63hannelFive\x18\x06 \x01(\x02\x12\x12\n\nchannelSix\x18\x07 \x01(\x02\x12\x14\n\x0c\x63hannelSeven\x18\x08 \x01(\x02\"b\n\x0e\x64osimeter_data\x12\'\n\x08\x62oardOne\x18\x01 \x01(\x0b\x32\x15.dosimeter_board_data\x12\'\n\x08\x62oardTwo\x18\x02 \x01(\x0b\x32\x15.dosimeter_board_data\"E\n\x0cimage_packet\x12\n\n\x02id\x18\x01 \x01(\r\x12\x1b\n\x04type\x18\x02 \x01(\x0e\x32\r.image_type_t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"4\n\x13module_error_report\x12\x0e\n\x06module\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\":\n\x16\x63omponent_error_report\x12\x11\n\tcomponent\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\"3\n\x0c\x65rror_record\x12\x14\n\x0ctimeRecorded\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"M\n\x14\x65rror_report_summary\x12\x18\n\x10moduleErrorCount\x18\x01 \x03(\r\x12\x1b\n\x13\x63omponentErrorCount\x18\x02 \x03(\r*f\n\x0cimage_type_t\x12\x08\n\x04None\x10\x00\x12\x12\n\x0e\x46ullResolution\x10\x01\x12\x12\n\x0eHalfResolution\x10\x02\x12\x15\n\x11QuarterResolution\x10\x03\x12\r\n\tThumbnail\x10\x04\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RFileTransfer.proto\"\xa9\x04\n\x15\x66ile_transfer_message\x12&\n\x0cObcTelemetry\x18\x01 \x01(\x0b\x32\x0e.obc_telemetryH\x00\x12\x36\n\x14TransceiverTelemetry\x18\x02 \x01(\x0b\x32\x16.transceiver_telemetryH\x00\x12,\n\x0f\x43\x61meraTelemetry\x18\x03 \x01(\x0b\x32\x11.camera_telemetryH\x00\x12&\n\x0c\x45psTelemetry\x18\x04 \x01(\x0b\x32\x0e.eps_telemetryH\x00\x12.\n\x10\x42\x61tteryTelemetry\x18\x05 \x01(\x0b\x32\x12.battery_telemetryH\x00\x12.\n\x10\x41ntennaTelemetry\x18\x06 \x01(\x0b\x32\x12.antenna_telemetryH\x00\x12(\n\rDosimeterData\x18\x07 \x01(\x0b\x32\x0f.dosimeter_dataH\x00\x12$\n\x0bImagePacket\x18\x08 \x01(\x0b\x32\r.image_packetH\x00\x12\x31\n\x11ModuleErrorReport\x18\t \x01(\x0b\x32\x14.module_error_reportH\x00\x12\x37\n\x14\x43omponentErrorReport\x18\n \x01(\x0b\x32\x17.component_error_reportH\x00\x12\x33\n\x12\x45rrorReportSummary\x18\x0b \x01(\x0b\x32\x15.error_report_summaryH\x00\x42\t\n\x07message\"V\n\robc_telemetry\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x0e\n\x06uptime\x18\x02 \x01(\r\x12\x0f\n\x07rtcTime\x18\x03 \x01(\r\x12\x16\n\x0ertcTemperature\x18\x04 \x01(\r\"\x83\x02\n\x12receiver_telemetry\x12\x11\n\trxDoppler\x18\x01 \x01(\x02\x12\x0e\n\x06rxRssi\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\x12\x0e\n\x06\x66rames\x18\x0b \x01(\r\"\x81\x02\n\x15transmitter_telemetry\x12\x16\n\x0ereflectedPower\x18\x01 \x01(\x02\x12\x14\n\x0c\x66orwardPower\x18\x02 \x01(\x02\x12\x12\n\nbusVoltage\x18\x03 \x01(\x02\x12\x14\n\x0ctotalCurrent\x18\x04 \x01(\x02\x12\x11\n\ttxCurrent\x18\x05 \x01(\x02\x12\x11\n\trxCurrent\x18\x06 \x01(\x02\x12\x1d\n\x15powerAmplifierCurrent\x18\x07 \x01(\x02\x12!\n\x19powerAmplifierTemperature\x18\x08 \x01(\x02\x12\x18\n\x10\x62oardTemperature\x18\t \x01(\x02\x12\x0e\n\x06uptime\x18\n \x01(\r\"k\n\x15transceiver_telemetry\x12%\n\x08receiver\x18\x01 \x01(\x0b\x32\x13.receiver_telemetry\x12+\n\x0btransmitter\x18\x02 \x01(\x0b\x32\x16.transmitter_telemetry\"\xa9\x01\n\x16\x63\x61mera_power_telemetry\x12\x13\n\x0b\x63urrent_3V3\x18\x01 \x01(\x02\x12\x12\n\ncurrent_5V\x18\x02 \x01(\x02\x12\x16\n\x0e\x63urrent_SRAM_1\x18\x03 \x01(\x02\x12\x16\n\x0e\x63urrent_SRAM_2\x18\x04 \x01(\x02\x12\x1a\n\x12overcurrent_SRAM_1\x18\x05 \x01(\r\x12\x1a\n\x12overcurrent_SRAM_2\x18\x06 \x01(\r\"\xa2\x01\n\x1e\x63\x61mera_configuration_telemetry\x12\x1a\n\x12\x64\x65tectionThreshold\x18\x01 \x01(\r\x12\x16\n\x0e\x61utoAdjustMode\x18\x02 \x01(\r\x12\x10\n\x08\x65xposure\x18\x03 \x01(\r\x12\x17\n\x0f\x61utoGainControl\x18\x04 \x01(\r\x12\x10\n\x08\x62lueGain\x18\x05 \x01(\r\x12\x0f\n\x07redGain\x18\x06 \x01(\r\"\xcd\x01\n\x10\x63\x61mera_telemetry\x12\x0e\n\x06uptime\x18\x01 \x01(\r\x12/\n\x0epowerTelemetry\x18\x02 \x01(\x0b\x32\x17.camera_power_telemetry\x12;\n\x12\x63\x61meraOneTelemetry\x18\x03 \x01(\x0b\x32\x1f.camera_configuration_telemetry\x12;\n\x12\x63\x61meraTwoTelemetry\x18\x04 \x01(\x0b\x32\x1f.camera_configuration_telemetry\"e\n\x0fsun_sensor_data\x12\x0c\n\x04xPos\x18\x01 \x01(\x02\x12\x0c\n\x04xNeg\x18\x02 \x01(\x02\x12\x0c\n\x04yPos\x18\x03 \x01(\x02\x12\x0c\n\x04yNeg\x18\x04 \x01(\x02\x12\x0c\n\x04zPos\x18\x05 \x01(\x02\x12\x0c\n\x04zNeg\x18\x06 \x01(\x02\"\xbb\x02\n\reps_telemetry\x12\'\n\rsunSensorData\x18\x01 \x01(\x0b\x32\x10.sun_sensor_data\x12\x18\n\x10outputVoltageBCR\x18\x02 \x01(\x02\x12\x1f\n\x17outputVoltageBatteryBus\x18\x03 \x01(\x02\x12\x1a\n\x12outputVoltage5VBus\x18\x04 \x01(\x02\x12\x1b\n\x13outputVoltage3V3Bus\x18\x05 \x01(\x02\x12\x1b\n\x13outputCurrentBCR_mA\x18\x06 \x01(\x02\x12\x1f\n\x17outputCurrentBatteryBus\x18\x07 \x01(\x02\x12\x1a\n\x12outputCurrent5VBus\x18\x08 \x01(\x02\x12\x1b\n\x13outputCurrent3V3Bus\x18\t \x01(\x02\x12\x16\n\x0ePdbTemperature\x18\n \x01(\x02\"\xd5\x02\n\x11\x62\x61ttery_telemetry\x12\x1f\n\x17outputVoltageBatteryBus\x18\x01 \x01(\x02\x12\x1a\n\x12outputVoltage5VBus\x18\x02 \x01(\x02\x12\x1b\n\x13outputVoltage3V3Bus\x18\x03 \x01(\x02\x12\x1f\n\x17outputCurrentBatteryBus\x18\x04 \x01(\x02\x12\x1a\n\x12outputCurrent5VBus\x18\x05 \x01(\x02\x12\x1b\n\x13outputCurrent3V3Bus\x18\x06 \x01(\x02\x12\x1f\n\x17\x62\x61tteryCurrentDirection\x18\x07 \x01(\x02\x12\x17\n\x0fmotherboardTemp\x18\x08 \x01(\x02\x12\x1a\n\x12\x64\x61ughterboardTemp1\x18\t \x01(\x02\x12\x1a\n\x12\x64\x61ughterboardTemp2\x18\n \x01(\x02\x12\x1a\n\x12\x64\x61ughterboardTemp3\x18\x0b \x01(\x02\"\xad\x01\n\x11\x61ntenna_side_data\x12\x18\n\x10\x64\x65ployedAntenna1\x18\x01 \x01(\r\x12\x18\n\x10\x64\x65ployedAntenna2\x18\x02 \x01(\r\x12\x18\n\x10\x64\x65ployedAntenna3\x18\x03 \x01(\r\x12\x18\n\x10\x64\x65ployedAntenna4\x18\x04 \x01(\r\x12\r\n\x05\x61rmed\x18\x05 \x01(\r\x12\x11\n\tboardTemp\x18\x06 \x01(\x02\x12\x0e\n\x06uptime\x18\x07 \x01(\r\"Y\n\x11\x61ntenna_telemetry\x12!\n\x05sideA\x18\x01 \x01(\x0b\x32\x12.antenna_side_data\x12!\n\x05sideB\x18\x02 \x01(\x0b\x32\x12.antenna_side_data\"\xbd\x01\n\x14\x64osimeter_board_data\x12\x13\n\x0b\x63hannelZero\x18\x01 \x01(\x02\x12\x12\n\nchannelOne\x18\x02 \x01(\x02\x12\x12\n\nchannelTwo\x18\x03 \x01(\x02\x12\x14\n\x0c\x63hannelThree\x18\x04 \x01(\x02\x12\x13\n\x0b\x63hannelFour\x18\x05 \x01(\x02\x12\x13\n\x0b\x63hannelFive\x18\x06 \x01(\x02\x12\x12\n\nchannelSix\x18\x07 \x01(\x02\x12\x14\n\x0c\x63hannelSeven\x18\x08 \x01(\x02\"b\n\x0e\x64osimeter_data\x12\'\n\x08\x62oardOne\x18\x01 \x01(\x0b\x32\x15.dosimeter_board_data\x12\'\n\x08\x62oardTwo\x18\x02 \x01(\x0b\x32\x15.dosimeter_board_data\"E\n\x0cimage_packet\x12\n\n\x02id\x18\x01 \x01(\r\x12\x1b\n\x04type\x18\x02 \x01(\x0e\x32\r.image_type_t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"4\n\x13module_error_report\x12\x0e\n\x06module\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\":\n\x16\x63omponent_error_report\x12\x11\n\tcomponent\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\"3\n\x0c\x65rror_record\x12\x14\n\x0ctimeRecorded\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"M\n\x14\x65rror_report_summary\x12\x18\n\x10moduleErrorCount\x18\x01 \x03(\r\x12\x1b\n\x13\x63omponentErrorCount\x18\x02 \x03(\r*\\\n\x0cimage_type_t\x12\x12\n\x0e\x46ullResolution\x10\x00\x12\x12\n\x0eHalfResolution\x10\x01\x12\x15\n\x11QuarterResolution\x10\x02\x12\r\n\tThumbnail\x10\x03\x62\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RFileTransfer_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - _IMAGE_TYPE_T._serialized_start=2050 - _IMAGE_TYPE_T._serialized_end=2152 + _IMAGE_TYPE_T._serialized_start=3484 + _IMAGE_TYPE_T._serialized_end=3576 _FILE_TRANSFER_MESSAGE._serialized_start=24 _FILE_TRANSFER_MESSAGE._serialized_end=577 _OBC_TELEMETRY._serialized_start=579 @@ -32,26 +32,34 @@ _TRANSMITTER_TELEMETRY._serialized_end=1187 _TRANSCEIVER_TELEMETRY._serialized_start=1189 _TRANSCEIVER_TELEMETRY._serialized_end=1296 - _CAMERA_TELEMETRY._serialized_start=1298 - _CAMERA_TELEMETRY._serialized_end=1332 - _EPS_TELEMETRY._serialized_start=1334 - _EPS_TELEMETRY._serialized_end=1365 - _BATTERY_TELEMETRY._serialized_start=1367 - _BATTERY_TELEMETRY._serialized_end=1402 - _ANTENNA_TELEMETRY._serialized_start=1404 - _ANTENNA_TELEMETRY._serialized_end=1439 - _DOSIMETER_BOARD_DATA._serialized_start=1442 - _DOSIMETER_BOARD_DATA._serialized_end=1631 - _DOSIMETER_DATA._serialized_start=1633 - _DOSIMETER_DATA._serialized_end=1731 - _IMAGE_PACKET._serialized_start=1733 - _IMAGE_PACKET._serialized_end=1802 - _MODULE_ERROR_REPORT._serialized_start=1804 - _MODULE_ERROR_REPORT._serialized_end=1856 - _COMPONENT_ERROR_REPORT._serialized_start=1858 - _COMPONENT_ERROR_REPORT._serialized_end=1916 - _ERROR_RECORD._serialized_start=1918 - _ERROR_RECORD._serialized_end=1969 - _ERROR_REPORT_SUMMARY._serialized_start=1971 - _ERROR_REPORT_SUMMARY._serialized_end=2048 + _CAMERA_POWER_TELEMETRY._serialized_start=1299 + _CAMERA_POWER_TELEMETRY._serialized_end=1468 + _CAMERA_CONFIGURATION_TELEMETRY._serialized_start=1471 + _CAMERA_CONFIGURATION_TELEMETRY._serialized_end=1633 + _CAMERA_TELEMETRY._serialized_start=1636 + _CAMERA_TELEMETRY._serialized_end=1841 + _SUN_SENSOR_DATA._serialized_start=1843 + _SUN_SENSOR_DATA._serialized_end=1944 + _EPS_TELEMETRY._serialized_start=1947 + _EPS_TELEMETRY._serialized_end=2262 + _BATTERY_TELEMETRY._serialized_start=2265 + _BATTERY_TELEMETRY._serialized_end=2606 + _ANTENNA_SIDE_DATA._serialized_start=2609 + _ANTENNA_SIDE_DATA._serialized_end=2782 + _ANTENNA_TELEMETRY._serialized_start=2784 + _ANTENNA_TELEMETRY._serialized_end=2873 + _DOSIMETER_BOARD_DATA._serialized_start=2876 + _DOSIMETER_BOARD_DATA._serialized_end=3065 + _DOSIMETER_DATA._serialized_start=3067 + _DOSIMETER_DATA._serialized_end=3165 + _IMAGE_PACKET._serialized_start=3167 + _IMAGE_PACKET._serialized_end=3236 + _MODULE_ERROR_REPORT._serialized_start=3238 + _MODULE_ERROR_REPORT._serialized_end=3290 + _COMPONENT_ERROR_REPORT._serialized_start=3292 + _COMPONENT_ERROR_REPORT._serialized_end=3350 + _ERROR_RECORD._serialized_start=3352 + _ERROR_RECORD._serialized_end=3403 + _ERROR_REPORT_SUMMARY._serialized_start=3405 + _ERROR_REPORT_SUMMARY._serialized_end=3482 # @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/RProtocol.proto b/radsat-sk/testing/protobuf_messages/RProtocol.proto index ee3b375..08079c1 100644 --- a/radsat-sk/testing/protobuf_messages/RProtocol.proto +++ b/radsat-sk/testing/protobuf_messages/RProtocol.proto @@ -9,22 +9,22 @@ * Station. */ - syntax = "proto3"; +syntax = "proto3"; + +// top level File Transfer message object +message protocol_message { + oneof message { + ack Ack = 1; + nack Nack = 2; + } +} - // top level File Transfer message object - message protocol_message { - oneof message { - ack Ack = 1; - nack Nack = 2; - } - } - // Positive Acknowledgement message ack { - uint32 resp = 1; + uint32 resp = 1; ///< dummy variable } // Negative Acknowledgement message nack { - uint32 resp = 1; + uint32 resp = 1; ///< dummy variable } \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/RProtocol_pb2.py b/radsat-sk/testing/protobuf_messages/RProtocol_pb2.py new file mode 100644 index 0000000..e40c077 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RProtocol_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: RProtocol.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fRProtocol.proto\"I\n\x10protocol_message\x12\x13\n\x03\x41\x63k\x18\x01 \x01(\x0b\x32\x04.ackH\x00\x12\x15\n\x04Nack\x18\x02 \x01(\x0b\x32\x05.nackH\x00\x42\t\n\x07message\"\x13\n\x03\x61\x63k\x12\x0c\n\x04resp\x18\x01 \x01(\r\"\x14\n\x04nack\x12\x0c\n\x04resp\x18\x01 \x01(\rb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RProtocol_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _PROTOCOL_MESSAGE._serialized_start=19 + _PROTOCOL_MESSAGE._serialized_end=92 + _ACK._serialized_start=94 + _ACK._serialized_end=113 + _NACK._serialized_start=115 + _NACK._serialized_end=135 +# @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/RRadsat.proto b/radsat-sk/testing/protobuf_messages/RRadsat.proto index 5990545..f41fa69 100644 --- a/radsat-sk/testing/protobuf_messages/RRadsat.proto +++ b/radsat-sk/testing/protobuf_messages/RRadsat.proto @@ -23,4 +23,4 @@ message radsat_message { file_transfer_message FileTransferMessage = 2; telecommand_message TelecommandMessage = 3; } -} \ No newline at end of file +} diff --git a/radsat-sk/testing/protobuf_messages/RRadsat_pb2.py b/radsat-sk/testing/protobuf_messages/RRadsat_pb2.py new file mode 100644 index 0000000..8a45f2a --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/RRadsat_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: RRadsat.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +import RProtocol_pb2 as RProtocol__pb2 +import RTelecommands_pb2 as RTelecommands__pb2 +import RFileTransfer_pb2 as RFileTransfer__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rRRadsat.proto\x1a\x0fRProtocol.proto\x1a\x13RTelecommands.proto\x1a\x13RFileTransfer.proto\"\xb4\x01\n\x0eradsat_message\x12,\n\x0fProtocolMessage\x18\x01 \x01(\x0b\x32\x11.protocol_messageH\x00\x12\x35\n\x13\x46ileTransferMessage\x18\x02 \x01(\x0b\x32\x16.file_transfer_messageH\x00\x12\x32\n\x12TelecommandMessage\x18\x03 \x01(\x0b\x32\x14.telecommand_messageH\x00\x42\t\n\x07serviceb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RRadsat_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _RADSAT_MESSAGE._serialized_start=77 + _RADSAT_MESSAGE._serialized_end=257 +# @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/RTelecommands.proto b/radsat-sk/testing/protobuf_messages/RTelecommands.proto index fa9de5e..dd2eef5 100644 --- a/radsat-sk/testing/protobuf_messages/RTelecommands.proto +++ b/radsat-sk/testing/protobuf_messages/RTelecommands.proto @@ -1,3 +1,13 @@ +/* file: telecommands.proto + * date: January 18 2021 + * + * This proto file includes the raw definitions (using proto3 syntax) of + * messages that are to be compiled into C structs using the protoc library. + * + * The messages defined in this file will be used for sending telecommands to + * the RADSAT-SK Satellite from the Ground Station on Earth. + */ + syntax = "proto3"; // top level File Transfer message object @@ -19,7 +29,7 @@ message begin_pass { // Inform OBC that there are no more telecommands; Ground Station is ready to receive Files (telemetry, images, etc.) message begin_file_transfer { - bool begin = 1; + uint32 resp = 1; ///< dummy variable } // Inform the OBC that it is to cease all downlink transmissions immediately (no ACK will follow this message) @@ -29,7 +39,7 @@ message cease_transmission { // Inform the OBC that it can end its previous halting of all downlink transmissions message resume_transmission { - bool resume = 1; + uint32 resp = 1; ///< dummy variable } // Update the OBC's local time on its Real-Time Clock @@ -40,12 +50,11 @@ message update_time { // Instruct the OBC to reset a certain component via Software reset (hard=0) or Power-Cycle (hard=1) message reset { enum device_t { - None = 0; - Obc = 1; - Transmitter = 2; - Receiver = 3; - AntennaSideA = 4; - AntennaSideB = 5; + Obc = 0; + Transmitter = 1; + Receiver = 2; + AntennaSideA = 3; + AntennaSideB = 4; } device_t device = 1; uint32 hard = 2; diff --git a/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py b/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py index 467f522..ea25ef1 100644 --- a/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py +++ b/radsat-sk/testing/protobuf_messages/RTelecommands_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RTelecommands.proto\"\x98\x02\n\x13telecommand_message\x12 \n\tBeginPass\x18\x01 \x01(\x0b\x32\x0b.begin_passH\x00\x12\x31\n\x11\x42\x65ginFileTransfer\x18\x02 \x01(\x0b\x32\x14.begin_file_transferH\x00\x12\x30\n\x11\x43\x65\x61seTransmission\x18\x03 \x01(\x0b\x32\x13.cease_transmissionH\x00\x12\x32\n\x12ResumeTransmission\x18\x04 \x01(\x0b\x32\x14.resume_transmissionH\x00\x12\"\n\nUpdateTime\x18\x05 \x01(\x0b\x32\x0c.update_timeH\x00\x12\x17\n\x05Reset\x18\x06 \x01(\x0b\x32\x06.resetH\x00\x42\t\n\x07message\" \n\nbegin_pass\x12\x12\n\npassLength\x18\x01 \x01(\r\"$\n\x13\x62\x65gin_file_transfer\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"&\n\x12\x63\x65\x61se_transmission\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"%\n\x13resume_transmission\x12\x0e\n\x06resume\x18\x01 \x01(\x08\"\x1f\n\x0bupdate_time\x12\x10\n\x08unixTime\x18\x01 \x01(\r\"\x98\x01\n\x05reset\x12\x1f\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x0f.reset.device_t\x12\x0c\n\x04hard\x18\x02 \x01(\r\"`\n\x08\x64\x65vice_t\x12\x08\n\x04None\x10\x00\x12\x07\n\x03Obc\x10\x01\x12\x0f\n\x0bTransmitter\x10\x02\x12\x0c\n\x08Receiver\x10\x03\x12\x10\n\x0c\x41ntennaSideA\x10\x04\x12\x10\n\x0c\x41ntennaSideB\x10\x05\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13RTelecommands.proto\"\x98\x02\n\x13telecommand_message\x12 \n\tBeginPass\x18\x01 \x01(\x0b\x32\x0b.begin_passH\x00\x12\x31\n\x11\x42\x65ginFileTransfer\x18\x02 \x01(\x0b\x32\x14.begin_file_transferH\x00\x12\x30\n\x11\x43\x65\x61seTransmission\x18\x03 \x01(\x0b\x32\x13.cease_transmissionH\x00\x12\x32\n\x12ResumeTransmission\x18\x04 \x01(\x0b\x32\x14.resume_transmissionH\x00\x12\"\n\nUpdateTime\x18\x05 \x01(\x0b\x32\x0c.update_timeH\x00\x12\x17\n\x05Reset\x18\x06 \x01(\x0b\x32\x06.resetH\x00\x42\t\n\x07message\" \n\nbegin_pass\x12\x12\n\npassLength\x18\x01 \x01(\r\"#\n\x13\x62\x65gin_file_transfer\x12\x0c\n\x04resp\x18\x01 \x01(\r\"&\n\x12\x63\x65\x61se_transmission\x12\x10\n\x08\x64uration\x18\x01 \x01(\r\"#\n\x13resume_transmission\x12\x0c\n\x04resp\x18\x01 \x01(\r\"\x1f\n\x0bupdate_time\x12\x10\n\x08unixTime\x18\x01 \x01(\r\"\x8e\x01\n\x05reset\x12\x1f\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x0f.reset.device_t\x12\x0c\n\x04hard\x18\x02 \x01(\r\"V\n\x08\x64\x65vice_t\x12\x07\n\x03Obc\x10\x00\x12\x0f\n\x0bTransmitter\x10\x01\x12\x0c\n\x08Receiver\x10\x02\x12\x10\n\x0c\x41ntennaSideA\x10\x03\x12\x10\n\x0c\x41ntennaSideB\x10\x04\x62\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RTelecommands_pb2', globals()) @@ -25,15 +25,15 @@ _BEGIN_PASS._serialized_start=306 _BEGIN_PASS._serialized_end=338 _BEGIN_FILE_TRANSFER._serialized_start=340 - _BEGIN_FILE_TRANSFER._serialized_end=376 - _CEASE_TRANSMISSION._serialized_start=378 - _CEASE_TRANSMISSION._serialized_end=416 - _RESUME_TRANSMISSION._serialized_start=418 - _RESUME_TRANSMISSION._serialized_end=455 - _UPDATE_TIME._serialized_start=457 - _UPDATE_TIME._serialized_end=488 - _RESET._serialized_start=491 - _RESET._serialized_end=643 - _RESET_DEVICE_T._serialized_start=547 - _RESET_DEVICE_T._serialized_end=643 + _BEGIN_FILE_TRANSFER._serialized_end=375 + _CEASE_TRANSMISSION._serialized_start=377 + _CEASE_TRANSMISSION._serialized_end=415 + _RESUME_TRANSMISSION._serialized_start=417 + _RESUME_TRANSMISSION._serialized_end=452 + _UPDATE_TIME._serialized_start=454 + _UPDATE_TIME._serialized_end=485 + _RESET._serialized_start=488 + _RESET._serialized_end=630 + _RESET_DEVICE_T._serialized_start=544 + _RESET_DEVICE_T._serialized_end=630 # @@protoc_insertion_point(module_scope) diff --git a/radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc b/radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc index 28eb2294f3120c28cef1a0eb1771079eb0167a35..d397b4b453bd2669717dbe2ec3bc6b5bbe053321 100644 GIT binary patch delta 2288 zcmah~&2Jk;6wf*zPR3cs-l)zhK+=Rm6AB4&nnTrIwvJOG$OpC)ltMIGXC}#_^^P^W zOPi{~7m&C{dqIT*0))hY3q4Y)R}OIELt=#xNbnCJA@OnHz1_9rkW^UmPrL6oZ{BZy zZ)W!XQ@_tbBZ>~PeFVPF^Iluy&<1_F)4_IK& z^I3Ra04%T~e+Hfx0Sj!X+JpbuE5SWwKh=|c@T)S~-}+P`g*~&urAeFOHkZ`nHg9lG z9%-W_v*%069gi+jiuwR@(;q5iA`!bMoPF!Sm!@Y4r%N=XGw$&{4A%}NcMpZlBJHXM zI!)gb27BFiy*0tOp4yFS=Exww(-f{Rc_dxc#>fZ`y=hubNjRPqcBEa^U})X;ITCs- zc!Z=SXHg(l`L#lFvC3d7J>JshNj9>!)^;|sEmItudyMhdh!!&&4nIjkPcy~IcGBYv z=p@%}3rucB&5YFlfA%ydBd+gImpiVIl$oBX4U@h*o5D@{k8kVzAn8239U&L@8{d$N zy9{r4fonxJrEr?NNTNrn=`T`5|C2`b(6)|KJ3St#6>+5 zS^Jqn@}}c)$1$mEF&>`+*maCIZE?hz5t9qat#XzrM*C6KBBpgJX)(E9&L&++E*O>c zo3g=Ka=YZoP-kh$cFU3hzv)>G9@(Q#@0{p8xxA-HKZ-Z>>)7~AQJXuvrew^Gfj~8vO2V*ao_I_7P(Jqku%f2b00bSvg zrjnuBq2H)Gre)`PgLN{IeqZhBvHny8mn^kL`{DT^!XpH80DvJZqyZKY-bHv1;rl^= z9}wo?LuoA_{Dkl`!qp7Gb%ehV{z2Fs2A~KZBYc7oBK(L@P^STPl=C9O8p3^m*~?*? zQYQ8&4TGu7L@OMmb>FfXm*L2P5C=A&Yf9mXy1y@b;gcO^DC6#)w3?ofvJWG zg)L!$7n>+2mYwAxSuR&gmDSDK zMkNfs%FHNX@JD9S2sOG@Ez=S`p{pQPz?Kn?drPIOYsSqot?g_Agn78@+tX6lgKmYv z*6^G2W3*(fl`96_+<2v2p|$c$<+XCHvU6*)O_Vm)S5|LsRgBu|#(MDO@I*dGt6S@| yT3)YiROqr%GlJiS=ZC7R%jNiONd0JF99AsHgU{7>6g#+mrtOvU&y|j80)V`n~w(hnFX(41f+3i4fGGsD` zT}q31@w((9UKA0$c#-uRh@Zfl)Pr9^5W$mqJm{Vbw_jZJgzF;9w4ZNJ zqi<)&-Ua)?_?oicj9-1O)w)(}di%P5XZK2(Gij9Svvy05oYr=05xFeOiDH}$n3BWL zLzN;^$$&NO%l4Anx`Kj;D#hgR|BGm|bd;~rLsA`x4ZUc9LBj6Z#4@>~d6m4Jq zQY9o72ZZ2eUx+@}^Fi|jJ0vO+9y5vO|D W0$)rb{j2`W-q%kXdu3#oPk#fG{-YTR#i@azVsshHMbfs8jD9C+Lp}8y7s)DwtK^5xX zm8%TeXp06^X+D+lUdWv{Xn?e!>El%%K)7;()OWIzY9rbAcQl4=9-~(y=hBrtFKDCddKmm zAC=~Yp&uh_Wm0Xn6Q=6DqLE*^ZKE6Nnq@=hAfnX0vb}ET((^x8Mgiz)YlC&m_O#--m1=gzLhcWQb33vuAlLA?mDycm& z`biy=d>_u7c@SeRctoh1G`f_UzEuQi-_3aaZ+1VK}ao~bbFtyEIG#Qx5BsZ z(JB0kytno#`U~6hxbw~KGjBeFFc$WyX`a{zoXtbpHe*MIwuCin`nR0XVA^;$ve!qy0Ds4l+^v?0Gu)Pi!R zpKTKJT19QpXAhtaTi=yyP5A1whtMWvDT{nyoNtrLg~m>a0d4$zDZb2)tG6;)BJ+HmL+?xtOtXs0ne%@gLp=5Pcd_%w>#nDAThC!OvZQp7YN?dyB(yQG~SJkh44l0((fqe~p@Ci*;!GS6o zwD)vwVoa!yG1{I`ItgJ>yO>8eh*My(8!}CpqcYCNfg1M=nV#vZcr_JP%8-o$BIm@i zZ58mnSs}9zV|N;+$jnrjc&K(esH|XAUx`v~-Wi*OT6dw`tl06~><+Xr>k(oD3*0cc z0+Q*G)gRc0!%wH9FGKX~AX~${^Szi1;%U^sT}M7QCn5FRkmrUYniRCcKKJCPh0p8( zKE$iow&*HN(tySsHSn<4w|gUeGO+F5@c=ck7-C)&=Bdk4VN-x0CO;LH{T?Lw8~bma zGoj~>?=$zC)2IG4f;i>QnQf1pV@9Vj>DZ~8<#Q%d%;HLMvD&Zrg_8nLgLvY|#Sv?; x+$-)BR;Zg?&dcv2N~R&a7ki}eT|r9vy1F=JT^zNn*7dr!p<1e;8G@Gn{Rc2;ff@h+ literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/__pycache__/RTelecommands_pb2.cpython-310.pyc b/radsat-sk/testing/protobuf_messages/__pycache__/RTelecommands_pb2.cpython-310.pyc index 4c7d5a381811abd1b4c8a40ee262eae6f7b18a2a..2c9ca98d723833c3c4385164453f2a62e05bcc8f 100644 GIT binary patch delta 244 zcmeyz`;nJ7pO=@50SNwQK1`C@$eYQ?Shu;HF^rK>dGa|XFC8>FNiNTpEsg457Xd+Gm tER+8-o9mS`GB9LTf{6JbVj+k)0wRuqh^HXp1&AnP0ul!9y7U diff --git a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py b/radsat-sk/testing/protobuf_messages/message_generator.py similarity index 55% rename from radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py rename to radsat-sk/testing/protobuf_messages/message_generator.py index 5f79485..f0f6376 100644 --- a/radsat-sk/testing/protobuf_messages/file_transfer_message_reader_rev1.py +++ b/radsat-sk/testing/protobuf_messages/message_generator.py @@ -1,9 +1,9 @@ from time import * from numpy import * import RRadsat_pb2 as radsat -import RProtocol_pb2 as protocol -import RFileTransfer_pb2 as fileTransfer -import RTelecommands_pb2 as telecommands +#import RProtocol_pb2 as protocol +#import RFileTransfer_pb2 as fileTransfer +#import RTelecommands_pb2 as telecommands from crc import CrcCalculator, Configuration ####################################### Read / Write Message Functions ####################################### @@ -13,19 +13,24 @@ def writeToFile(protoMessage, fileName = "serializedFile"): fw.write(protoMessage.SerializeToString()) fw.close() -def readMessage(msgClass, fileName = "serializedFile", withHeader = False): +def readMessage(msgClass, fileName = "serializedFile", xorCipher = True, withHeader = False): # Read data from file if withHeader: fileName += "_header" fb = open("./output/" + fileName,"rb") encryptedMessage = list(fb.read()) - decryptedMessage = [] - with open("encryption_key","rb") as fk: - key = fk.read() - for i in encryptedMessage: - decryptedMessage.append(i ^key[0]) + + if xorCipher: + decryptedMessage = [] + with open("./xorCipher/new_key","rb") as fk: + key = fk.read() + for i in encryptedMessage: + decryptedMessage.append(i ^key[0]) + + else: + decryptedMessage = encryptedMessage removedHeader = bytes(decryptedMessage[9:]) output = msgClass @@ -43,17 +48,17 @@ def readMessage(msgClass, fileName = "serializedFile", withHeader = False): print(output) print("#########################\n") -def addHeader(fileName = "serializedFile", checkHeader=False): +def addHeader(fileName = "serializedFile", xorCipher = True, checkHeader=False): # Make header fb = open("./output/" + fileName,"rb") messageData = fb.read() - preamble = int(0x2018).to_bytes(2,byteorder="big") + preamble = int(0x2018).to_bytes(2,byteorder="little") - length = len(messageData).to_bytes(1,byteorder="big") + length = len(messageData).to_bytes(1,byteorder="little") - unixTime = int(time()).to_bytes(4,byteorder="big") + unixTime= int(time()).to_bytes(4,byteorder="little") header = length + unixTime + messageData @@ -65,33 +70,40 @@ def addHeader(fileName = "serializedFile", checkHeader=False): reverse_output=True configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output) crc_calculator = CrcCalculator(configuration, True) - checksum = int(crc_calculator.calculate_checksum(header)).to_bytes(2,byteorder="big") + checksum = int(crc_calculator.calculate_checksum(header)).to_bytes(2,byteorder="little") + checksum_reversed = bytes(reversed(checksum)) if checkHeader: print("Header data : ", "".join(f"0x{i:02x} " for i in header)) - print("Checksum : 0x" + str(checksum.hex()).upper()) + print("Checksum : 0x" + str(checksum_reversed.hex()).upper()) headerMessage = list(preamble + checksum + header) - # Encrypt message with header - with open("encryption_key","rb") as fk: - key = fk.read() + if xorCipher: + + with open("./xorCipher/new_key","rb") as fk: + key = fk.read() - fullMessage = [] + fullMessage = [] - for i in headerMessage: - fullMessage.append(i ^key[0]) + for i in headerMessage: + fullMessage.append(i ^key[0]) + + else: + fullMessage = headerMessage fh = open("./output/" + fileName + "_header","wb") fh.write(bytearray(fullMessage)) + print("Length = ",len(fullMessage)) fh.close() def printDataAsHex(fileName, header = False): if header: fileName = fileName + "_header" - with open('./output/' + fileName,'rb') as fr: - out = bytearray(fr.read()).hex() - return out + with open(fileName,'rb') as fr: + out = bytearray(fr.read()) + hexData = ("".join(f"0x{i:02x}, " for i in out)) + return hexData ######################################### Populate Message Functions ######################################### @@ -141,22 +153,82 @@ def makeFileTransferMessage(): break elif messageType == "3": - message.FileTransferMessage.CameraTelemetry.uptime = 5744 + message.FileTransferMessage.CameraTelemetry.uptime = 5 + + message.FileTransferMessage.CameraTelemetry.powerTelemetry.current_3V3 = 5.3 + message.FileTransferMessage.CameraTelemetry.powerTelemetry.current_5V = 5.3 + message.FileTransferMessage.CameraTelemetry.powerTelemetry.current_SRAM_1 = 5.3 + message.FileTransferMessage.CameraTelemetry.powerTelemetry.current_SRAM_2 = 5.3 + message.FileTransferMessage.CameraTelemetry.powerTelemetry.overcurrent_SRAM_1 = 5 + message.FileTransferMessage.CameraTelemetry.powerTelemetry.overcurrent_SRAM_2 = 5 + + message.FileTransferMessage.CameraTelemetry.cameraOneTelemetry.detectionThreshold = 5 + message.FileTransferMessage.CameraTelemetry.cameraOneTelemetry.autoAdjustMode = 5 + message.FileTransferMessage.CameraTelemetry.cameraOneTelemetry.exposure = 5 + message.FileTransferMessage.CameraTelemetry.cameraOneTelemetry.autoGainControl = 5 + message.FileTransferMessage.CameraTelemetry.cameraOneTelemetry.blueGain = 5 + message.FileTransferMessage.CameraTelemetry.cameraOneTelemetry.redGain = 5 + + message.FileTransferMessage.CameraTelemetry.cameraTwoTelemetry.detectionThreshold = 5 + message.FileTransferMessage.CameraTelemetry.cameraTwoTelemetry.autoAdjustMode = 5 + message.FileTransferMessage.CameraTelemetry.cameraTwoTelemetry.exposure = 5 + message.FileTransferMessage.CameraTelemetry.cameraTwoTelemetry.autoGainControl = 5 + message.FileTransferMessage.CameraTelemetry.cameraTwoTelemetry.blueGain = 5 + message.FileTransferMessage.CameraTelemetry.cameraTwoTelemetry.redGain = 5 + msgType = "CameraTelemetry" break elif messageType == "4": - message.FileTransferMessage.EpsTelemetry.uptime = 2344 + message.FileTransferMessage.EpsTelemetry.sunSensorData.xPos = 2344 + message.FileTransferMessage.EpsTelemetry.sunSensorData.xNeg = 2344 + message.FileTransferMessage.EpsTelemetry.sunSensorData.yPos = 2344 + message.FileTransferMessage.EpsTelemetry.sunSensorData.yNeg = 2344 + message.FileTransferMessage.EpsTelemetry.sunSensorData.zPos = 2344 + message.FileTransferMessage.EpsTelemetry.sunSensorData.zNeg = 2344 + message.FileTransferMessage.EpsTelemetry.outputVoltageBCR = 2344 + message.FileTransferMessage.EpsTelemetry.outputVoltageBatteryBus = 2344 + message.FileTransferMessage.EpsTelemetry.outputVoltage5VBus = 2344 + message.FileTransferMessage.EpsTelemetry.outputVoltage3V3Bus = 2344 + message.FileTransferMessage.EpsTelemetry.outputCurrentBCR_mA = 2344 + message.FileTransferMessage.EpsTelemetry.outputCurrentBatteryBus = 2344 + message.FileTransferMessage.EpsTelemetry.outputCurrent5VBus = 2344 + message.FileTransferMessage.EpsTelemetry.outputCurrent3V3Bus = 2344 + message.FileTransferMessage.EpsTelemetry.PdbTemperature = 2344 msgType = "EpsTelemetry" break elif messageType == "5": - message.FileTransferMessage.BatteryTelemetry.uptime = 3423 + message.FileTransferMessage.BatteryTelemetry.outputVoltageBatteryBus = 3423 + message.FileTransferMessage.BatteryTelemetry.outputVoltage5VBus = 3423 + message.FileTransferMessage.BatteryTelemetry.outputVoltage3V3Bus = 3423 + message.FileTransferMessage.BatteryTelemetry.outputCurrentBatteryBus = 3423 + message.FileTransferMessage.BatteryTelemetry.outputCurrent5VBus = 3423 + message.FileTransferMessage.BatteryTelemetry.outputCurrent3V3Bus = 3423 + message.FileTransferMessage.BatteryTelemetry.batteryCurrentDirection = 3423 + message.FileTransferMessage.BatteryTelemetry.motherboardTemp = 3423 + message.FileTransferMessage.BatteryTelemetry.daughterboardTemp1 = 3423 + message.FileTransferMessage.BatteryTelemetry.daughterboardTemp2 = 3423 + message.FileTransferMessage.BatteryTelemetry.daughterboardTemp3 = 3423 msgType = "BatteryTelemetry" break elif messageType == "6": - message.FileTransferMessage.AntennaTelemetry.uptime = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.deployedAntenna1 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.deployedAntenna2 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.deployedAntenna3 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.deployedAntenna4 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.armed = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.boardTemp = 9368 + message.FileTransferMessage.AntennaTelemetry.sideA.uptime = 9368 + + message.FileTransferMessage.AntennaTelemetry.sideB.deployedAntenna1 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideB.deployedAntenna2 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideB.deployedAntenna3 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideB.deployedAntenna4 = 9368 + message.FileTransferMessage.AntennaTelemetry.sideB.armed = 9368 + message.FileTransferMessage.AntennaTelemetry.sideB.boardTemp = 9368 + message.FileTransferMessage.AntennaTelemetry.sideB.uptime = 9368 msgType = "AntennaTelemetry" break @@ -222,13 +294,12 @@ def makeTelecommandMessage(): (3) Cease Transmission\n(4) Resume Transmission\n(5) Update Time\n(6) Reset\n") if messageType == "1": - message.TelecommandMessage.BeginPass.passLength = 10 + message.TelecommandMessage.BeginPass.passLength = 11 msgType = "BeginPass" - print("MADE IT") break elif messageType == "2": - message.TelecommandMessage.BeginFileTransfer.begin = True + message.TelecommandMessage.BeginFileTransfer.resp = 0 msgType = "BeginFileTransfer" break @@ -238,7 +309,7 @@ def makeTelecommandMessage(): break elif messageType == "4": - message.TelecommandMessage.ResumeTransmission.resume = True + message.TelecommandMessage.ResumeTransmission.resp = 0 msgType = "ResumeTransmission" break @@ -248,8 +319,8 @@ def makeTelecommandMessage(): break elif messageType == "6": - message.TelecommandMessage.Reset.device = "Obc" - message.Reset.hard = 1 + message.TelecommandMessage.Reset.device = 1 + message.TelecommandMessage.Reset.hard = 1 msgType = "Reset" break @@ -288,37 +359,39 @@ def makeProtocolMessage(): ############################################## Script Interface ############################################## +useCipher = True + while True: - messageType = input("Select message type:\n(1) Protocol\n(2) File Transfer\n(3) Telecommand\n(Q) Quit\n") + messageType = input("Select message type:\n(1) Protocol\n(2) File Transfer\n\ +(3) Telecommand\n(4) Check Cipher Key\n(Q) Quit\n") if messageType == "1": message,fileName = makeProtocolMessage() - readMessage(radsat.radsat_message(), fileName) - print("Pre-scramble data : " + printDataAsHex(fileName)) - addHeader(fileName) - readMessage(radsat.radsat_message(), fileName,withHeader=True) - print("Post-scramble data : " + printDataAsHex(fileName,header = True)) + readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher) + print("Pre-scramble data : " + printDataAsHex("./output/" + fileName)) + addHeader(fileName,xorCipher = useCipher) + readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher, withHeader=True) + print("Post-scramble data : " + printDataAsHex("./output/" + fileName,header = True)) elif messageType == "2": message,fileName = makeFileTransferMessage() - readMessage(radsat.radsat_message(), fileName) - print("Pre-scramble data : " + printDataAsHex(fileName)) - addHeader(fileName) - readMessage(radsat.radsat_message(), fileName,withHeader=True) - print("Post-scramble data : " + printDataAsHex(fileName,header = True)) + readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher) + print("Pre-scramble data : " + printDataAsHex("./output/" + fileName)) + addHeader(fileName,xorCipher = useCipher) + readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher, withHeader=True) + print("Post-scramble data : " + printDataAsHex("./output/" + fileName,header = True)) elif messageType == "3": message,fileName = makeTelecommandMessage() - readMessage(radsat.radsat_message(), fileName) - print("Pre-scramble data : " + printDataAsHex(fileName)) - addHeader(fileName) - readMessage(radsat.radsat_message(), fileName,withHeader=True) - print("Post-scramble data : " + printDataAsHex(fileName,header = True)) - print(type(printDataAsHex(fileName,header = True))) - print(len(printDataAsHex(fileName,header = True))) - - + readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher) + print("Pre-scramble data : " + printDataAsHex("./output/" + fileName)) + addHeader(fileName,xorCipher = useCipher, checkHeader=True) + readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher, withHeader=True) + print("Post-scramble data : " + printDataAsHex("./output/" + fileName,header = True)) + + elif messageType == "4": + print(printDataAsHex("./xorCipher/new_key")) elif messageType.upper() == "Q": print("Exiting ... ") diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry deleted file mode 100644 index 28ab280..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry +++ /dev/null @@ -1 +0,0 @@ -2I \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header deleted file mode 100644 index 097591a..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageAntennaTelemetry_header +++ /dev/null @@ -1 +0,0 @@ -<~.U \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry deleted file mode 100644 index fa4772f..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header deleted file mode 100644 index a5da6d4..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageBatteryTelemetry_header +++ /dev/null @@ -1 +0,0 @@ -<q~6 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry deleted file mode 100644 index 5564c62..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry +++ /dev/null @@ -1 +0,0 @@ -, \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header deleted file mode 100644 index f2e181a..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageCameraTelemetry_header +++ /dev/null @@ -1 +0,0 @@ -<b~0 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport deleted file mode 100644 index 7cbe46b..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport +++ /dev/null @@ -1 +0,0 @@ -R( \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header deleted file mode 100644 index 64d306a..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageComponentErrorReport_header +++ /dev/null @@ -1 +0,0 @@ -<t~N4 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header deleted file mode 100644 index 153a261..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData_header +++ /dev/null @@ -1 +0,0 @@ -<NJ~&H4# ##9#1#)#!#Y#4\ \\9\1\)\!\Y\ \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry deleted file mode 100644 index e2008ff..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry +++ /dev/null @@ -1 +0,0 @@ -" \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header deleted file mode 100644 index 110174e..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageEpsTelemetry_header +++ /dev/null @@ -1 +0,0 @@ -<x~> \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header deleted file mode 100644 index e3944ea..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary_header +++ /dev/null @@ -1,2 +0,0 @@ -<7~ -F \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket deleted file mode 100644 index 72e3d16..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket +++ /dev/null @@ -1 +0,0 @@ -B 0x01 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header deleted file mode 100644 index 42008a1..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageImagePacket_header +++ /dev/null @@ -1 +0,0 @@ -<|Z~^ ,d,- \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport deleted file mode 100644 index c06afc7..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport +++ /dev/null @@ -1 +0,0 @@ -J  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header deleted file mode 100644 index 5661b47..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageModuleErrorReport_header +++ /dev/null @@ -1 +0,0 @@ -<O:~ V  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header deleted file mode 100644 index f777000..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageObcTelemetry_header +++ /dev/null @@ -1 +0,0 @@ -<~ << \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header deleted file mode 100644 index d0528cd..0000000 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry_header +++ /dev/null @@ -1 +0,0 @@ -<Tu~{/@# m!^Р\9<\1l#)˿\!//]Yzz]Q]LD,l# ]\9zzZ\1l\)N\!Р\Y\Q]L \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry new file mode 100644 index 0000000000000000000000000000000000000000..a0ef4fdd6048225c3830e0051b8d77120ae8cbc5 GIT binary patch literal 54 ocmWeKF*4#3=a}IsFvC+~hNr>|PmLL#rVI%}ZWc2Xp#0DvzJy8r+H literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry_header new file mode 100644 index 0000000..1c4e588 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_AntennaTelemetry_header @@ -0,0 +1 @@ +!;h7kc533  HHH!H)H4aG9H HHH!H)H4aG9H \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry new file mode 100644 index 0000000000000000000000000000000000000000..a69675dfed93e8793afe12425eec81bfb5cf81b0 GIT binary patch literal 59 qcmWf#)H3H~_z>zU3L<1dger*81reqo!WKlhf(Ty_5egz=K?DFQU=!j1 literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry_header new file mode 100644 index 0000000..311cba2 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_BatteryTelemetry_header @@ -0,0 +1 @@ +!.:kc8+6 TDTDTD$TD,TD4TD<TDDTDLTDTTD\TD \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry new file mode 100644 index 0000000..cc92ea6 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry @@ -0,0 +1 @@ +:8 @@@%@(0  (0"  (0 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header new file mode 100644 index 0000000..55469a2 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header @@ -0,0 +1 @@ +!ڮ=kc;9  AAA$A)1 !)1# !)1 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport new file mode 100644 index 0000000..5050456 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport @@ -0,0 +1 @@ +R( \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport_header new file mode 100644 index 0000000..67096a3 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ComponentErrorReport_header @@ -0,0 +1 @@ +!s &kc S ) \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_DosimeterData similarity index 94% rename from radsat-sk/testing/protobuf_messages/output/fileTransferMessageDosimeterData rename to radsat-sk/testing/protobuf_messages/output/fileTransferMessage_DosimeterData index e34de4fb2157ebce20a49721f75426d2216047c0..7b04eb3a9783b578785247846706963e4077847b 100644 GIT binary patch delta 7 OcmWHGU=j+O5C#ATI|2Uy delta 5 McmazDo5&Of00klem;e9( diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_DosimeterData_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_DosimeterData_header new file mode 100644 index 0000000..6b63da9 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_DosimeterData_header @@ -0,0 +1 @@ +!YkcW;U ) >>>$>,>4><>D>) AAA$A,A4A<ADA \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry new file mode 100644 index 0000000000000000000000000000000000000000..3e089189b10b2057b55ceb1763b96dcebed408c2 GIT binary patch literal 81 scmWggSMueO<7H?Nauo#;vLHegMCgJDQxJhu!WJa!3L<<#L@0;=0Cf=%H2?qr literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry_header new file mode 100644 index 0000000..9bb784a --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_EpsTelemetry_header @@ -0,0 +1 @@ +!x"PkcN#L  DDD$D,D4DDD$D,D4D<DDDLDTD \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ErrorReportSummary similarity index 71% rename from radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary rename to radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ErrorReportSummary index 21a9343..8354027 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageErrorReportSummary +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ErrorReportSummary @@ -1,3 +1,3 @@ -Z + Z  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ErrorReportSummary_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_ErrorReportSummary_header new file mode 100644 index 0000000000000000000000000000000000000000..0a6d21879334ee08f85ee2f980b48f2eb0f8b9f6 GIT binary patch literal 23 ecmb1CJa&vH3n3tQIlR=PI^51p_MMVHgwgu1t literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry similarity index 95% rename from radsat-sk/testing/protobuf_messages/output/fileTransferMessageTransceiverTelemetry rename to radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry index 55621c938633dbbafa4c45785bae5df20c4e8f32..fd55fb33a31bf74b5b4118634a0b57595546ee2b 100644 GIT binary patch delta 7 Ocmd1IW)jMrkO=??egaDX delta 5 Mcmd1KoXC_300rOy(EtDd diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry_header new file mode 100644 index 0000000000000000000000000000000000000000..1e6126e356a6db1984a86d5dc3f6041ea8ecc925 GIT binary patch literal 116 zcmb1Ce8Zh(nDHQ4I72v%+lVK&uh~wdz=qpd=FHi>jw+0dijF!<3;)=eTwBEGXk%pb z$iXE&{k?=_>%0*`V=zGe_M*07d{8 literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/protocol_ack_header b/radsat-sk/testing/protobuf_messages/output/protocol_ack_header new file mode 100644 index 0000000..345d78d --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/protocol_ack_header @@ -0,0 +1 @@ +!a+hc   \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/protocol_nack b/radsat-sk/testing/protobuf_messages/output/protocol_nack new file mode 100644 index 0000000000000000000000000000000000000000..4e4b995d924503dc015ac0cad87a1eee5db42a67 GIT binary patch literal 4 Lcmd;L5@G-V09F7W literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/protocol_nack_header b/radsat-sk/testing/protobuf_messages/output/protocol_nack_header new file mode 100644 index 0000000..ab17287 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/protocol_nack_header @@ -0,0 +1 @@ +!I,hc  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer b/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer deleted file mode 100644 index 4baf8e1..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer_header deleted file mode 100644 index 10105cb..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginFileTransfer_header +++ /dev/null @@ -1 +0,0 @@ -<d~ \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass b/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass deleted file mode 100644 index 5b9b964..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass_header deleted file mode 100644 index 2025ec7..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageBeginPass_header +++ /dev/null @@ -1 +0,0 @@ -<g~ \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission b/radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission deleted file mode 100644 index 6460e71..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission_header deleted file mode 100644 index 535dc83..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageCeaseTransmission_header +++ /dev/null @@ -1 +0,0 @@ -<5[~ \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageReset b/radsat-sk/testing/protobuf_messages/output/telecommandMessageReset deleted file mode 100644 index 133406f..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageReset +++ /dev/null @@ -1 +0,0 @@ -2 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageReset_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageReset_header deleted file mode 100644 index a51bf8f..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageReset_header +++ /dev/null @@ -1 +0,0 @@ -<=~9.  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission b/radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission deleted file mode 100644 index 74729ef..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission +++ /dev/null @@ -1 +0,0 @@ -" \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission_header deleted file mode 100644 index 5e59d4f..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageResumeTransmission_header +++ /dev/null @@ -1 +0,0 @@ -<~=> \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime b/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime deleted file mode 100644 index d673a08..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header deleted file mode 100644 index 0de6a77..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessageUpdateTime_header +++ /dev/null @@ -1 +0,0 @@ -<I)~?6 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer new file mode 100644 index 0000000000000000000000000000000000000000..36c981f0cdb8ddba9faf8ca0f5536b5991905848 GIT binary patch literal 4 Lcmb1Q5@G-V0G0qR literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header new file mode 100644 index 0000000..569ab7f --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header @@ -0,0 +1 @@ +!~G,kc \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher deleted file mode 100644 index 77e3663..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginFileTransfer_header2_cipher +++ /dev/null @@ -1 +0,0 @@ -<'8~Ĩh \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass new file mode 100644 index 0000000..6d95868 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header new file mode 100644 index 0000000..0a84e88 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header @@ -0,0 +1 @@ +!-kc  diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher deleted file mode 100644 index fb1afca..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header2_cipher +++ /dev/null @@ -1 +0,0 @@ -<@~Ĩm \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission new file mode 100644 index 0000000..39169e2 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header new file mode 100644 index 0000000000000000000000000000000000000000..0806cc335035f7b34e95172e2e47031e1c1655a6 GIT binary patch literal 15 Wcmb1C+;)XsKl?$lG^;c-Cj$T{Ujy&} literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher deleted file mode 100644 index 3e7b937..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_CeaseTransmission_header2_cipher +++ /dev/null @@ -1 +0,0 @@ -<C~Ĩj \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset new file mode 100644 index 0000000..6c3a57a --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset @@ -0,0 +1 @@ +2 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header new file mode 100644 index 0000000000000000000000000000000000000000..061777df74ccbfba3b5caf666f4427e2de989868 GIT binary patch literal 17 Ycmb1C6nxHUoc$nKn%$U{lR=OH04K5okpKVy literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher deleted file mode 100644 index e58890e..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_Reset_header2_cipher +++ /dev/null @@ -1 +0,0 @@ -<&~Ĩ`. .  \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission new file mode 100644 index 0000000000000000000000000000000000000000..3cc590ef62da2ee42c35f4ef27c85a152a96a2c0 GIT binary patch literal 4 Lcmb1QQeprA0JZ=> literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header new file mode 100644 index 0000000..7d741d6 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header @@ -0,0 +1 @@ +!.kc# \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher deleted file mode 100644 index b0efda9..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_ResumeTransmission_header2_cipher +++ /dev/null @@ -1 +0,0 @@ -<'s~Ĩk>> \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime new file mode 100644 index 0000000..4081443 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header new file mode 100644 index 0000000000000000000000000000000000000000..9436995703a7cd98df3c7b126b2265de0a3dc9e4 GIT binary patch literal 16 Xcmb1CWVp;`nEfDGnnjz5^ARTiBWnaR literal 0 HcmV?d00001 diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher deleted file mode 100644 index b9fd961..0000000 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header2_cipher +++ /dev/null @@ -1 +0,0 @@ -<~Ĩe66 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py b/radsat-sk/testing/protobuf_messages/xorCipher/binfile_xor_cipher.py similarity index 100% rename from radsat-sk/testing/protobuf_messages/binfile_xor_cipher.py rename to radsat-sk/testing/protobuf_messages/xorCipher/binfile_xor_cipher.py diff --git a/radsat-sk/testing/protobuf_messages/crc_test.py b/radsat-sk/testing/protobuf_messages/xorCipher/crc_test.py similarity index 100% rename from radsat-sk/testing/protobuf_messages/crc_test.py rename to radsat-sk/testing/protobuf_messages/xorCipher/crc_test.py diff --git a/radsat-sk/testing/protobuf_messages/encryption_key b/radsat-sk/testing/protobuf_messages/xorCipher/encryption_key similarity index 100% rename from radsat-sk/testing/protobuf_messages/encryption_key rename to radsat-sk/testing/protobuf_messages/xorCipher/encryption_key diff --git a/radsat-sk/testing/protobuf_messages/xorCipher/new_key b/radsat-sk/testing/protobuf_messages/xorCipher/new_key new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/radsat-sk/testing/protobuf_messages/xorCipher/new_key @@ -0,0 +1 @@ + \ No newline at end of file From a31fb18d450eae95977cdd8f73c3cbb87be1822f Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Wed, 27 Jul 2022 17:58:38 -0600 Subject: [PATCH 17/18] adds hex reader function to message_generator --- .../RFileTransfer_pb2.cpython-310.pyc | Bin 5362 -> 5362 bytes .../protobuf_messages/message_generator.py | 25 ++++++++++++++++-- ...ransferMessage_TransceiverTelemetry_header | Bin 116 -> 116 bytes .../output/protocol_ack_header | Bin 13 -> 13 bytes .../telecommandMessage_BeginPass_header | 3 ++- ...elecommandMessage_CeaseTransmission_header | Bin 15 -> 15 bytes 6 files changed, 25 insertions(+), 3 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc b/radsat-sk/testing/protobuf_messages/__pycache__/RFileTransfer_pb2.cpython-310.pyc index d397b4b453bd2669717dbe2ec3bc6b5bbe053321..4e57973a089fd4f161620f480dde3d61fee36c40 100644 GIT binary patch delta 19 ZcmeyQ`AL&2pO=@50SH8LH*&oY0RT5g1q=WH delta 19 ZcmeyQ`AL&2pO=@50SJC&Zsd9)0suUh1?~U< diff --git a/radsat-sk/testing/protobuf_messages/message_generator.py b/radsat-sk/testing/protobuf_messages/message_generator.py index f0f6376..160e5af 100644 --- a/radsat-sk/testing/protobuf_messages/message_generator.py +++ b/radsat-sk/testing/protobuf_messages/message_generator.py @@ -105,6 +105,18 @@ def printDataAsHex(fileName, header = False): hexData = ("".join(f"0x{i:02x}, " for i in out)) return hexData +def readHexMessage(msgClass, hexString, withHeader = True): + hexString.replace(" ","") + output = msgClass + + if withHeader: + body = bytes.fromhex(hexString) + output.ParseFromString(body[9:]) + elif not withHeader: + output.ParseFromString(bytes.fromhex(hexString)) + + print("Message Type : \n",output) + ######################################### Populate Message Functions ######################################### def makeFileTransferMessage(): @@ -359,12 +371,12 @@ def makeProtocolMessage(): ############################################## Script Interface ############################################## -useCipher = True +useCipher = False while True: messageType = input("Select message type:\n(1) Protocol\n(2) File Transfer\n\ -(3) Telecommand\n(4) Check Cipher Key\n(Q) Quit\n") +(3) Telecommand\n(4) Check XOR Key\n(5) Read Hex String\n(Q) Quit\n") if messageType == "1": message,fileName = makeProtocolMessage() @@ -393,6 +405,15 @@ def makeProtocolMessage(): elif messageType == "4": print(printDataAsHex("./xorCipher/new_key")) + elif messageType == "5": + try: + hexString = input("Enter hex string : ") + except ValueError: + print("Invalid Entry") + hexString = "" + pass + readHexMessage(radsat.radsat_message(), hexString) + elif messageType.upper() == "Q": print("Exiting ... ") break diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_TransceiverTelemetry_header index 1e6126e356a6db1984a86d5dc3f6041ea8ecc925..ec0ec5f3e5ad82c9aa9971181152489ba2603c4a 100644 GIT binary patch literal 116 zcmb18$WY7ve(qtCP^M5imoaZlf0Mmvp)Hq_?AbGW98?(?6dZJy6#TU}y}p>i!PeOL zv7>8R+B-+zSu;O61{~ptc*Q7Wz`LYiuDvMN_3MtZ3=9(-RMXPjK$>_ROoMjtIoN^> Sa+PmA?BIL$%oE3e<(vSW@GFA= literal 116 zcmb1Ce8Zh(nDHQ4I72v%+lVK&uh~wdz=qpd=FHi>jw+0dijF!<3;)=eTwBEGXk%pb z$iXE&{k?=_>%0*`V=zGe_MjTFC literal 15 Wcmb1C+;)XsKl?$lG^;c-Cj$T{Ujy&} From 31f1bcb194ede7921855276f84e898b19d27c53b Mon Sep 17 00:00:00 2001 From: Corey Crawford Date: Thu, 28 Jul 2022 01:38:23 -0600 Subject: [PATCH 18/18] updates readHexMessage function --- .../protobuf_messages/message_generator.py | 17 +++++++++-------- .../fileTransferMessage_CameraTelemetry_header | 2 +- .../output/telecommandMessage_BeginPass_header | 3 +-- .../telecommandMessage_UpdateTime_header | Bin 16 -> 16 bytes 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/radsat-sk/testing/protobuf_messages/message_generator.py b/radsat-sk/testing/protobuf_messages/message_generator.py index 160e5af..1f9dc25 100644 --- a/radsat-sk/testing/protobuf_messages/message_generator.py +++ b/radsat-sk/testing/protobuf_messages/message_generator.py @@ -1,9 +1,6 @@ from time import * from numpy import * import RRadsat_pb2 as radsat -#import RProtocol_pb2 as protocol -#import RFileTransfer_pb2 as fileTransfer -#import RTelecommands_pb2 as telecommands from crc import CrcCalculator, Configuration ####################################### Read / Write Message Functions ####################################### @@ -21,7 +18,6 @@ def readMessage(msgClass, fileName = "serializedFile", xorCipher = True, withHea encryptedMessage = list(fb.read()) - if xorCipher: decryptedMessage = [] with open("./xorCipher/new_key","rb") as fk: @@ -111,6 +107,11 @@ def readHexMessage(msgClass, hexString, withHeader = True): if withHeader: body = bytes.fromhex(hexString) + preamble = bytes(reversed(body[0:2])).hex() + crc = bytes(reversed(body[2:4])).hex() + unixTime = bytes(body[5:9]) + print("Preamble = " + str(preamble) + "\nCRC = " + str(crc)) + print("UnixTime = " + str(int.from_bytes(unixTime,byteorder="little"))) output.ParseFromString(body[9:]) elif not withHeader: output.ParseFromString(bytes.fromhex(hexString)) @@ -371,7 +372,7 @@ def makeProtocolMessage(): ############################################## Script Interface ############################################## -useCipher = False +useCipher = True while True: @@ -382,7 +383,7 @@ def makeProtocolMessage(): message,fileName = makeProtocolMessage() readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher) print("Pre-scramble data : " + printDataAsHex("./output/" + fileName)) - addHeader(fileName,xorCipher = useCipher) + addHeader(fileName,xorCipher = useCipher, checkHeader=True) readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher, withHeader=True) print("Post-scramble data : " + printDataAsHex("./output/" + fileName,header = True)) @@ -390,7 +391,7 @@ def makeProtocolMessage(): message,fileName = makeFileTransferMessage() readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher) print("Pre-scramble data : " + printDataAsHex("./output/" + fileName)) - addHeader(fileName,xorCipher = useCipher) + addHeader(fileName,xorCipher = useCipher, checkHeader=True) readMessage(radsat.radsat_message(), fileName, xorCipher = useCipher, withHeader=True) print("Post-scramble data : " + printDataAsHex("./output/" + fileName,header = True)) @@ -412,7 +413,7 @@ def makeProtocolMessage(): print("Invalid Entry") hexString = "" pass - readHexMessage(radsat.radsat_message(), hexString) + readHexMessage(radsat.radsat_message(), hexString, xorCipher = useCipher) elif messageType.upper() == "Q": print("Exiting ... ") diff --git a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header index 55469a2..e5da441 100644 --- a/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header +++ b/radsat-sk/testing/protobuf_messages/output/fileTransferMessage_CameraTelemetry_header @@ -1 +1 @@ -!ڮ=kc;9  AAA$A)1 !)1# !)1 \ No newline at end of file +!rh=<c;9  AAA$A)1 !)1# !)1 \ No newline at end of file diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header index e0be42d..a75e8c6 100644 --- a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header +++ b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_BeginPass_header @@ -1,2 +1 @@ - Xb - \ No newline at end of file +!6 c  diff --git a/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header b/radsat-sk/testing/protobuf_messages/output/telecommandMessage_UpdateTime_header index 9436995703a7cd98df3c7b126b2265de0a3dc9e4..be0af54f5c5e7f29769978d5ead71dbcebab2658 100644 GIT binary patch literal 16 Xcmb18*z}ma>e|C3DON3Jj>jATH8KUK literal 16 Xcmb1CWVp;`nEfDGnnjz5^ARTiBWnaR