Metadata-Version: 2.4
Name: beetech-smartsdk
Version: 1.0.4
Summary: Beetech Universal RFID & IoT SmartSdk Native AOT Engine for Python
Author-email: "Beetech AutoID Corp." <support@advautoid.com>
License: Commercial
Keywords: rfid,smartsdk,native-aot,impinj,zebra,urovo,iot,edge
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# Beetech Universal RFID SmartSdk - Python Package

Cross-Platform Native AOT Python bindings for Beetech Universal RFID & IoT Edge Gateway.

## Features
- **Zero-Setup Native Bundling**: Includes precompiled Native AOT binaries for Windows x64, Linux x64, and macOS Universal (Apple Silicon & Intel).
- **Sub-Millisecond EPC Bitwise Encoding**: Native ChaCha20 encryption & GS1 SGTIN-96 translation.
- **Hardware Agnostic**: Connect to Impinj, Zebra, Urovo, Caen, and Unitech readers seamlessly.
- **Direction & Velocity Classification**: Built-in DualPortal and QuadPortal movement classifiers.

## Quickstart

```python
from beetech_smartsdk import SmartSdkManager

# 1. Hardware Fingerprint & Licensing
print("Fingerprint:", SmartSdkManager.get_hardware_fingerprint())
SmartSdkManager.set_dev_license_bypass(True)

# 2. ChaCha20 EPC Cryptography
encrypted = SmartSdkManager.encrypt_epc(987654321012345, "A1B2")
tag_id, tag_type = SmartSdkManager.decrypt_epc(encrypted)
print(f"Decrypted: {tag_id} [{tag_type}]")

# 3. Native Reader Controller
with SmartSdkManager.create_reader("virtual-sandbox", 101, "mock://127.0.0.1") as reader:
    reader.add_tag_callback(lambda evt: print(f"Tag: {evt.epc}, RSSI: {evt.rssi}"))
    reader.connect()
    reader.start_inventory()
```
