Control code for the A-Lab GPSS platform.
This repository includes:
- Hardware device and task orchestration:
alab_gpss.system - Sample-management backend and UI:
alab_gpss.backend,alab_gpss/ui(FastAPI + React)
Use this module-level package when you want to:
- Run the local/simulated GPSS service stack
- Access the sample-management UI and AlabOS integration
- Submit and monitor experiments through the standard interfaces
Before starting services:
- Install MongoDB and RabbitMQ.
- Ensure both services are running.
Set the environment variable so AlabOS can find the configuration file:
export ALABOS_CONFIG_PATH=system/alabos_config_example.tomlOpen three terminals and start the three services provided by AlabOS + A-Lab GPSS.
You need ALABOS_CONFIG_PATH set in all three terminals.
alabos launch # alabos main process
alabos launch_worker # alabos worker process
python -m alab_gpss.backend.server # alab_gpss sample management user interfaceService roles:
alabos launch: Main AlabOS processalabos launch_worker: Worker process for background executionpython -m alab_gpss.backend.server: GPSS backend/UI server
After all services start, two webpages should be available:
-
This is the sample-management interface. Use it to track sample status and position, and to trigger manual measurements (for example, starting XRD/EIS measurements).
-
This is the AlabOS main interface. Submit experiments here to run them on the lab.
AlabOS provides API endpoints for experiment management. For details, see the AlabOS documentation.
To submit an experiment to A-Lab GPSS, refer to submit_template.ipynb.
If you need a fresh start, you can clean the database with the command below. Do not run this against a production database.
alabos clean -a
