work with equipment over buses like Serial/i2c/... as client and server
Project description
bus_user (v0.2.10)
DESCRIPTION_SHORT
work with equipment over buses like Serial/i2c/... as client and server
DESCRIPTION_LONG
!. MOST APPROPRIATE COMMAND PROTOCOL
other protocols mot recommended
- all cmds must be as params (preferred) in equipment or as special command
- [<CMD_NAME>] - read param value or run special command
[IDN] - read value IDN
[DUMP] - run special command - [<CMD_NAME> ] - write value in parameter or run special cmd with param
[VOUT 12.3] - set value into parameter VOUT - [<CMD_NAME> ?] - get available values to write into parameter
[MODE ?] - return [0 1 2 3] - all command sent must return answer
[OK] - if no value was asked [] - if asked some value, returned without measurement unit [FAIL] - any common not specified error [FAIL 0123] - any specified error without description [FAIL 02 VALUE OUT OF RANGE] - any specified error with description (full variant)
Features
- Serial:
- Client+Server
- connect with AddressAutoAcceptVariant FIRST_FREE/FIRST_FREE__ANSWER_VALID
- set/get params by SlashOrSpacePath addressing
- handle BackSpace send manually from terminal
- SerialServer values:
- as Callable
- Value_WithUnit
- Value_FromVariants
- list_results
- SerialServer cmd:
- NONE is equivalent for SUCCESS
- no need params (like line_parsed as before)
- help - for show all variants (Units/Variants/Callables)!
License
See the LICENSE file for license rights and limitations (MIT).
Release history
See the HISTORY.md file for release history.
Installation
pip install bus-user
Import
from bus_user import *
USAGE EXAMPLES
See tests and sourcecode for other examples.
1. example1.py
# NOTICE:
# 1. If bus cmd return several lines (DUMP for example) - you will get all of them in list!
# 2. All answers you will get as string and you must parse it by youself!
# errors will be get within it.
from bus_user import *
# SHOW (optional) COMMANDS EXPLICITLY by annotations without values!
# ------------------------------------------------------------------
class MySerialDevice(SerialClient):
IDN: Callable[[Any], TYPE__RW_ANSWER]
ADDR: Callable[[Any], TYPE__RW_ANSWER]
DUMP: Callable[[Any], TYPE__RW_ANSWER]
# USE in code
# -----------
dev = MySerialDevice()
if dev.connect():
answer1 = dev.IDN() # return answer for sent string in port "IDN"
answer2 = dev.VIN() # return answer for sent string in port "VIN"
answer3 = dev.VIN(12) # return answer for sent string in port "VIN 12"
answer4 = dev.VIN("12") # return answer for sent string in port "VIN 12"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bus_user-0.2.10.tar.gz
(20.2 kB
view hashes)
Built Distribution
bus_user-0.2.10-py3-none-any.whl
(20.2 kB
view hashes)
Close
Hashes for bus_user-0.2.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3796823bb0cd5915f0cf0afbe17fabb53843bafe433908f71638f7d2b514d6e0 |
|
MD5 | 01a6f87e47e13734a97c36f05882b628 |
|
BLAKE2b-256 | b49dc66cf2b44bf5e30c5e8e48928d91396cbccd7da4b4b88efabfc1ee80d278 |