<commit_before>Planned features:
- LEDs
- Gauges
 - Analog
 - LCD
- Graphs
- On/Off Switches 
- Potis<commit_msg>IO plug-in docu<commit_after>## IO Plug In Module Config
The IO plug-in can create a control panel.
On the underlying (optional) image you can arrage different
input and output controllers. Basic 'moduleConfig' is like this:

	"moduleConfig":{
		"imgURL":"svc/io/img.png",
		"dataURL":"svc/io/",
		"poll":"1000",
		"io":[
			...
		]
	}

To get the values a GET call is done to 'dataURL'. 
The response should be an "array" of the values:

	GET svc/io
	{
	    "switchMain": {
	        "value": "Power ON"
	    },
	    "led1": {
	        "value": "1"
	    },
	    "led2": {
	        "value": "-1"
	    }
	    ...
	}
	
Changes are POSTed to the 'dataURL' and the response wil be set as update.

### LEDs
The LED needs only a unique ID and coordinates where to place it.

	"moduleConfig":{ ...
		"io":[ ...
			{
				"id":"ledIdXY",
				"type":"LED",
				"pos":{ "x":"123", "y":"345" }
			}, ...			

LEDs values are:
* -1: red
* 0: black
* 1: green
* 2: yellow

### Switches
Switches can have 2 or 3 values, defined in a array.

	"moduleConfig":{ ...
		"io":[ ...
			{
				"id":"ledIdXY",
				"type":"Switch",
				"values":[ "ON", "OFF" ],
				"pos":{ "x":"123", "y":"345" }
			}, ...			

A switch by mouse click will do a POST with the id and value to to 'dataURL'.

### Display
Displays can display any text or value (like LCD):

	"moduleConfig":{ ...
		"io":[ ...
			{
				"id":"display1",
				"type":"Display",
				"width":"10",
				"pos":{ "x":"123", "y":"345" }
			}, ...			

### Poti
A poti is a horizontal slider:

	"moduleConfig":{ ...
		"io":[ ...
			{
				"id":"fader2",
				"type":"Poti",
				"width":"80", 
				"min":"0", 
				"max":"100",
				"pos":{ "x":"123", "y":"345" }
			}, ...			

A change of the poti by mouse click will do a POST request with the new vaue to the backend.


### TODOs
- Gauges
- Analog
- Graphs
{'fraction_non_alphanumeric': 0.19371458011334364, 'fraction_numerical': 0.02472952086553323, 'mean_word_length': 2.401050788091068, 'pattern_counts': {'":': 44, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2950586', 'n_tokens_mistral': 855, 'n_tokens_neox': 693, 'n_words': 224}