Driver for Arizona USB Pressure Sensor
Project description
ARIZON USB APIServer
An APIServer for ARIZON USB force sensors.
Installation
Clone & cd
into this repository then:
python setup.py install
Or download from PyPI:
python -m pip install arizon-usb-apiserver
Get Started
The apiserver operates in two modes: RESTful and gRPC. They share the same configuration schema.
Basics
To read the sensor locally, use this snippet:
from serial import Serial
from arizon_usb_apiserver import Sensor
if __name__ == '__main__':
conn = Serial("COM16", 115200)
sensor = Sensor(conn)
sensor.reset()
while True:
print(sensor.read_once())
To generate configuration from command line interaction run:
python -m arizon_usb_apiserver configure
RESTful
To launch the apiserver in RESTful mode, set the API_SERVER_RESTFUL
to 1
before run apiserver command:
export API_SERVER_RESTFUL=1
Or run with variable
API_SERVER_RESTFUL=1 python -m arizon_usb_apiserver apiserver
Powershell:
Set-Item -Path Env:API_SERVER_RESTFUL -Value 1
Or you can directely run apiserver.restful
python -m arizon_usb_apiserver apiserver.restful
Here are some examples to test the apiserver using curl
-
Init sensor
curl -X 'PUT' \ 'http://127.0.0.1:8080/v1/arizon/force?flag=true' \ -H 'accept: application/json'
-
Read sensor
curl -X 'GET' \ 'http://127.0.0.1:8080/v1/arizon/force' \ -H 'accept: application/json'
-
Shutdown sensor
curl -X 'PUT' \ 'http://127.0.0.1:8080/v1/arizon/force?flag=false' \ -H 'accept: application/json'
gRPC
Run this command
python -m arizon_usb_apiserver apiserver
Or you can directely run apiserver.grpc
python -m arizon_usb_apiserver apiserver.grpc
Testing with cli tools
To test RESTful API, run:
python -m arizon_usb_apiserver test.restful
You will be asked to input API endpoint.
To test gRPC API, run:
python -m arizon_usb_apiserver test.grpc
You will be asked to input API endpoint.
Generate Client
Restful
First launch the apiserver, then run openapi-python-client
:
openapi-python-client generate --url http://127.0.0.1:8080/openapi.json
rm -rf ./arizon_usb_driver/client/restful
mv fast-api-client/fast_api_client ./arizon_usb_driver/client/restful
rm -rf ./fast-api-client
GRPC
First cd arizon_usb_apiserver/grpc
, then run:
python -m grpc_tools.protoc -I../../manifests/protos --python_out=. --pyi_out=. --grpc_python_out=. ../../manifests/protos/force_packet.proto
You might need to replace import force_packet_pb2 as force__packet__pb2
with import arizon_usb_apiserver.grpc.force_packet_pb2 as force__packet__pb2
Serial Protocol
Field | Content |
---|---|
Head | 0xFE |
Status | 1 Byte |
Data | 3 Byte |
XOR checksum | 1 Byte |
- Status: 4 bits of address + 4 bits represents number of digits
- Data: 3 bytes of signed integers, no digit, big-endian.
- Checksum: xor() of first 5 bytes
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for arizon-usb-apiserver-0.3.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d19ee15f236c38843a35207f3211ae04914f2ae563da3063ea02d5fb61b65584 |
|
MD5 | f7e997c077f3beb8aa06f9b34ab8e41e |
|
BLAKE2b-256 | a585bfec824f1418d6cac7df3f35e48e0cbd8d6910c2dd96d1d948ba1b3b1028 |
Hashes for arizon_usb_apiserver-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4210c59499d19b70701ccc2c0b079db19063c18d92e3784dedfed8693d47dd4 |
|
MD5 | f74a9c52e79e315553268c3514a46e69 |
|
BLAKE2b-256 | 5e696a3c7320b8081493a30feda3a1a2232628777ce5c050fdd032e7b12a2416 |