mirror of
https://github.com/SHC-ASTRA/rover-ros2.git
synced 2026-04-20 20:01:15 -05:00
Compare commits
2 Commits
c814f34ca6
...
7a3c4af1ce
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a3c4af1ce | ||
|
|
5e5a52438d |
1
.envrc
1
.envrc
@@ -1,2 +1 @@
|
|||||||
use flake
|
use flake
|
||||||
[[ -d install ]] && source install/setup.$(echo $0 | grep -oE '[^/]+$')
|
|
||||||
|
|||||||
23
flake.lock
generated
23
flake.lock
generated
@@ -60,7 +60,8 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nix-ros-overlay",
|
"nix-ros-overlay",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@@ -77,6 +78,26 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1773297127,
|
||||||
|
"narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "71b125cd05fbfd78cab3e070b73544abe24c5016",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
10
flake.nix
10
flake.nix
@@ -4,6 +4,11 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/develop";
|
nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/develop";
|
||||||
nixpkgs.follows = "nix-ros-overlay/nixpkgs"; # IMPORTANT!!!
|
nixpkgs.follows = "nix-ros-overlay/nixpkgs"; # IMPORTANT!!!
|
||||||
|
|
||||||
|
treefmt-nix = {
|
||||||
|
url = "github:numtide/treefmt-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -11,7 +16,8 @@
|
|||||||
self,
|
self,
|
||||||
nix-ros-overlay,
|
nix-ros-overlay,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
}:
|
...
|
||||||
|
}@inputs:
|
||||||
nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (
|
nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
@@ -84,6 +90,8 @@
|
|||||||
export QT_X11_NO_MITSHM=1
|
export QT_X11_NO_MITSHM=1
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
formatter = (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -318,7 +318,9 @@ class CANConnector(Connector):
|
|||||||
}
|
}
|
||||||
|
|
||||||
if mcu_name not in mcu_key_map:
|
if mcu_name not in mcu_key_map:
|
||||||
self.logger.error(f"unknown VicCAN mcu_name '{msg.mcu_name}' for CAN frame; dropping message")
|
self.logger.error(
|
||||||
|
f"unknown VicCAN mcu_name '{msg.mcu_name}' for CAN frame; dropping message"
|
||||||
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
mcu_key = mcu_key_map[mcu_name] & 0b111
|
mcu_key = mcu_key_map[mcu_name] & 0b111
|
||||||
@@ -352,7 +354,9 @@ class CANConnector(Connector):
|
|||||||
)
|
)
|
||||||
command &= 0x3F
|
command &= 0x3F
|
||||||
|
|
||||||
arbitration_id = ((mcu_key & 0b111) << 8) | ((data_type_key & 0b11) << 6) | (command & 0x3F)
|
arbitration_id = (
|
||||||
|
((mcu_key & 0b111) << 8) | ((data_type_key & 0b11) << 6) | (command & 0x3F)
|
||||||
|
)
|
||||||
|
|
||||||
# Map VicCAN.data (floats) to up to 8 CAN data bytes.
|
# Map VicCAN.data (floats) to up to 8 CAN data bytes.
|
||||||
raw_bytes: list[int] = []
|
raw_bytes: list[int] = []
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from astra_msgs.msg import VicCAN
|
from astra_msgs.msg import VicCAN
|
||||||
from rclpy.impl.rcutils_logger import RcutilsLogger
|
from rclpy.impl.rcutils_logger import RcutilsLogger
|
||||||
|
|
||||||
|
|
||||||
def string_to_viccan(msg: str, mcu_name: str, logger: RcutilsLogger):
|
def string_to_viccan(msg: str, mcu_name: str, logger: RcutilsLogger):
|
||||||
"""
|
"""
|
||||||
Converts the serial string VicCAN format to a ROS2 VicCAN message.
|
Converts the serial string VicCAN format to a ROS2 VicCAN message.
|
||||||
@@ -27,9 +28,7 @@ def string_to_viccan(msg: str, mcu_name: str, logger: RcutilsLogger):
|
|||||||
logger.debug(f"got non-CAN data from {mcu_name}: {msg}")
|
logger.debug(f"got non-CAN data from {mcu_name}: {msg}")
|
||||||
return None
|
return None
|
||||||
elif len(parts) < 3:
|
elif len(parts) < 3:
|
||||||
logger.debug(
|
logger.debug(f"got garbage (not enough parts) CAN data from {mcu_name}: {msg}")
|
||||||
f"got garbage (not enough parts) CAN data from {mcu_name}: {msg}"
|
|
||||||
)
|
|
||||||
return None
|
return None
|
||||||
elif len(parts) > 7:
|
elif len(parts) > 7:
|
||||||
logger.debug(f"got garbage (too many parts) CAN data from {mcu_name}: {msg}")
|
logger.debug(f"got garbage (too many parts) CAN data from {mcu_name}: {msg}")
|
||||||
|
|||||||
8
treefmt.nix
Normal file
8
treefmt.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
projectRootFile = "flake.nix";
|
||||||
|
programs = {
|
||||||
|
nixfmt.enable = true;
|
||||||
|
black.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user