-
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add register API #15
Add register API #15
Conversation
now compiling after https://github.com/107-systems/107-Arduino-Cyphal was fixed. |
hi @aentinger Nevertheless it is not working:
any ideas? |
Nothing comes to mind immediately. Possibly there could be something in the OpenCyphal Specification about what we are missing? Also try and check the return value of if (!node_hdl.respond(rsp, transfer.metadata.remote_node_id, transfer.metadata.transfer_id))
Serial.println("respond failed"); @pavel-kirienko which error conditions would trigger the |
@aentinger |
Not yet, I'm trying to clean out the |
Good Morning @generationmake ☕ 👋 I think I've fixed the register access issue. Can you please test? Can you please also document the yakut commands you use for testing? Note: I've been running a OpenCyphal network with 7 nodes and 1MBit/s + shoddy wiring on L3XZ and there are no problems (on the reception side). Also no glaring error was found during review of the service logic within 107-Arduino-Cyphal. |
Hi @aentinger
|
could there be a conflict with the latest MCP2515 driver and that no more receive interrupts are generated? |
I've just re-checked, that should not be the case. Can you possibly test with a version prior that change, i.e. v1.3.4? |
Hi @aentinger |
Protip: put this into # If no slcan ifaces exist in the system, try configuring them automatically
# using all connected Zubax Babel units.
if ! [ -e /sys/class/net/slcan0 ]; then
# https://gist.github.com/pavel-kirienko/32e395683e8b7f49e71413aebf5e1a89
sudo setup_slcan -r /dev/serial/by-id/usb-Zubax*Babel*
fi
# Set up the Cyphal/CAN configuration registers depending on which ifaces are up.
export UAVCAN__CAN__IFACE='socketcan:slcan0'
if [ -e /sys/class/net/slcan1 ]; then
export UAVCAN__CAN__IFACE="$UAVCAN__CAN__IFACE socketcan:slcan1"
fi
export UAVCAN__CAN__MTU=8
export UAVCAN__CAN__BITRATE='1000000 1000000'
# Automatically find a free node-ID for all commands run in this session.
export UAVCAN__NODE__ID=$(yakut accommodate)
echo "Auto-selected node-ID for this session: $UAVCAN__NODE__ID" Then use it like this: source l_drei_xz_slcan.sh # Do this once per terminal session.
y rl 99 # Then just use Yakut as thou wilt. |
I'll check 👍 Thank you @pavel-kirienko for the pro-tip 😉 |
Hi @generationmake ☕ 👋 I've broken my OpenCyphalPicoBase board 😢 . It never exposed a Meanwhile, can you give a try to the register list command using a modified MCP2515 driver (see here 107-systems/107-Arduino-MCP2515#65 )? 🙏 |
I've debugged the issue and I'm now reasonably sure the problem (amongst other ones, already solved ones: 107-systems/107-Arduino-MCP2515#66, 107-systems/107-Arduino-MCP2515#65) stems from the MCP2515 receive interrupt not being triggered anymore after a couple of CAN frames have been received (see 107-systems/107-Arduino-MCP2515#62, 107-systems/107-Arduino-MCP2515#53). I will need to continue looking into it. |
Hi @generationmake ☕ 👋 I believe I fixed your problem (e93a8c0). At least I can say with confidence that if fixed the same issue over here 107-systems/107-Arduino-Cyphal#158 . |
Hi @aentinger |
Hi @aentinger |
I have, but its the next step on the roadmap - after register API. See my comment here. |
Hi @aentinger The code works as expected and the limit is correctly set. However the Cyphal register value is not set correctly. bernhard@notebookR60P-22:~$ y r -dd 99 aux.updateinterval.input0 natural16: value: [500] _meta_: {mutable: true, persistent: false} bernhard@notebookR60P-22:~$ y r -dd 99 aux.updateinterval.input0 5 natural16: value: [5] _meta_: {mutable: true, persistent: false} bernhard@notebookR60P-22:~$ y r -dd 99 aux.updateinterval.input0 natural16: value: [5] _meta_: {mutable: true, persistent: false} could you please check this? The value of the register should be 100. Thanks |
You were in fact abusing the register-api in a way it was not designed 😝 . I've built a limit-functionality just for you and already pushed the changes to this fork. |
registers are implemented. code works as expected. |
No description provided.