-
-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Multi-device support in the context of PoKeys devices for LinuxCNC involves enabling the integration and simultaneous operation of multiple PoKeys devices in a single system. This feature would allow users to expand their hardware setup without limitations imposed by a single device's capabilities.
Current State in LinuxCnc_PokeysLibComp
- Single-device Architecture:
As of now, the pokeys.comp component appears to primarily support a single PoKeys device at a time.
The existing HAL structure defines device-specific functionality and pin mappings without clear mechanisms for addressing multiple devices uniquely.
- Limitations:
There is no direct implementation or documented support for managing multiple PoKeys devices simultaneously.
Each device would require separate, custom HAL configurations, and conflicts in addressing or pin usage may arise.
- Code Design Challenges:
The pokeys.comp component needs to differentiate between multiple devices via unique identifiers, such as IP addresses or serial numbers.
The HAL layer must generate separate pin namespaces for each device to avoid overlaps.
Communication with multiple devices must be managed asynchronously to maintain real-time performance.
Steps to Implement Multi-device Support
- Device Identification:
Modify the HAL component to accept multiple device configurations via unique identifiers (e.g., device serial numbers or IP addresses for Ethernet devices).
Add parameters to specify device-specific settings (e.g., device.0.ip, device.1.ip).
- Dynamic Pin Namespace:
Extend the HAL component to generate distinct pin namespaces for each device. For example:
pokeys.0.adcin.#.value for Device 1.
pokeys.1.adcin.#.value for Device 2.
- Concurrent Communication:
Implement multithreaded or asynchronous communication to ensure real-time updates for all connected devices without bottlenecks.
- INI File Integration:
Allow for multiple [POKEYS] sections in the INI file, enabling independent configuration of each device.
- Testing Framework:
Develop test cases to validate the functionality of multi-device setups under various conditions (e.g., different device types, mixed USB and Ethernet devices).
Community Requests and Discussions
There does not appear to be a specific issue raised in the GitHub repository for multi-device support, but it is a logical extension for users with complex hardware setups.
If multi-device support is a critical need, a formal feature request could be submitted to the repository, along with use cases and desired outcomes.
Would you like detailed example configurations or suggestions for how this might be implemented in the current codebase?
Metadata
Metadata
Assignees
Labels
Projects
Status