Pykarbon Module
For the full rundown, read the rest of the docs.
What is it?
The Pykarbon module provides a set of tools for interfacing with the hardware devices on OnLogic’s ‘Karbon’ series industrial PCs. These interfaces include the onboard CAN bus, Digital IO, and a few other hardware devices.
The goal of this package is to provide a simple, but powerful, base platform that will allow users to quickly and easily integrate a Karbon into their own application.
The tools in this package are designed to work with specific hardware; this will not work for more generalized projects
How do I use it?
You will need to install python 3 prior to following this guide.
Getting started with pykarbon takes only a few minutes:
Open up a terminal, and run
pip install pykarbonOn some systems you may need to run as admin, or use the
--userflag
Launch a python shell with
pythonUsually linux users do not have write access to serial ports; grant your user permanent access with
usermod -a -G dialout $USERor usesudo python
Import pykarbon with
import pykarbon.pykarbon as pkAnd finally create a control object using
dev = pk.Karbon()
If all went well, you should now be ready to control a variety of systems, but for now, let’s just print out some configuration information:
dev.show_info()
And close our session:
dev.close()
What else can I do?
Pykarbon offers a number of tools for automating and using Karbon series hardware interfaces. These include:
CAN and DIO background data monitoring
Exporting logged data to .csv
Registering and making function calls based on these bus events:
CAN data IDs
Digital Input Events
DIO Bus States (Allows partial states)
Automated can message response to registered IDs
Automated setting of Digital Output states
Automatic CAN baudrate detection
Updating user configuration information:
Ignition sense enable/disable
Power timing configurations
Low battery shutdown voltage
Etc.
Firmware update
Additonally, as Pykarbon’s CAN and Terminal sessions must connect to device serial ports, functionality has been added to allow running these sessions using a context manager:
import pykarbon.pykarbon as pk
import pykarbon.can as pkc
with pk.Karbon() as dev:
dev.show_info()
with pkc.Session() as dev:
dev.write(0x123, 0x11223344)
A Simple Example: Pykarbon.Core
import pykarbon.core as pkcore
# Set up interfaces:
can = pkcore.Can()
term = pkcore.Terminal()
# Claim the serial ports for use:
can.claim()
term.claim()
# Configure the can baudrate, and view that config
term.command('set can-baudrate 800')
print("\nRead User Configuration:")
term.print_command('config')
# Write a message, and then listen for and print responses
can.send(0x123, 0x11223344)
print("\nMonitoring CAN Bus, Press CTRL+C to Stop!")
can.sniff() # Will block until you exit with ctrl+c
# Close the ports!
can.release()
term.release()
Metadata
Release files for pykarbon 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pykarbon-1.2.0.tar.gz | 28.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pykarbon-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.7 kB
Release files / pykarbon-1.2.0.tar.gz
| Download URL | pykarbon-1.2.0.tar.gz |
|---|---|
| Size | 28.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61dcddd7ab2245100a200b4c5e1e4506142ad354eca168265748d13e75291bb4
|
|
BLAKE2b-256 checksum How to use checksums |
e92baaf87ce90d0414fa28df29b2075124318f6fa8e5ccc403d984662c1907c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Release files / pykarbon-1.2.0-py3-none-any.whl
| Download URL | pykarbon-1.2.0-py3-none-any.whl |
|---|---|
| Size | 27.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15db53553ee1a5d0f6cfc7cd350d370775b6328ae063f5dcc35a845fb9b06b52
|
|
BLAKE2b-256 checksum How to use checksums |
4564072b59a725c339dbf62944928ee264caf465a46f92c1aa153ef7d0ff0f56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|