{
  "name": "cassandra-rc2-firmware",
  "private": true,
  "version": "0.9.0",
  "description": "Firmware for Cassandra RC2 project using PlatformIO",
  "scripts": {
    "build": "pio run -e waveshare",
    "build:p4": "pio run -e esp32-p4-evboard",
    "upload:p4": "pio run -e esp32-p4-evboard -t upload",
    "monitor:p4": "pio device monitor --filter esp32_exception_decoder -e esp32-p4-evboard -b 115200",
    "update:p4": "npm run build:p4 && npm run upload:p4",
    "uploadfs:p4": "pio run -e esp32-p4-evboard -t uploadfs",
    "build:p4:fs": "pio run -e esp32-p4-evboard -t uploadfs",
    "build:dev": "cross-env DEV_IP_OVERRIDE_STA_IP=192.168.1.251 pio run -e waveshare",
    "update:dev": "npm run build:dev && npm run upload",
    "idf:build": "bash scripts/idf-build.sh",
    "idf:flash": "bash scripts/idf-flash.sh",
    "idf:monitor": "bash scripts/idf-monitor.sh",
    "idf:setup": "python C:\\Espressif\\frameworks\\esp-idf-v5.3.1\\tools\\idf_tools.py install-python-env",
    "build:clean": "pio run -t clean -v",
    "build:proto": "npm run build:proto:c && npm run build:proto:js",
    "build:proto:c": "python scripts/run_nanopb_generator.py",
    "build:proto:js": "pm-config build-proto",
    "build:release": "pio run -e waveshare-release",
    "build:release-debug": "pio run -e waveshare-release-debug",
    "build:release:fs": "pio run -e waveshare-release -t uploadfs",
    "build:release-debug:fs": "pio run -e waveshare-release-debug -t uploadfs",
    "build:run": "pio run && pio run -t upload && pio device monitor",
    "build:waveshare": "pio run -e waveshare",
    "serial:status": "python scripts/monitor_serial.py -c \"<<1;2;64;printRegisters:1:0>>\" -x",
    "serial:reset": "python scripts/monitor_serial.py -c \"<<1;2;64;reset:1:0>>\"",
    "upload:waveshare": "pio run -t upload -e waveshare && npm run",
    "erase:fs": "pio run --target erase -v",
    "monitor": "pio device monitor --filter esp32_exception_decoder",
    "serial:send-cmd": "python scripts/send_serial_cmd.py \"<<1;2;64;printRegisters:1:0>>\"",
    "serial:send": "python scripts/send_message.py",
    "modbus:read:coil": "python scripts/modbus_read_coils.py",
    "modbus:read:holding": "python scripts/modbus_read_registers.py",
    "modbus:write:coil": "python scripts/modbus_write_coil.py",
    "modbus:write:holding": "python scripts/modbus_write_register.py",
    "test:serial:rate": "python scripts/rate_test_serial.py \"<<1;2;64;list:1:0>>\"",
    "test:serial:counter:get": "python scripts/send_serial_cmd.py \"<<1;2;64;getCounter:1:0>>\"",
    "test:transports": "vitest run",
    "test:modbus-tcp:basic": "vitest run tests/read-registers.test.ts",
    "test:modbus-tcp:sako": "vitest run tests/sako.test.ts",
    "test:websocket:basic": "vitest run tests/read-ws.test.ts",
    "test:serial:basic": "vitest run tests/list-serial.test.ts",
    "test:api": "python scripts/test_api.py",
    "test:api:ip": "python scripts/test_api.py --host 192.168.1.250",
    "test:api:working": "python scripts/test_working_api.py",
    "test:api:system-info": "python scripts/test_system_info.py",
    "test:api:system-info:ip": "python scripts/test_system_info.py --host 192.168.1.250",
    "web:dev": "cd ../web/packages/modbus-ui && npm run dev",
    "web:sync": "sh ./scripts/web.sh",
    "web:build-dist": "cd ../web/packages/modbus-ui && npm run build",
    "web:uploadfs": "pio run -t uploadfs -e waveshare",
    "web:uploadfs-release": "pio run -t uploadfs -e waveshare-release",
    "web:uploadfs:p4": "pio run -t uploadfs -e esp32-p4-evboard",
    "web:clean": "rm -rf data/*",
    "web:update": "npm run web:clean && npm run web:build-dist && npm run web:sync && npm run web:uploadfs",
    "web:update-release": "npm run web:clean && npm run web:build-dist && npm run web:sync && npm run web:uploadfs-release",
    "test": "echo \"Error: no test specified\" && exit 1",
    "docs:generate": "cd docs && doxygen Doxyfile",
    "test:api:logs": "python scripts/test_logs_api.py",
    "test:api:logs:ip": "python scripts/test_logs_api.py --host 192.168.1.250",
    "debug:serial": "python scripts/fetch_logs.py",
    "debug:boot-metrics": "python scripts/get_boot_metrics.py",
    "upload:release": "pio run -t upload -e waveshare-release",
    "upload:release-debug": "pio run -t upload -e waveshare-release-debug",
    "upload": "pio run -t upload -e waveshare",
    "update-test": "npm run build && npm run upload && npm run serial:status",
    "update": "npm run build && npm run upload",
    "update:master": "npm run build && pio run -t upload -e waveshare --upload-port COM3",
    "update:slave": "npm run build && pio run -t upload -e waveshare --upload-port COM6",
    "update-all": "npm run web:update && npm run update",
    "update-all-release": "npm run web:update-release && npm run update-release",
    "update-release": "pio run -e waveshare-release -t upload",
    "update-release-debug": "pio run -e waveshare-release-debug -t upload",
    "create-bundle": "sh ./scripts/create-bundle.sh",
    "index": "platformio run -t compiledb",
    "update:pio": "pio pkg update",
    "list:ports": "pio device list"
  },
  "keywords": [
    "esp32",
    "platformio",
    "firmware",
    "iot"
  ],
  "author": "",
  "license": "ISC",
  "url": "https://polymech.info/en/resources/cassandra/",
  "devDependencies": {
    "@types/node": "^22.15.3",
    "@types/serialport": "^8.0.5",
    "@types/ws": "^8.18.1",
    "cross-env": "^7.0.3",
    "jsmodbus": "^4.0.10",
    "nexe": "^5.0.0-beta.4",
    "serialport": "^13.0.0",
    "tslog": "^4.9.3",
    "typescript": "^5.8.3",
    "vitest": "^3.1.2",
    "ws": "^8.18.1"
  },
  "dependencies": {
    "@polymech/fs": "file:../../polymech-mono/packages/fs",
    "chalk": "^5.4.1",
    "fs-extra": "^11.3.0",
    "protobufjs-cli": "^1.1.3",
    "simple-git": "^3.30.0"
  }
}