diff --git a/aprslib/packets/__init__.py b/aprslib/packets/__init__.py index 32b8a0c..ae93ef7 100644 --- a/aprslib/packets/__init__.py +++ b/aprslib/packets/__init__.py @@ -1,2 +1,6 @@ from aprslib.packets.position import PositionReport from aprslib.packets.telemetry import TelemetryReport +from aprslib.packets.telemetryunitlabels import TelemetryUnitLabelsReport +from aprslib.packets.telemetryparameters import TelemetryParametersReport +from aprslib.packets.telemetryequations import TelemetryEquationsReport +from aprslib.packets.telemetrysenseproject import TelemetrySenseProjectReport \ No newline at end of file diff --git a/aprslib/packets/telemetryequations.py b/aprslib/packets/telemetryequations.py new file mode 100644 index 0000000..0842415 --- /dev/null +++ b/aprslib/packets/telemetryequations.py @@ -0,0 +1,47 @@ +from aprslib.packets.base import APRSPacket + +class TelemetryEquationsReport(APRSPacket): + format = 'raw' + telemetrystation = "N0CALL" + a1a = "0.0" + a1b = "1.0" + a1c = "0.0" + a2a = "0.0" + a2b = "1.0" + a2c = "0.0" + a3a = "0.0" + a3b = "1.0" + a3c = "0.0" + a4a = "0.0" + a4b = "1.0" + a4c = "0.0" + a5a = "0.0" + a5b = "1.0" + a5c = "0.0" + + def _serialize_body(self): + + body = [ + ':{0} :EQNS.'.format(self.telemetrystation), # packet type + self.a1a, + self.a1b, + self.a1c, + self.a2a, + self.a2b, + self.a2c, + self.a3a, + self.a3b, + self.a3c, + self.a4a, + self.a4b, + self.a4c, + self.a5a, + self.a5b, + self.a5c, + ] + tmpbody = ",".join(body) + badcomma = tmpbody.index(",") + + # remove static but erroneous comma between EQNS. and a1 value + # Position can vary due to callsign + return tmpbody[:badcomma] + tmpbody[badcomma+1:] diff --git a/aprslib/packets/telemetryparameters.py b/aprslib/packets/telemetryparameters.py new file mode 100644 index 0000000..c86ef4e --- /dev/null +++ b/aprslib/packets/telemetryparameters.py @@ -0,0 +1,43 @@ +from aprslib.packets.base import APRSPacket + +class TelemetryParametersReport(APRSPacket): + format = 'raw' + telemetrystation = "N0CALL" + a1 = "AN1" + a2 = "AN2" + a3 = "AN3" + a4 = "AN4" + a5 = "AN5" + b1 = "D1" + b2 = "D2" + b3 = "D3" + b4 = "D4" + b5 = "D5" + b6 = "D6" + b7 = "D7" + b8 = "D8" + + def _serialize_body(self): + + body = [ + ':{0} :PARM.'.format(self.telemetrystation), # packet type + self.a1, + self.a2, + self.a3, + self.a4, + self.a5, + self.b1, + self.b2, + self.b3, + self.b4, + self.b5, + self.b6, + self.b7, + self.b8, + ] + tmpbody = ",".join(body) + badcomma = tmpbody.index(",") + + # remove static but erroneous comma between PARM. and a1 value + # Position can vary due to callsign + return tmpbody[:badcomma] + tmpbody[badcomma+1:] diff --git a/aprslib/packets/telemetrysenseproject.py b/aprslib/packets/telemetrysenseproject.py new file mode 100644 index 0000000..224ada7 --- /dev/null +++ b/aprslib/packets/telemetrysenseproject.py @@ -0,0 +1,23 @@ +from aprslib.packets.base import APRSPacket + +class TelemetrySenseProjectReport(APRSPacket): + format = 'raw' + telemetrystation = "N0CALL" + digitalvalue = ['0']*8 + project = '' + + def _serialize_body(self): + # What do we do when len(digitalvalue) != 8? + self.digitalvalue = ''.join(self.digitalvalue) + + body = [ + ':{0} :BITS.'.format(self.telemetrystation), # packet type + str(self.digitalvalue), + self.project, + ] + tmpbody = ",".join(body) + badcomma = tmpbody.index(",") + + # remove static but erroneous comma between BITS. and digitalvalue + # Position can vary due to callsign + return tmpbody[:badcomma] + tmpbody[badcomma + 1:] diff --git a/aprslib/packets/telemetryunitlabels.py b/aprslib/packets/telemetryunitlabels.py new file mode 100644 index 0000000..f5bb2fb --- /dev/null +++ b/aprslib/packets/telemetryunitlabels.py @@ -0,0 +1,43 @@ +from aprslib.packets.base import APRSPacket + +class TelemetryUnitLabelsReport(APRSPacket): + format = 'raw' + telemetrystation = "N0CALL" + a1 = "BITS" + a2 = "BITS" + a3 = "BITS" + a4 = "BITS" + a5 = "BITS" + b1 = "EN" + b2 = "EN" + b3 = "EN" + b4 = "EN" + b5 = "EN" + b6 = "EN" + b7 = "EN" + b8 = "EN" + + def _serialize_body(self): + + body = [ + ':{0} :UNIT.'.format(self.telemetrystation), # packet type + self.a1, + self.a2, + self.a3, + self.a4, + self.a5, + self.b1, + self.b2, + self.b3, + self.b4, + self.b5, + self.b6, + self.b7, + self.b8, + ] + tmpbody = ",".join(body) + badcomma = tmpbody.index(",") + + # remove static but erroneous comma between UNIT. and a1 value + # Position can vary due to callsign + return tmpbody[:badcomma] + tmpbody[badcomma+1:]