turingscreencli


Nameturingscreencli JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryCLI utilities for the Turing Smart Screen 8.8" V1.1 device.
upload_time2025-10-20 16:38:09
maintainerNone
docs_urlNone
authorStudy Hsueh
requires_python>=3.9
licenseMIT License Copyright (c) 2025 Study Hsueh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords turing smart-screen lcd usb
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Turing Smart Screen CLI

Warning: This is an unofficial implementation; use at your own risk.

## Overview

Turing Smart Screen CLI provides command-line utilities for managing the Turing Smart Screen 8.8" V1.1 USB display. All operations run on-demand—no background daemon is left running—and lower level USB/HID errors are surfaced directly to aid scripting.

## Supported Hardware

- Turing Smart Screen 8.8" V1.1 (USB VID 0x1CBE, PID 0x0088)

## Features

- Send sync, restart, and configuration commands to the device.
- Adjust brightness, frame rate, and persist settings to flash.
- Upload PNG/H264 assets to on-device storage and list or delete them.
- Stream PNG frames directly to the panel or play MP4 videos via FFmpeg conversion.
- Trigger playback of stored PNG or H264 assets and stop active playback.

## Installation

```bash
pip install turingscreencli

python -m venv .venv
source .venv/bin/activate
pip install -e .
# or grab tooling extras
pip install -e .[dev]
```

On macOS/Linux you may need to install FFmpeg separately (e.g., `brew install ffmpeg`).

## Usage Examples

```bash
# Enumerate and sanity check device connectivity
turing-screen sync

# Adjust device state
turing-screen brightness --value 64
turing-screen save --brightness 96 --rotation 2

# Send media directly to the panel
turing-screen send-image --path assets/sample.png
turing-screen send-video --path demo.mp4 --loop

# Work with on-device storage
turing-screen refresh-storage
turing-screen upload --path demo.png
turing-screen list-storage --type image
turing-screen delete --filename demo.png
turing-screen play-select --filename demo.png
turing-screen stop-play
```

Installing the package provides a `turing-screen` console script.

## Command Summary

- `sync` – Ping the panel to keep it responsive.
- `restart` – Reboot the panel.
- `refresh-storage` – Display SD card usage statistics.
- `clear-image` – Push a transparent frame to clear the panel.
- `stop-play` – Stop any active playback.
- `brightness --value` – Set LCD brightness.
- `save` – Persist brightness/startup/rotation/offline settings.
- `list-storage --type image|video` – List files on the device.
- `send-image --path` – Stream a PNG to the screen.
- `send-video --path [--loop]` – Stream MP4/H264 video.
- `upload --path` – Upload PNG/MP4 assets to storage.
- `delete --filename` – Delete PNG/H264 assets.
- `play-select --filename` – Play a stored PNG/H264 asset.

## Development & Testing

Install the dev extras and run the automated checks before submitting changes:

```bash
pip install -e .[dev]
python -m compileall src
python -m pytest
python -m pytest --cov=turingscreencli
python -m ruff check src tests  # if you have ruff installed
black src tests
flake8 src tests
mypy src
```

Tests under `tests/` rely on pytest and exercise CLI argument parsing and dispatch logic with USB communication stubbed out.

## Troubleshooting

- "USB device not found" – confirm the panel is connected and powered. On Linux detach the kernel driver with `dev.detach_kernel_driver(0)` or configure udev rules.
- Permission errors on Linux – create matching udev rules granting access to VID 0x1CBE/PID 0x0088 or run the CLI with elevated privileges.
- FFmpeg not found – ensure FFmpeg is installed and on your `PATH` for video encoding.
- Playback glitches – verify assets meet the device requirements (PNG 480×1920, H264 video when stored on the device).

## Device Storage Structure

- Images: `/tmp/sdcard/mmcblk0p1/img/`
- Videos: `/tmp/sdcard/mmcblk0p1/video/`

## License

