Add "Home"
109
Home.md
Normal file
109
Home.md
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
# generalFunctions
|
||||||
|
|
||||||
|
Shared utility library used by all EVOLV Node-RED nodes. This is NOT a Node-RED node itself - it is a dependency library.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Version** | 1.0.0 |
|
||||||
|
| **Type** | Utility library |
|
||||||
|
| **Part of** | [EVOLV](https://gitea.wbd-rd.nl/RnD/EVOLV) |
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
`generalFunctions` provides centralized, reusable functionality for all EVOLV nodes. It is the foundation layer that ensures consistent behavior across the entire platform.
|
||||||
|
|
||||||
|
**Important:** Changes to this library affect ALL 13 EVOLV nodes. Backward compatibility must be verified before any modification.
|
||||||
|
|
||||||
|
## Exported Modules
|
||||||
|
|
||||||
|
### Measurement and Signal Processing
|
||||||
|
|
||||||
|
| Export | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `MeasurementContainer` | Signal conditioning with canonical unit conversion |
|
||||||
|
| `predict` | TensorFlow.js predictive model interface |
|
||||||
|
| `interpolation` | Curve interpolation utilities |
|
||||||
|
|
||||||
|
### Control
|
||||||
|
|
||||||
|
| Export | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `PIDController` | Standard PID controller implementation |
|
||||||
|
| `CascadePIDController` | Cascade PID for multi-loop control |
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
| Export | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `configManager` | Node configuration management and persistence |
|
||||||
|
| `MenuManager` | Dynamic menu generation for Node-RED editor |
|
||||||
|
| `assetApiConfig` | Asset registry API configuration |
|
||||||
|
|
||||||
|
### Data and I/O
|
||||||
|
|
||||||
|
| Export | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `outputUtils` | Standard output formatting (3-port pattern) |
|
||||||
|
| `logger` | Structured logging utility |
|
||||||
|
| `validation` | Input validation helpers |
|
||||||
|
| `loadModel` | Load TensorFlow.js models |
|
||||||
|
| `loadCurve` | Load asset performance curves |
|
||||||
|
|
||||||
|
### Physics and Conversion
|
||||||
|
|
||||||
|
| Export | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `convert` | Unit conversion utilities |
|
||||||
|
| `coolprop` | CoolProp thermodynamic calculations |
|
||||||
|
| `gravity` | Gravity-related calculations |
|
||||||
|
|
||||||
|
## Canonical Units
|
||||||
|
|
||||||
|
All internal calculations use these SI-derived units:
|
||||||
|
|
||||||
|
| Quantity | Canonical Unit |
|
||||||
|
|----------|---------------|
|
||||||
|
| Pressure | Pa (Pascal) |
|
||||||
|
| Flow | m3/s (cubic meters per second) |
|
||||||
|
| Power | W (Watt) |
|
||||||
|
| Temperature | K (Kelvin) |
|
||||||
|
|
||||||
|
Conversion to/from user-facing units happens at node boundaries using the `convert` module.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const {
|
||||||
|
MeasurementContainer,
|
||||||
|
PIDController,
|
||||||
|
configManager,
|
||||||
|
MenuManager,
|
||||||
|
outputUtils,
|
||||||
|
convert,
|
||||||
|
logger
|
||||||
|
} = require('../generalFunctions');
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- **TensorFlow.js** - For predictive models
|
||||||
|
- **CoolProp** - For thermodynamic property calculations
|
||||||
|
|
||||||
|
## Technical Requirements
|
||||||
|
|
||||||
|
- Node.js >= 18
|
||||||
|
|
||||||
|
## Development Notes
|
||||||
|
|
||||||
|
- This library is included as a git submodule in the main EVOLV repository
|
||||||
|
- All nodes import from `../generalFunctions` (relative path within `nodes/`)
|
||||||
|
- The `MenuManager` class serves dynamic editor menus via HTTP endpoints
|
||||||
|
- The `configManager` handles node configuration persistence and migration
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node --test test/basic/*.test.js
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user