Skip to content

Commit

Permalink
V2.3.2 release branch (#214)
Browse files Browse the repository at this point in the history
  • Loading branch information
guilhermedemouraa authored Jul 25, 2024
1 parent b15d2d9 commit 5210153
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 14 deletions.
1 change: 0 additions & 1 deletion protos/farm_ng/canbus/amiga_v6.proto
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ message AmigaTpdo1 {
double measured_angular_rate = 5; // Based on unicycle model
uint32 pto_bits = 6; // bit masked PTO device states
uint32 hbridge_bits = 7; // bit masked H-bridge device states
uint32 state_of_charge = 8; // Battery state of charge (0-100%)
}

message AmigaPdo2 {
Expand Down
15 changes: 3 additions & 12 deletions py/farm_ng/canbus/packet.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,6 @@ class AmigaTpdo1(Packet):
"""State, speed, and angular rate of the Amiga vehicle control unit (VCU).
New in fw v0.1.9 / farm-ng-amiga v0.0.7: Add pto & hbridge control. Message data is now 8 bytes (was 5).
New in fw v0.6.0 / farm-ng-amiga v2.4.0: Add SOC (state of charge) to the message.
"""

cob_id = 0x180
Expand All @@ -262,17 +260,15 @@ def __init__(
meas_ang_rate: float = 0.0,
pto_bits: int = 0x0,
hbridge_bits: int = 0x0,
soc: int = 0x0,
):
self.format = "<BhhBBB"
self.format = "<BhhBBx"
self.legacy_format = "<Bhh"

self.state = state
self.meas_speed = meas_speed
self.meas_ang_rate = meas_ang_rate
self.pto_bits = pto_bits
self.hbridge_bits = hbridge_bits
self.soc = soc

self.stamp_packet(time.monotonic())

Expand All @@ -285,7 +281,6 @@ def encode(self):
int(self.meas_ang_rate * 1000.0),
self.pto_bits,
self.hbridge_bits,
self.soc,
)

def decode(self, data):
Expand All @@ -297,9 +292,7 @@ def decode(self, data):
self.meas_speed = meas_speed / 1000.0
self.meas_ang_rate = meas_ang_rate / 1000.0
else:
(self.state, meas_speed, meas_ang_rate, self.pto_bits, self.hbridge_bits, self.soc) = unpack(
self.format, data
)
(self.state, meas_speed, meas_ang_rate, self.pto_bits, self.hbridge_bits) = unpack(self.format, data)
self.meas_speed = meas_speed / 1000.0
self.meas_ang_rate = meas_ang_rate / 1000.0

Expand All @@ -316,7 +309,6 @@ def to_proto(self) -> amiga_v6_pb2.AmigaTpdo1:
measured_angular_rate=self.meas_ang_rate,
pto_bits=self.pto_bits,
hbridge_bits=self.hbridge_bits,
state_of_charge=self.soc,
)

@classmethod
Expand All @@ -337,7 +329,6 @@ def from_proto(cls, proto: amiga_v6_pb2.AmigaTpdo1) -> AmigaTpdo1:
obj.meas_ang_rate = proto.measured_angular_rate
obj.pto_bits = proto.pto_bits
obj.hbridge_bits = proto.hbridge_bits
obj.soc = proto.state_of_charge
return obj

@classmethod
Expand All @@ -361,7 +352,7 @@ def from_raw_canbus_message(cls, message: canbus_pb2.RawCanbusMessage) -> AmigaT
def __str__(self):
return "AMIGA TPDO1 Amiga state {} Measured speed {:0.3f} Measured angular rate {:0.3f} @ time {}".format(
self.state, self.meas_speed, self.meas_ang_rate, self.stamp.stamp
) + " PTO bits 0x{:x} h-bridge bits 0x{:x} charge level: {}%".format(self.pto_bits, self.hbridge_bits, self.soc)
) + " PTO bits 0x{:x} h-bridge bits 0x{:x}".format(self.pto_bits, self.hbridge_bits)


def parse_amiga_tpdo1_proto(message: canbus_pb2.RawCanbusMessage) -> AmigaTpdo1 | None:
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = farm_ng_amiga
version = 2.3.2-dev
version = 2.3.2
description = Amiga development kit for third party hardware or software extensions
long_description = file: README.md
long_description_content_type = text/markdown
Expand Down

0 comments on commit 5210153

Please sign in to comment.