pych9329
Python module to control ch9329
Installation
You can install the package via pip:
pip install pych9329
Usage
Quick start
import time
from serial import Serial
from pych9329 import chip_command
from pych9329 import keyboard
from pych9329 import mouse
def main():
ser = Serial("COM10", 9600, timeout=0.5)
# Receive the keyboard lock status
result, kb_status = keyboard.receive_indicator_status(ser)
if result:
# {'usb_connect_status': True, 'num_lock': True, 'caps_lock': False, 'scroll_lock': False}
print(kb_status)
# Automatically turn off caps_lock
if kb_status["caps_lock"]:
keyboard.click(ser, "caps_lock")
# Click the "Win + D" key combination
# First press the 2 buttons at the same time
# For optional parameters of modifiers, please refer to keyboard.MODIFIER_KEY_NAME_MAP
keyboard.trigger(ser, ["D"], ["win"])
# Usually there is a 10 millisecond interval between pressing a key and popping it up.
# Simulate this behavior with sleep
time.sleep(0.1)
# Pop up all keys
keyboard.trigger(ser, [""], [""])
# Click a single key
keyboard.click(ser, "a")
keyboard.click(ser, "A")
# Send text
keyboard.send_text(ser, "\n")
keyboard.send_text(ser, "Hello World\n")
keyboard.send_text(ser, "abcdefghijklmnopqrstuvwxyz\n")
keyboard.send_text(ser, "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n")
keyboard.send_text(ser, "0123456789\n")
keyboard.send_text(ser, "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\n")
# Move the mouse
mouse.move(ser, x=500, y=500)
mouse.move(ser, x=50, y=50, relative_mode=True)
# Click a button
# For supported key names, please see mouse.MOUSE_BUTTON_NAME_MAP
mouse.click(ser, button_name="left")
# 2019A152BB40
print(chip_command.get_serial_number(ser))
# WCH UART TO KB-MS_V1.8
print(chip_command.get_product(ser))
# WWW.WCH.CN
print(chip_command.get_manufacturer(ser))
ser.close()
if __name__ == "__main__":
main()
Example
More example please check the example directory.
License
MIT license.
Contributing
This project is modified from ch9329 library.
Thanks to the original author of the ch9329 library Pradish Bijukchhe
Metadata
Release files for pych9329 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pych9329-0.1.8.tar.gz | 13.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pych9329-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.6 kB
Release files / pych9329-0.1.8.tar.gz
| Download URL | pych9329-0.1.8.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
32586746e749649323cbf94c8ffa5786cf66f2c53f7ff28905d94e50ea108219
|
|
BLAKE2b-256 checksum How to use checksums |
1d5f706bc7b69ec2839402a3a8d6e9fa7e0add8c0562ada213361caa9e7cfe8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pych9329-0.1.8-py3-none-any.whl
| Download URL | pych9329-0.1.8-py3-none-any.whl |
|---|---|
| Size | 13.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
269164297724faf4d938cda6c349a4cd238036b87277501d2140f3d821b466f5
|
|
BLAKE2b-256 checksum How to use checksums |
fb3eb932240d3c4308acdfb3b2767401677ffdd42019f5d7d04a07312793fe40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for pych9329 0.1.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.