Skip to content

Commit 7744ad4

Browse files
committed
feat(cosim): scaffold @modelscript/cosim package with mqtt co-simulation engine, uns topic hierarchy, gauss-seidel orchestrator, historian recorder, docker mosquitto + timescaledb
1 parent 7d5d065 commit 7744ad4

19 files changed

Lines changed: 2260 additions & 11 deletions

config/mosquitto.conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Mosquitto MQTT broker configuration for ModelScript co-simulation.
2+
# ISA-95 Unified Namespace topics flow through this broker.
3+
4+
# MQTT listener (for server-side components)
5+
listener 1883
6+
protocol mqtt
7+
8+
# WebSocket listener (for browser clients: Morsel, IDE)
9+
listener 9001
10+
protocol websockets
11+
12+
# Allow anonymous connections for development
13+
allow_anonymous true
14+
15+
# Persistence for retained messages (participant birth certificates)
16+
persistence true
17+
persistence_location /mosquitto/data/

docker-compose.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,26 @@
11
services:
2+
mqtt:
3+
image: eclipse-mosquitto:2
4+
ports:
5+
- "1883:1883"
6+
- "9001:9001"
7+
volumes:
8+
- ./config/mosquitto.conf:/mosquitto/config/mosquitto.conf
9+
- mqtt-data:/mosquitto/data
10+
restart: unless-stopped
11+
12+
timescaledb:
13+
image: timescale/timescaledb:latest-pg16
14+
ports:
15+
- "5432:5432"
16+
environment:
17+
- POSTGRES_DB=modelscript_historian
18+
- POSTGRES_USER=modelscript
19+
- POSTGRES_PASSWORD=${TIMESCALE_PASSWORD:-modelscript}
20+
volumes:
21+
- timescale-data:/var/lib/postgresql/data
22+
restart: unless-stopped
23+
224
api:
325
image: ghcr.io/modelscript/api:latest
426
build:
@@ -8,9 +30,14 @@ services:
830
- "3000:3000"
931
volumes:
1032
- api-data:/app/packages/api/data
33+
depends_on:
34+
- mqtt
35+
- timescaledb
1136
environment:
1237
- NODE_ENV=production
1338
- PORT=3000
39+
- MQTT_BROKER_URL=mqtt://mqtt:1883
40+
- TIMESCALE_URL=postgresql://modelscript:${TIMESCALE_PASSWORD:-modelscript}@timescaledb:5432/modelscript_historian
1441
restart: unless-stopped
1542

1643
morsel:
@@ -54,3 +81,5 @@ services:
5481

5582
volumes:
5683
api-data:
84+
mqtt-data:
85+
timescale-data:

eslint.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default defineConfig([
1111
languageOptions: {
1212
parserOptions: {
1313
projectService: {
14-
allowDefaultProject: ["eslint.config.ts"],
14+
allowDefaultProject: ["eslint.config.ts", "packages/tree-sitter-modelica/grammar.js"],
1515
},
1616
tsconfigRootDir: import.meta.dirname,
1717
},

0 commit comments

Comments
 (0)