Files
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

77 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
EVEREST_DIR="$(cd -- "${SCRIPT_DIR}/../../../../.." && pwd)"
DIST_DIR="${EVEREST_DIR}/build/dist"
DIST_ETC_DIR="${DIST_DIR}/etc/everest"
MANAGER_BIN="${DIST_DIR}/bin/manager"
BUPOWERMETER_BIN="${DIST_DIR}/libexec/everest/modules/BUPowermeter/BUPowermeter"
if [[ ! -x "${MANAGER_BIN}" ]]; then
echo "ERROR: manager binary not found/executable at: ${MANAGER_BIN}" >&2
echo "Did you build EVerest and generate the dist/ folder?" >&2
exit 1
fi
if [[ ! -x "${BUPOWERMETER_BIN}" ]]; then
echo "ERROR: BUPowermeter binary not found/executable at: ${BUPOWERMETER_BIN}" >&2
echo "Did you build EVerest and generate the dist/ folder?" >&2
exit 1
fi
if [[ ! -d "${DIST_ETC_DIR}" ]]; then
echo "ERROR: dist etc dir not found at: ${DIST_ETC_DIR}" >&2
exit 1
fi
other_pids=()
cleanup() {
for pid in "${other_pids[@]:-}"; do
kill "${pid}" 2>/dev/null || true
done
}
trap cleanup EXIT INT TERM
read -r -p "Start CGEM580 bringup with 1, 6, 7, 12 or 13 devices? [1/6/7/12/13]: " device_count
case "${device_count}" in
1)
config_file="config-bringup-CGEM580.yaml"
;;
6)
config_file="config-bringup-CGEM580-6x.yaml"
;;
7)
config_file="config-bringup-CGEM580-7x.yaml"
;;
12)
config_file="config-bringup-CGEM580-12x.yaml"
;;
13)
config_file="config-bringup-CGEM580-13x.yaml"
;;
*)
echo "Invalid choice: '${device_count}'. Please enter 1, 6, 7, 12 or 13."
exit 2
;;
esac
if [[ ! -f "${DIST_ETC_DIR}/${config_file}" ]]; then
echo "ERROR: config file not found at: ${DIST_ETC_DIR}/${config_file}" >&2
exit 1
fi
# Start manager first, then powermeters. When the manager window closes, all others will be closed as well.
# Important: run with CWD in ${DIST_ETC_DIR} (matches previous scripts and avoids any CWD-sensitive behavior).
xterm -bg black -fg white -geometry 400x150 -e bash -lc "cd \"${DIST_ETC_DIR}\" && \"${MANAGER_BIN}\" --prefix \"${DIST_DIR}\" --conf \"${config_file}\"" &
manager_pid=$!
for i in $(seq 1 "${device_count}"); do
xterm -bg black -fg white -geometry 200x55 -e bash -lc "cd \"${DIST_ETC_DIR}\" && sleep 1 && \"${BUPOWERMETER_BIN}\" --module cli_${i}" &
other_pids+=($!)
done
wait "${manager_pid}"