work with equipment over buses like Serial/i2c/... as client and server
Project description
bus_user (v0.1.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 AddressAutoAcceptanceVariant FIRST_VACANT/AUTODETECT
- set/get params by SlashOrSpacePath addressing
- 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.1.10.tar.gz
(17.8 kB
view hashes)
Built Distribution
bus_user-0.1.10-py3-none-any.whl
(17.7 kB
view hashes)
Close
Hashes for bus_user-0.1.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8b24764af1574a764a0ddd4cef7155c6e55ecfbc077208a7410acb23aa45666 |
|
MD5 | 69332f26b772558eb3acfca6a3701323 |
|
BLAKE2b-256 | 2706855113ae18bee624c1465b654fef1fb5fef6cdad13ad6751cb421041666d |