{"id":20997540,"url":"https://github.com/cdump/radiacode","last_synced_at":"2025-05-16T09:06:01.900Z","repository":{"id":43071143,"uuid":"374154736","full_name":"cdump/radiacode","owner":"cdump","description":" Control RadiaCode-10x radiation detectors via Python. Collect real-time measurements, analyze spectra, and manage device settings over USB or Bluetooth.","archived":false,"fork":false,"pushed_at":"2025-05-02T04:50:21.000Z","size":547,"stargazers_count":168,"open_issues_count":7,"forks_count":23,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-02T05:28:10.559Z","etag":null,"topics":["dosimeter","radiacode","radiascan","radiation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdump.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-05T15:55:51.000Z","updated_at":"2025-05-02T04:50:25.000Z","dependencies_parsed_at":"2024-02-06T08:31:59.636Z","dependency_job_id":"b9b12236-caa0-4a7a-b60e-73decbab7f3f","html_url":"https://github.com/cdump/radiacode","commit_stats":{"total_commits":56,"total_committers":6,"mean_commits":9.333333333333334,"dds":0.25,"last_synced_commit":"9a89ca3c4fe265bb073410216d9419ba392b6733"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdump%2Fradiacode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdump%2Fradiacode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdump%2Fradiacode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdump%2Fradiacode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdump","download_url":"https://codeload.github.com/cdump/radiacode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501558,"owners_count":22081528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dosimeter","radiacode","radiascan","radiation"],"created_at":"2024-11-19T07:40:11.856Z","updated_at":"2025-05-16T09:05:56.892Z","avatar_url":"https://github.com/cdump.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RadiaCode Python Library\n\n[![PyPI version](https://img.shields.io/pypi/v/radiacode)](https://pypi.org/project/radiacode)\n[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nPython library for interfacing with the [RadiaCode-10x](https://www.radiacode.com/) radiation detectors and spectrometers. Control your device, collect measurements, and analyze radiation data with ease.\n\n## 🚀 Features\n\n- 📊 Real-time radiation measurements\n- 📈 Spectrum acquisition and analysis\n- 🔌 USB and Bluetooth connectivity\n- 🌐 Web interface example included\n- 📱 Device configuration management\n\n## 📸 Demo\n\nInteractive web interface example ([backend](radiacode-examples/webserver.py) | [frontend](radiacode-examples/webserver.html)):\n\n![radiacode-webserver-example](./screenshot.png)\n\n## 🎮 Quick Start\n\n### Examples\n```bash\npip install --upgrade 'radiacode[examples]'\n```\n\nRun the web interface shown in the screenshot above:\n```bash\n# Via Bluetooth (replace with your device's address)\n$ python3 -m radiacode-examples.webserver --bluetooth-mac 52:43:01:02:03:04\n\n# Via USB connection\n$ sudo python3 -m radiacode-examples.webserver\n```\n\nBasic terminal output example (same options as web interface):\n```bash\n$ python3 -m radiacode-examples.basic\n```\n\n### Library Usage Example\n```bash\npip install --upgrade radiacode\n```\n```python\nfrom radiacode import RadiaCode, RealTimeData\n\n# Connect to device (USB by default)\ndevice = RadiaCode()\n\n# Get current radiation measurements\ndata = device.data_buf()\nfor record in data:\n    if isinstance(record, RealTimeData):\n        print(f\"Dose rate: {record.dose_rate}\")\n\n# Get spectrum data\nspectrum = device.spectrum()\nprint(f\"Live time: {spectrum.duration}s\")\nprint(f\"Total counts: {sum(spectrum.counts)}\")\n\n# Configure device\ndevice.set_display_brightness(5)  # 0-9 brightness level\ndevice.set_language('en')        # 'en' or 'ru'\n```\n\n#### More Features\n```python\n# Bluetooth connection\ndevice = RadiaCode(bluetooth_mac=\"52:43:01:02:03:04\")\n\n# Connect to specific USB device\ndevice = RadiaCode(serial_number=\"YOUR_SERIAL_NUMBER\")\n\n# Energy calibration\ncoefficients = device.energy_calib()\nprint(f\"Calibration coefficients: {coefficients}\")\n\n# Reset accumulated data\ndevice.dose_reset()\ndevice.spectrum_reset()\n\n# Configure device behavior\ndevice.set_sound_on(True)\ndevice.set_vibro_on(True)\ndevice.set_display_off_time(30)  # Auto-off after 30 seconds\n```\n\n## 🔧 Development Setup\n1. Install prerequisites:\n   ```bash\n   # Install Poetry\n   curl -sSL https://install.python-poetry.org | python3 -\n   ```\n\n2. Clone and setup:\n   ```bash\n   git clone https://github.com/cdump/radiacode.git\n   cd radiacode\n   poetry install\n   ```\n\n3. Run examples:\n   ```bash\n   poetry run python radiacode-examples/basic.py\n   ```\n\n## ⚠️ Platform-Specific Notes\n\n### MacOS\n- ✅ USB connectivity works out of the box\n- ❌ Bluetooth is not supported (bluepy limitation)\n- 📝 Required: `brew install libusb`\n\n### Linux\n- ✅ Both USB and Bluetooth fully supported\n- 📝 Required: `libusb` and Bluetooth libraries\n- 🔑 May need [udev rules](radiacode.rules) for USB access\n\n### Windows\n- ✅ USB connectivity supported\n- ✅ Bluetooth supported\n- 📝 Required: USB drivers\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdump%2Fradiacode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdump%2Fradiacode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdump%2Fradiacode/lists"}