X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=README.md;h=183c3329c4afac812eb840013961747b8ade2bac;hb=04578196600a49d2f03710ded6ba0548cbbd87ad;hp=8f55b2cc72a66336d44af2ef446e056e69badfe4;hpb=3b09e788c6dab8e5a8b3314e8e69ede16ff82fcc;p=e-mobility-charging-stations-simulator.git
diff --git a/README.md b/README.md
index 8f55b2cc..183c3329 100644
--- a/README.md
+++ b/README.md
@@ -24,13 +24,16 @@ Simple [node.js](https://nodejs.org/) software to simulate and scale a set of ch
- [Windows](#windows)
- [MacOSX](#macosx)
- [GNU/Linux](#gnulinux)
+ - [Development prerequisites (optional)](#development-prerequisites-optional)
+ - [Unix](#unix)
+ - [Windows](#windows-1)
- [Dependencies](#dependencies)
- [Initial configuration](#initial-configuration)
- [Start simulator](#start-simulator)
- [Start Web UI](#start-web-ui)
- [Configuration files syntax](#configuration-files-syntax)
- [Charging stations simulator configuration](#charging-stations-simulator-configuration)
- - [Charging station configuration template](#charging-station-configuration-template)
+ - [Charging station template configuration](#charging-station-template-configuration)
- [Charging station configuration](#charging-station-configuration)
- [Docker](#docker)
- [OCPP-J commands supported](#ocpp-j-commands-supported)
@@ -70,11 +73,29 @@ brew install node
#### GNU/Linux
-- [NodeSource](https://github.com/nodesource/distributions) Node.js Binary Distributions for all supported versions.
+- [NodeSource](https://github.com/nodesource/distributions) node.js binary distributions for all supported versions.
-#### Dependencies
+### Development prerequisites (optional)
-Enable corepack if not already done and install latest pnpm version:
+Install [volta](https://volta.sh/) for managing automatically the node.js runtime and package manager version:
+
+#### Unix
+
+```shell
+curl https://get.volta.sh | bash
+```
+
+#### Windows
+
+```powershell
+choco install volta
+```
+
+Setup [volta](https://volta.sh/) with [pnpm](https://github.com/pnpm/pnpm) package manager support: https://docs.volta.sh/advanced/pnpm
+
+### Dependencies
+
+Enable corepack, if [volta](https://volta.sh/) is not installed and configured, and install latest pnpm version:
```shell
corepack enable
@@ -96,7 +117,9 @@ Tweak them to your needs by following the section [configuration files syntax](#
## Start simulator
-Run: `pnpm start`.
+```shell
+pnpm start
+```
## Start Web UI
@@ -145,7 +168,7 @@ But the modifications to test have to be done to the files in the build target d
| worker | | {
"processType": "workerSet",
"startDelay": 500,
"elementAddDelay": 0,
"elementsPerWorker": 'auto',
"poolMinSize": 4,
"poolMaxSize": 16
} | {
processType?: WorkerProcessType;
startDelay?: number;
elementAddDelay?: number;
elementsPerWorker?: number \| 'auto' \| 'all';
poolMinSize?: number;
poolMaxSize?: number;
resourceLimits?: ResourceLimits;
} | Worker configuration section:
- _processType_: worker threads process type (`workerSet`/`fixedPool`/`dynamicPool`)
- _startDelay_: milliseconds to wait at worker threads startup (only for `workerSet` worker threads process type)
- _elementAddDelay_: milliseconds to wait between charging station add
- _elementsPerWorker_: number of charging stations per worker threads for the `workerSet` process type (`auto` means (number of stations) / (number of CPUs) \* 1.5 if (number of stations) > (number of CPUs), otherwise 1; `all` means a unique worker will run all charging stations)
- _poolMinSize_: worker threads pool minimum number of threads- _poolMaxSize_: worker threads pool maximum number of threads
- _resourceLimits_: worker threads [resource limits](https://nodejs.org/api/worker_threads.html#new-workerfilename-options) object option |
| uiServer | | {
"enabled": false,
"type": "ws",
"version": "1.1",
"options": {
"host": "localhost",
"port": 8080
}
} | {
enabled?: boolean;
type?: ApplicationProtocol;
version?: ApplicationProtocolVersion;
options?: ServerOptions;
authentication?: {
enabled: boolean;
type: AuthenticationType;
username?: string;
password?: string;
}
} | UI server configuration section:
- _enabled_: enable UI server
- _type_: 'http' or 'ws'
- _version_: HTTP version '1.1' or '2.0'
- _options_: node.js net module [listen options](https://nodejs.org/api/net.html#serverlistenoptions-callback)
- _authentication_: authentication type configuration section |
| performanceStorage | | {
"enabled": true,
"type": "none",
} | {
enabled?: boolean;
type?: string;
uri?: string;
} | Performance storage configuration section:
- _enabled_: enable performance storage
- _type_: 'jsonfile', 'mongodb' or 'none'
- _uri_: storage URI |
-| stationTemplateUrls | | {}[] | {
file: string;
numberOfStations: number;
}[] | array of charging station configuration templates URIs configuration section (charging station configuration template file name and number of stations) |
+| stationTemplateUrls | | {}[] | {
file: string;
numberOfStations: number;
provisionedNumberOfStations?: number;
}[] | array of charging station templates URIs configuration section:
- _file_: charging station configuration template file relative path
- _numberOfStations_: template number of stations at startup
- _provisionedNumberOfStations_: template provisioned number of stations after startup |
#### Worker process model
@@ -158,7 +181,7 @@ But the modifications to test have to be done to the files in the build target d
- **dynamicPool** (experimental):
Dynamically sized worker pool executing a fixed total number of simulated charging stations
-### Charging station configuration template
+### Charging station template configuration
**src/assets/station-templates/\.json**:
@@ -578,6 +601,7 @@ Set the Websocket header _Sec-Websocket-Protocol_ to `ui0.0.1`.
`status`: 'success' | 'failure',
`state`: {
`version`: string,
+ `configuration`: ConfigurationData,
`started`: boolean,
`templateStatistics`: Record
}
@@ -637,7 +661,7 @@ Set the Websocket header _Sec-Websocket-Protocol_ to `ui0.0.1`.
- Response:
`PDU`: {
- `status`: 'success' | 'failure'
+ `status`: 'success' | 'failure',
`hashIdsSucceeded`: charging station unique identifier strings array (optional),
`hashIdsFailed`: charging station unique identifier strings array (optional)
}
@@ -876,7 +900,7 @@ Examples:
- Request:
`ProcedureName`: 'heartbeat'
`PDU`: {
- `hashIds`: charging station unique identifier strings array (optional, default: all charging stations),
+ `hashIds`: charging station unique identifier strings array (optional, default: all charging stations)
}
- Response: