Comments (5)
Not sure about option 2 because it doesn't provide a way for the user to make an informed decision about which interface to use (e..g, is bool[1]
the can1
or slcan0
?). Option 1 seems sensible although it may require some non-trivial logic for detection of the available interfaces. Would you be up to drafting up a prototype based on PyUAVCAN?
from public_regulated_data_types.
Not sure what you mean by a prototype using pyuavcan, you can easily make a register response in yakut right?
Regarding that piece of code you can easily generate a list of CAN capable interfaces if that's what you want.
import re
import psutil
ifaces = [ s for s in psutil.net_if_addrs() if re.compile(r"^(v|sl|)can\d+").match(s) ]
For me it's more to understand/standardize the minimal set of registers i.e. uavcan.can.iface
a node running on a small MCU has to implement. It's easy to come up with a custom register/service that exposes the available interfaces but I rather want to standardize it in the uavcan.register spec like is done for id,iface,bitrate etc.
from public_regulated_data_types.
Not sure what you mean by a prototype using pyuavcan, you can easily make a register response in yakut right?
Yakut can't serve RPC-services. In PyUAVCAN you would integrate your sample like this:
import re
import psutil # <-- these batteries are not included
your_node.registry["uavcan.can.ifaces"] = lambda: " ".join(s for s in psutil.net_if_addrs() if re.compile(r"^(v|sl|)can\d+").match(s))
For me it's more to understand/standardize the minimal set of registers i.e. uavcan.can.iface a node running on a small MCU has to implement.
I don't understand this part: why does a typical embedded node need to report the list of available CAN interfaces?
from public_regulated_data_types.
I don't understand this part: why does a typical embedded node need to report the list of available CAN interfaces?
To remotely configure redundancy ie. enabling 2 interfaces, but there are also commercially available MCU's that have up to 8 CAN controllers so it would be great to have to flexibility to change the CAN port remotely.
from public_regulated_data_types.
Okay, that makes sense.
We still should update PyUAVCAN to expose this register before updating the Spec though.
from public_regulated_data_types.
Related Issues (20)
- reg.drone.service.battery.Parameters.0.2 is missing the nominal cell voltage HOT 17
- Pregenerated headers of public_regulated_data_types to ease development HOT 3
- Incorrect nested type in reg.drone.physics.kinematics.translation.Velocity3Var
- Suggestions and questions HOT 3
- Some questions about the dsdl file under /uavcan/equipment/power HOT 2
- Migrate to GitHub Actions
- Extend primitive types with small fixed-size arrays HOT 2
- pycyphal demo HOT 2
- Remove the translational/rotational segregation in `reg.udral.physics.kinematics` and `reg.udral.physics.dynamics` HOT 1
- Modify the servo interface for compatibility with common trajectory generators HOT 1
- Incorrect name of uavcan.si.magnetic_field_strength
- Define standard registers for publication priority setting
- Stabilize v0.x data types in the `uavcan` namespace
- Add luminance to si types HOT 1
- Allow full stop inside the PORT_NAME
- Transfer UDRAL definitions to the DS-015 project
- Define new minor versions of data types that contain strings
- Cyphal/UDP: provide a standard register for overriding the priority to DSCP mapping
- Add a `CMD_IDENTIFY` to ExecuteCommand HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from public_regulated_data_types.