3.5 KiB
3.5 KiB
Offline JSBSim Environment Setup
This folder contains the offline files needed to run the service JSBSim backend on a Windows x64 machine.
Included Files
offline-deps/
installers/
python-3.13.12-amd64.exe
wheels/
jsbsim-1.3.0-cp313-cp313-win_amd64.whl
numpy-2.4.4-cp313-cp313-win_amd64.whl
checksums/
SHA256SUMS.txt
python-runtime/
...
venv/
Scripts/
python.exe
python-runtime/ is a project-local Python installation used to create venv/.
venv/ is the runtime environment used by the Node service.
Fresh Offline Install
Run these commands from the repository root:
cd D:\Coding\AS_Test
powershell.exe -ExecutionPolicy Bypass -File .\offline-deps\setup-jsbsim-offline.ps1
The script will:
- install the bundled Python runtime into
offline-deps\python-runtime - create
venv - install JSBSim from
offline-deps\wheels - write
service\.env.local
To force-create venv again:
powershell.exe -ExecutionPolicy Bypass -File .\offline-deps\setup-jsbsim-offline.ps1 -Force
Manual Install
Run these commands from the repository root:
cd D:\Coding\AS_Test
offline-deps\installers\python-3.13.12-amd64.exe /quiet InstallAllUsers=0 TargetDir="%CD%\offline-deps\python-runtime" Include_launcher=0 PrependPath=0 Include_test=0 Include_doc=0 Include_tcltk=0 Include_pip=1
offline-deps\python-runtime\python.exe -m venv venv
.\venv\Scripts\python.exe -m pip install --no-index --find-links offline-deps\wheels jsbsim==1.3.0
Verify Python Packages
.\venv\Scripts\python.exe -c "import jsbsim, numpy; print('jsbsim', jsbsim.__version__); print('numpy', numpy.__version__)"
Expected versions:
jsbsim 1.3.0
numpy 2.4.4
Run Service With JSBSim Backend
If you used the one-click setup script, it already created service\.env.local.
You can start the service directly:
cd D:\Coding\AS_Test\service
npm.cmd run start
Manual environment setup:
cd D:\Coding\AS_Test\service
$env:SIM_BACKEND='jsbsim'
$env:JSBSIM_PYTHON='D:\Coding\AS_Test\venv\Scripts\python.exe'
npm.cmd run start
The service URL remains:
http://127.0.0.1:4317
Smoke Test
In a second PowerShell window:
Invoke-RestMethod -Uri http://127.0.0.1:4317/health
Then test trim:
$body = @{
aircraftId = 'c172p-jsbsim'
altitudeM = 1000
speedMps = 50
headingDeg = 0
flightPathAngleDeg = 0
} | ConvertTo-Json -Depth 8
Invoke-RestMethod -Uri http://127.0.0.1:4317/trim -Method Post -ContentType 'application/json' -Body $body
Then test straight simulation:
$body = @{
aircraftId = 'c172p-jsbsim'
sampleRateHz = 5
durationSec = 1
initialState = @{
position = @(0, 1000, 0)
velocityMps = 50
headingDeg = 0
}
maneuver = @{
type = 'straight'
parameters = @{
flightPathAngleDeg = 0
}
}
} | ConvertTo-Json -Depth 8
Invoke-RestMethod -Uri http://127.0.0.1:4317/simulate -Method Post -ContentType 'application/json' -Body $body
Notes
- The current JSBSim backend supports
straight,climb, anddescentonly. level-turnis still handled by the mock backend until JSBSim control input scripting is added.- The current smoke-test aircraft is
c172p-jsbsim. - If deploying to a different path, update
JSBSIM_PYTHONto point at that machine'svenv\Scripts\python.exe. - If using custom JSBSim aircraft data instead of the data bundled with the Python wheel, set
JSBSIM_ROOT.