PEAK_DETECT_AVAILABLE_DEVICES
Python Code
from flojoy import flojoy, String, DataContainer
import can
from typing import Optional
@flojoy(deps={"python-can": "4.3.1", "uptime": "3.0.1"})
def PEAK_DETECT_AVAILABLE_DEVICES(default: Optional[DataContainer]) -> String:
"""Detects available PCAN devices and returns a string containing the device name and the channel number.
This blocks is use to detect available PCAN devices and returns a string containing the device name and the channel number.
โ Use the channel number to configure to connect to PEAK can hardware and other devices that support the PCAN interface using the PCAN_CONNECT block.
For Windows and Linux compatibilities, the following Drviers are required:
โ https://www.peak-system.com/Drivers.523.0.html?&L=1
For MacOS compatibilities, the following Drivers are required:
โ https://mac-can.github.io/
Parameters
----------
None
Returns
-------
String
A string containing the device name and the channel number.
"""
available_channels = can.detect_available_configs("pcan")
str_builder = ""
for channel in available_channels:
str_builder += f"{channel['device_name']}: {channel['channel']}\n"
if str_builder == "":
raise Exception(
"No device available detected. Please make sure that the PCAN drivers are installed."
)
return String(str_builder)
Example App
This application demonstrates how to use multiple CAN blocks to connect to a PEAK-USB device and read messages from it. The PEAK-USB device is a USB-to-CAN interface that enables you to connect a computer to a CAN network. This device is used in this case to capture the messages of a particular sensor by filtering them directly at the kernel level, thus reducing the load on the CPU, and save those messages to a log file locally.
Once the app is done, the generated logs are exported to an S3 bucket to keep a record of the sensorโs data for further analysis.
To replicate this application, you must connect the PEAK-USB to your computer and install the required driver (refer to the PEAK_CONNECT
blocks for more information on the necessary driver for your platform). Then, simply specify the PEAK-USB channel in the required blocks, and this Flojoy application will log the messages received by the device!
Detecting channels
A valuable block is the PEAK_DETECT_AVAILABLE_DEVICE
. This block allows you to display the devices using the PCAN interface that are connected to your computer.