@node-i3x/demo-embedded 0.2.4 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSING.md +2 -2
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/LICENSING.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Dual Licensing Guide
|
|
2
2
|
|
|
3
|
-
> **
|
|
3
|
+
> **node-i3x** is dual-licensed under the **AGPL-3.0-or-later** and a
|
|
4
4
|
> **Sterfive Commercial License**. This document explains what each
|
|
5
5
|
> license allows and when you need which.
|
|
6
6
|
|
|
@@ -45,7 +45,7 @@ copyleft to **network use**. This is the key difference from the GPL:
|
|
|
45
45
|
|
|
46
46
|
### The Critical Implication
|
|
47
47
|
|
|
48
|
-
> **If you use
|
|
48
|
+
> **If you use node-i3x in a server that users interact with over
|
|
49
49
|
> a network** (REST API, web app, cloud platform, IoT gateway),
|
|
50
50
|
> you **must** make your **entire application's source code**
|
|
51
51
|
> available to those users under the AGPL — even if you never
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{parseArgs as
|
|
2
|
+
import{parseArgs as H}from"util";import{consoleLogger as z,HistoryService as X,ModelService as G,SubscriptionService as k,TypeService as q,ValueService as J}from"@node-i3x/core";import{PseudoSessionDataSourceAdapter as K}from"@node-i3x/pseudo-session-connector";import{createApp as Q}from"@node-i3x/rest-server";import{AccessLevelFlag as e,DataType as a,nodesets as Y,OPCUAServer as Z,StatusCodes as ee,Variant as n}from"node-opcua";var{values:V}=H({options:{"rest-port":{type:"string",default:"8080"},"opcua-port":{type:"string",default:"48410"},help:{type:"boolean",short:"h",default:!1}}});V.help&&(console.log(`
|
|
3
3
|
Usage: i3x-demo [options]
|
|
4
4
|
|
|
5
5
|
Options:
|
|
6
6
|
--rest-port <port> REST API port (default: 8080)
|
|
7
7
|
--opcua-port <port> OPC UA server port (default: 48410)
|
|
8
8
|
-h, --help Show this help
|
|
9
|
-
`),process.exit(0));var
|
|
9
|
+
`),process.exit(0));var d=parseInt(V["rest-port"],10),N=parseInt(V["opcua-port"],10);function c(r,l,t){r.setValueFromSource(new n({dataType:l,value:t}))}async function ae(){let r=new Z({port:N,resourcePath:"/UA/EmbeddedDemo",nodeset_filename:[Y.standard],serverInfo:{applicationName:{text:"i3X Embedded Demo"}}});await r.initialize();let l=r.engine.addressSpace,t=l.getOwnNamespace(),o=t.addObject({organizedBy:l.rootFolder.objects,browseName:"SmartFactory",displayName:"Smart Factory"}),s=t.addObject({componentOf:o,browseName:"Pump",displayName:"Main Coolant Pump"}),m=t.addVariable({componentOf:s,browseName:"Temperature",displayName:"Temperature (\xB0C)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:35})}),v=t.addVariable({componentOf:s,browseName:"Pressure",displayName:"Pressure (bar)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:4.2})}),p=t.addVariable({componentOf:s,browseName:"FlowRate",displayName:"Flow Rate (L/min)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:120.5})}),f=t.addVariable({componentOf:s,browseName:"Running",displayName:"Running",dataType:a.Boolean,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Boolean,value:!0})}),i=t.addObject({componentOf:o,browseName:"Heater",displayName:"Process Heater"}),y=t.addVariable({componentOf:i,browseName:"HeaterOn",displayName:"Heater On/Off",dataType:a.Boolean,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Boolean,value:!0})}),u=t.addVariable({componentOf:i,browseName:"Temperature",displayName:"Temperature (\xB0C)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:180})}),re=t.addVariable({componentOf:i,browseName:"Setpoint",displayName:"Setpoint (\xB0C)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:200})}),D=t.addVariable({componentOf:i,browseName:"Power",displayName:"Power (%)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:85})}),P=t.addObject({componentOf:o,browseName:"Conveyor",displayName:"Assembly Conveyor"}),R=t.addVariable({componentOf:P,browseName:"Speed",displayName:"Speed (m/s)",dataType:a.Double,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.Double,value:2.3})}),I=t.addVariable({componentOf:P,browseName:"ItemCount",displayName:"Items Processed",dataType:a.UInt32,minimumSamplingInterval:250,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new n({dataType:a.UInt32,value:8452})}),U=[m,v,p,u,D,R,I];for(let b of U)b.accessLevel=e.CurrentRead|e.CurrentWrite|e.HistoryRead,b.userAccessLevel=e.CurrentRead|e.CurrentWrite|e.HistoryRead,l.installHistoricalDataNode(b,{maxOnlineValues:1e3});let j=[{variable:m,dataType:a.Double,base:35,jitter:1},{variable:v,dataType:a.Double,base:4.2,jitter:.5},{variable:p,dataType:a.Double,base:120.5,jitter:5},{variable:u,dataType:a.Double,base:180,jitter:3},{variable:D,dataType:a.Double,base:85,jitter:10},{variable:R,dataType:a.Double,base:2.3,jitter:.3},{variable:I,dataType:a.UInt32,base:8e3,jitter:50,isInt:!0}],L=Date.now(),E=3e4,_=36e5;for(let{variable:b,dataType:$,base:F,jitter:x,isInt:B}of j)for(let O=L-_;O<L;O+=E){let A=F+(Math.random()-.5)*x*2;B&&(A=Math.round(A)),b.setValueFromSource(new n({dataType:$,value:A}),ee.Good,new Date(O))}let M=35,C=4.2,w=120.5,h=!0,S=180,T=85,g=2.3,W=8452;return setInterval(()=>{M+=(Math.random()-.48)*.5,C+=(Math.random()-.5)*.1,C=Math.max(3,Math.min(6,C)),w+=(Math.random()-.5)*2,w=Math.max(100,Math.min(140,w)),c(m,a.Double,M),c(v,a.Double,C),c(p,a.Double,w)},800),setInterval(()=>{h?(S+=(200-S)*.05+(Math.random()-.5)*.3,T=Math.max(0,Math.min(100,T+(Math.random()-.5)*5))):(S-=1.5+Math.random()*.5,T=0),c(u,a.Double,S),c(D,a.Double,T)},1e3),setInterval(()=>{h=!h,c(y,a.Boolean,h)},15e3),setInterval(()=>{W+=Math.floor(Math.random()*3),g+=(Math.random()-.5)*.1,g=Math.max(1.5,Math.min(3.5,g)),c(R,a.Double,g),c(I,a.UInt32,W)},1200),await r.start(),{server:r,addressSpace:l}}async function te(){let r=z;console.log(`
|
|
10
10
|
${"\u2550".repeat(60)}`),console.log(" \u{1F3ED} i3X Embedded Demo \u2014 PseudoSession Connector"),console.log("\u2550".repeat(60)),console.log(`
|
|
11
|
-
\u25B6 Starting OPC UA server...`);let{server:l,addressSpace:
|
|
12
|
-
\u25B6 Connecting i3X via PseudoSession...`);let
|
|
13
|
-
\u25B6 Building i3X model from AddressSpace...`);let i=await
|
|
14
|
-
${"\u2550".repeat(60)}`),console.log(` \u{1F680} i3X REST API ready at http://127.0.0.1:${
|
|
15
|
-
Try these:`),console.log(` curl http://localhost:${
|
|
16
|
-
OPC UA clients can also connect to opc.tcp://localhost:${
|
|
11
|
+
\u25B6 Starting OPC UA server...`);let{server:l,addressSpace:t}=await ae();console.log(` \u2713 OPC UA binary endpoint at opc.tcp://localhost:${N}/UA/EmbeddedDemo`),console.log(`
|
|
12
|
+
\u25B6 Connecting i3X via PseudoSession...`);let o=new K(t,r);await o.connect(),console.log(" \u2713 Connected \u2014 zero-network, in-process");let s=new G(o,r),m=new J(o,s,r),v=new X(o,s,r),p=new k(o,s,r,1),f=new q(o,r);console.log(`
|
|
13
|
+
\u25B6 Building i3X model from AddressSpace...`);let i=await s.preloadModel();console.log(` \u2713 ${i.nodesById.size} nodes, ${i.rootIds.length} roots, ${i.propertyToSource.size} properties`),await f.preloadTypes();let y=await Q({dataSource:o,modelService:s,typeService:f,valueService:m,historyService:v,subscriptionService:p,logger:r});await y.listen({port:d,host:"127.0.0.1"}),console.log(`
|
|
14
|
+
${"\u2550".repeat(60)}`),console.log(` \u{1F680} i3X REST API ready at http://127.0.0.1:${d}`),console.log("\u2550".repeat(60)),console.log(`
|
|
15
|
+
Try these:`),console.log(` curl http://localhost:${d}/health`),console.log(` curl http://localhost:${d}/v1/info`),console.log(` curl http://localhost:${d}/v1/namespaces`),console.log(` curl -X POST http://localhost:${d}/v1/objects/list`),console.log(`
|
|
16
|
+
OPC UA clients can also connect to opc.tcp://localhost:${N}/UA/EmbeddedDemo`),console.log(`
|
|
17
17
|
Press Ctrl+C to stop.
|
|
18
|
-
`);let
|
|
18
|
+
`);let u=async()=>{console.log(`
|
|
19
19
|
|
|
20
|
-
Shutting down...`),await
|
|
20
|
+
Shutting down...`),await y.close(),await p.close(),await o.disconnect(),await l.shutdown(500),process.exit(0)};process.on("SIGINT",u),process.on("SIGTERM",u)}te().catch(r=>{console.error("Fatal:",r),process.exit(1)});
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"mappings":";AAQA,OAAS,aAAAA,MAAiB,OAC1B,OACE,iBAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,gBAAAC,MACK,iBACP,OAAS,kCAAAC,MAAsC,qCAC/C,OAAS,aAAAC,MAAiB,wBAC1B,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"mappings":"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","names":["parseArgs","consoleLogger","HistoryService","ModelService","SubscriptionService","TypeService","ValueService","PseudoSessionDataSourceAdapter","createApp","AccessLevelFlag","DataType","nodesets","OPCUAServer","StatusCodes","Variant","args","REST_PORT","OPCUA_PORT","setVar","v","dataType","val","createSampleServer","server","addressSpace","ns","factory","pump","pumpTempVar","pumpPressVar","pumpFlowVar","_pumpRunVar","heater","heaterOnVar","heaterTempVar","_heaterSetpointVar","heaterPowerVar","conveyor","convSpeedVar","itemCountVar","historizedVars","seedConfig","now","SEED_INTERVAL_MS","SEED_DURATION_MS","variable","base","jitter","isInt","t","pumpTemp","pumpPressure","pumpFlowRate","heaterOn","heaterTemp","heaterPower","convSpeed","itemCount","main","logger","dataSource","modelService","valueService","historyService","subscriptionService","typeService","model","app","shutdown","err"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-i3x/demo-embedded",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"license": "AGPL-3.0-or-later OR LicenseRef-Sterfive-Commercial",
|
|
5
5
|
"author": "Sterfive SAS <contact@sterfive.com> (https://sterfive.com)",
|
|
6
6
|
"homepage": "https://sterfive.com",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/node-opcua/
|
|
9
|
+
"url": "git+https://github.com/node-opcua/node-i3x.git",
|
|
10
10
|
"directory": "packages/demo-embedded"
|
|
11
11
|
},
|
|
12
12
|
"description": "End-to-end demo: OPC UA server + i3X REST API wired via PseudoSession",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"client": "npx tsx src/client.ts"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@node-i3x/core": "0.2
|
|
44
|
-
"@node-i3x/opcua-connector": "0.2
|
|
45
|
-
"@node-i3x/pseudo-session-connector": "0.2
|
|
46
|
-
"@node-i3x/rest-server": "0.2
|
|
43
|
+
"@node-i3x/core": "0.3.2",
|
|
44
|
+
"@node-i3x/opcua-connector": "0.3.2",
|
|
45
|
+
"@node-i3x/pseudo-session-connector": "0.3.2",
|
|
46
|
+
"@node-i3x/rest-server": "0.3.2",
|
|
47
47
|
"fastify": "^5.8.5",
|
|
48
48
|
"@fastify/cors": "^11.2.0",
|
|
49
49
|
"fastify-plugin": "^6.0.0",
|