Released under the MIT License. See `LICENSE` for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "turingscreencli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "turing, smart-screen, lcd, usb",
    "author": "Study Hsueh",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/86/ff/82464321716c63a7626ee421024faa9502ad983d48c983211cbf6ef497aa/turingscreencli-0.1.0.tar.gz",
    "platform": null,
    "description": "# Turing Smart Screen CLI\n\nWarning: This is an unofficial implementation; use at your own risk.\n\n## Overview\n\nTuring Smart Screen CLI provides command-line utilities for managing the Turing Smart Screen 8.8\" V1.1 USB display. All operations run on-demand\u2014no background daemon is left running\u2014and lower level USB/HID errors are surfaced directly to aid scripting.\n\n## Supported Hardware\n\n- Turing Smart Screen 8.8\" V1.1 (USB VID 0x1CBE, PID 0x0088)\n\n## Features\n\n- Send sync, restart, and configuration commands to the device.\n- Adjust brightness, frame rate, and persist settings to flash.\n- Upload PNG/H264 assets to on-device storage and list or delete them.\n- Stream PNG frames directly to the panel or play MP4 videos via FFmpeg conversion.\n- Trigger playback of stored PNG or H264 assets and stop active playback.\n\n## Installation\n\n```bash\npip install turingscreencli\n\npython -m venv .venv\nsource .venv/bin/activate\npip install -e .\n# or grab tooling extras\npip install -e .[dev]\n```\n\nOn macOS/Linux you may need to install FFmpeg separately (e.g., `brew install ffmpeg`).\n\n## Usage Examples\n\n```bash\n# Enumerate and sanity check device connectivity\nturing-screen sync\n\n# Adjust device state\nturing-screen brightness --value 64\nturing-screen save --brightness 96 --rotation 2\n\n# Send media directly to the panel\nturing-screen send-image --path assets/sample.png\nturing-screen send-video --path demo.mp4 --loop\n\n# Work with on-device storage\nturing-screen refresh-storage\nturing-screen upload --path demo.png\nturing-screen list-storage --type image\nturing-screen delete --filename demo.png\nturing-screen play-select --filename demo.png\nturing-screen stop-play\n```\n\nInstalling the package provides a `turing-screen` console script.\n\n## Command Summary\n\n- `sync` \u2013 Ping the panel to keep it responsive.\n- `restart` \u2013 Reboot the panel.\n- `refresh-storage` \u2013 Display SD card usage statistics.\n- `clear-image` \u2013 Push a transparent frame to clear the panel.\n- `stop-play` \u2013 Stop any active playback.\n- `brightness --value` \u2013 Set LCD brightness.\n- `save` \u2013 Persist brightness/startup/rotation/offline settings.\n- `list-storage --type image|video` \u2013 List files on the device.\n- `send-image --path` \u2013 Stream a PNG to the screen.\n- `send-video --path [--loop]` \u2013 Stream MP4/H264 video.\n- `upload --path` \u2013 Upload PNG/MP4 assets to storage.\n- `delete --filename` \u2013 Delete PNG/H264 assets.\n- `play-select --filename` \u2013 Play a stored PNG/H264 asset.\n\n## Development & Testing\n\nInstall the dev extras and run the automated checks before submitting changes:\n\n```bash\npip install -e .[dev]\npython -m compileall src\npython -m pytest\npython -m pytest --cov=turingscreencli\npython -m ruff check src tests  # if you have ruff installed\nblack src tests\nflake8 src tests\nmypy src\n```\n\nTests under `tests/` rely on pytest and exercise CLI argument parsing and dispatch logic with USB communication stubbed out.\n\n## Troubleshooting\n\n- \"USB device not found\" \u2013 confirm the panel is connected and powered. On Linux detach the kernel driver with `dev.detach_kernel_driver(0)` or configure udev rules.\n- Permission errors on Linux \u2013 create matching udev rules granting access to VID 0x1CBE/PID 0x0088 or run the CLI with elevated privileges.\n- FFmpeg not found \u2013 ensure FFmpeg is installed and on your `PATH` for video encoding.\n- Playback glitches \u2013 verify assets meet the device requirements (PNG 480\u00d71920, H264 video when stored on the device).\n\n## Device Storage Structure\n\n- Images: `/tmp/sdcard/mmcblk0p1/img/`\n- Videos: `/tmp/sdcard/mmcblk0p1/video/`\n\n## License\n\nReleased under the MIT License. See `LICENSE` for details.\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 Study Hsueh\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "CLI utilities for the Turing Smart Screen 8.8\" V1.1 device.",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/phstudy/turing-smart-screen-cli",
        "Issues": "https://github.com/phstudy/turing-smart-screen-cli/issues"
    },
    "split_keywords": [
        "turing",
        " smart-screen",
        " lcd",
        " usb"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a42b4219ee5d93163eee42fabae3dc12370adf2ae193f267f69f577316b6ee7",
                "md5": "693a082923234c175072d7500f94b31c",
                "sha256": "5716583f0a6dbff55dc7171502ce2c1cdbda8e468bf91b24ea7b005dab30e527"
            },
            "downloads": -1,
            "filename": "turingscreencli-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "693a082923234c175072d7500f94b31c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 13708,
            "upload_time": "2025-10-20T16:38:08",
            "upload_time_iso_8601": "2025-10-20T16:38:08.138816Z",
            "url": "https://files.pythonhosted.org/packages/4a/42/b4219ee5d93163eee42fabae3dc12370adf2ae193f267f69f577316b6ee7/turingscreencli-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86ff82464321716c63a7626ee421024faa9502ad983d48c983211cbf6ef497aa",
                "md5": "6b2a5f6e80cd82f55179b013335234f5",
                "sha256": "490b1e741ef6312492f1213666a7e8b066a88d2d53b8f70530ea023be1112ce0"
            },
            "downloads": -1,
            "filename": "turingscreencli-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6b2a5f6e80cd82f55179b013335234f5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 15035,
            "upload_time": "2025-10-20T16:38:09",
            "upload_time_iso_8601": "2025-10-20T16:38:09.802406Z",
            "url": "https://files.pythonhosted.org/packages/86/ff/82464321716c63a7626ee421024faa9502ad983d48c983211cbf6ef497aa/turingscreencli-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-20 16:38:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "phstudy",
    "github_project": "turing-smart-screen-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "turingscreencli"
}
        
Elapsed time: 1.37033s