Skip to content

Commit d83f887

Browse files
authored
Merge pull request #76 from MoonModules/v070-preparations
v0.7.0 preparations
2 parents c58f84c + 7c270f8 commit d83f887

29 files changed

+13257
-13070
lines changed

docs/moonbase/inputoutput.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ For each board the following presets are defined:
1212

1313
* Modded: set when any pin differs from the selected board preset. Press off to return to the preset defaults.
1414
* Max Power in Watts: adjust the brightness to approach this max power, depending on the number of LEDs used. Default 10: 5V * 2A = 10W (so it runs fine on USB). Used by LED drivers, see [Drivers](../../moonlight/drivers/)
15-
* Switch1 and 2: If the board contains a jumper or pins have different functions, a custom switch can be set. Eg. select between Infrared and Ethernet. See boards below for details
15+
* Switch1 and 2: If the board contains a jumper or pins have different functions, a custom switch can be set. Eg. select between Infrared and Ethernet. If a switch is turned on or off, the board the modded status will not change. See boards below for details
1616
* Pins: Assign functionality to gpio pins. Other modules and nodes use the pin assignments made here.
1717
* GPIO = gpio_num;
1818
* Usage: See below
@@ -89,4 +89,4 @@ For each board the following presets are defined:
8989
![SE-16p](../firmware/installer/images/esp32-s3-stephanelec-16p.jpg){: style="width:100px"}
9090

9191
* Choose the esp32-s3-devkitc-1-n8r8v board in the [MoonLight Installer](../../gettingstarted/installer/)
92-
* Set Switch1 the same as you set the jumper on the board: off / default: Ethernet. on: Infrared.
92+
* Set Switch1 the same as you set the jumper on the board: off / default: Infrared. on: Ethernet.

docs/moonlight/drivers.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Want to add a Driver to MoonLight, see [develop](../../develop/overview/). See a
7373
Receives Art-Net data from the network.
7474

7575
* DDP: If unchecked, processes data in Art-Net format, if checked, process data in DDP format
76-
* Port: The port listening to for Art-Net
76+
* Port: The port listening for Art-Net. When using DDP, change to 4048 (the default port for DDP).
7777
* Universe Min-Max: Filters Universes (Art-Net only).
7878
* View:
7979
* Select physical layer to directly store the received channels into the physical layer
@@ -93,17 +93,18 @@ Sends Lights in Art-Net compatible packages to an Art-Net controller specified b
9393

9494
#### Controls
9595

96-
* **Controller IP**: The last segment of the IP address within your local network, of the the hardware Art-Net controller.
96+
* **Controller IPs**: The last segment of the IP address within your local network, of the hardware Art-Net controller. Add more IPs if you send to more than one controller, comma separated.
9797
* **Port**: The network port added to the IP address, 6454 is the default for Art-Net.
9898
* **FPS Limiter**: set the max frames per second Art-Net packages are send out (also all the other nodes will run at this speed).
9999
* Art-Net specs recommend about 44 FPS but higher framerates will work mostly (up to until ~130FPS tested)
100-
* **Nr of outputs**: Art-Net LED controllers can have more then 1 output (e.g. 12)
100+
* **Nr of outputs**: Art-Net LED controllers can have more than 1 output (e.g. 12)
101101
* **Universes per output**: How many universes can each output handle. This determines the maximum number of lights an output can drive (nr of universe x nr of channels per universe / channels per light)
102+
* **Nr of Outputs per IP**: How many outputs does one Art-Net controller have. If all outputs are sent, Art-Net will be sent to the next IP number.
102103

103104
!!! tip "Set universes"
104105
Set the number of universes also on the controller!
105106

106-
* **Channels per ouput**: each output can drive a maximum number of channels, determined by the universes per output
107+
* **Channels per output**: each output can drive a maximum number of channels, determined by the universes per output
107108

108109
!!! warning "DMX start with 1"
109110
Dmx channels count from 1 to 512. At the moment we start counting from 0..511.
@@ -119,7 +120,7 @@ The following devices have been tested and are recommended:
119120
* Driving DMX fixtures: Used to drive the Light Presets for DMX lights / moving heads (see below)
120121
* **Nr of outputs**: max 2 outputs
121122
* **Universes per output**: 1 universe
122-
* **Channels per ouput**: 512 channels
123+
* **Channels per output**: 512 channels
123124

124125
[Club Lights 12 Pro Artnet Controller - CL12P](https://s.click.aliexpress.com/e/_Ex9uaOk)
125126

@@ -129,7 +130,7 @@ The following devices have been tested and are recommended:
129130

130131
* **Nr of outputs**: Max 12 outputs
131132
* **Universes per output**: Max 8 universes
132-
* **Channels per ouput**: max 8 * 512.
133+
* **Channels per output**: max 8 * 512.
133134

134135
Each color in a LED is one channel: For RGB max 170 LEDs is 510 channels per universe, for RGBW max 128 LEDs per universe is 512 channels per universe => max 1360 RGB LEDs and 1024 RGBW LEDs per output.
135136

interface/src/lib/components/moonbase/FieldRenderer.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
}, 1000);
3636
3737
onDestroy(() => {
38-
console.log('FieldRenderer clearing interval');
38+
// console.log('FieldRenderer clearing interval');
3939
clearInterval(interval);
4040
});
4141
@@ -107,7 +107,7 @@
107107
{#if property.type == 'ip'}
108108
<a href="http://{value}" target="_blank">{value}</a>
109109
{:else if property.type == 'mdnsName'}
110-
<a href="http://{value}.local" target="_blank">{value}</a>
110+
<a href="http://{value}.local/moonbase/module?group=moonlight&module=lightscontrol" target="_blank">{value}</a>
111111
{:else if property.type == 'time'}
112112
<span>{getTimeAgo(value, currentTime)}</span>
113113
{:else if property.type == 'coord3D' && value != null}

interface/src/lib/components/moonbase/RowRenderer.svelte

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@
151151
// Update the default value reactively so we don't capture the initial derived value only once
152152
$effect(() => {
153153
propertyFilter.default = findItemInDefinition?.filter ?? '!Unused';
154+
// assign default filter if not defined yet
155+
if (data[property.name + '_filter'] == null)
156+
data[property.name + '_filter'] = propertyFilter.default;
154157
});
155158
</script>
156159

interface/src/lib/stores/telemetry.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ function createTelemetry() {
4747
rssi: { rssi: 0, ssid: data.ssid, disconnected: true, safeMode: data.safeMode, restartNeeded: data.restartNeeded, saveNeeded: data.saveNeeded, hostName: data.hostName } // 🌙 variables added
4848
}));
4949
}
50-
if (data.hostName != '')
51-
localStorage.setItem('telemetry.rssi.hostName', data.hostName);
5250
},
5351
setBattery: (data: Battery) => {
5452
update((telemetry_data) => ({

interface/src/routes/+layout.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@
156156
</script>
157157

158158
<svelte:head>
159-
<title>{localStorage.getItem('telemetry.rssi.hostName')}</title>
159+
<title>{$telemetry.rssi.hostName || 'MoonLight'}</title>
160160
</svelte:head>
161161

162162
{#if page.data.features.security && $user.bearer_token === ''}

interface/src/routes/statusbar.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
><Hamburger class="h-6 w-auto" /></label
9696
>
9797
<img src={logo} alt="Logo" class="h-12 w-12 lg:hidden" /> <!-- 🌙 -->
98-
<span class="px-2 text-xl font-bold lg:text-2xl">{localStorage.getItem('telemetry.rssi.hostName')}</span> <!-- 🌙 -->
98+
<span class="px-2 text-xl font-bold lg:text-2xl">{$telemetry.rssi.hostName || 'MoonLight'}</span> <!-- 🌙 -->
9999
</div>
100100
<div class="indicator flex-none">
101101
<UpdateIndicator />

lib/framework/EventEndpoint.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ class EventEndpoint
6464

6565
void syncState(const String &originId, bool sync = false)
6666
{
67-
if (!_socket->getConnectedClients()) return; // 🌙 No need for UI tasks
68-
6967
JsonDocument jsonDocument;
7068
JsonObject root = jsonDocument.to<JsonObject>();
7169
_statefulService->read(root, _stateReader);

lib/framework/StatefulService.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,11 @@ class StatefulService
199199
{
200200
// 🌙 adding semaphore wait too long logging
201201
if (xSemaphoreTakeRecursive(_accessMutex, pdMS_TO_TICKS(100))==pdFALSE) {
202-
ESP_LOGW("🐼", "_accessMutex wait too long");
203-
xSemaphoreTakeRecursive(_accessMutex, portMAX_DELAY);
202+
ESP_LOGI("🐼", "_accessMutex wait 100ms");
203+
if (xSemaphoreTakeRecursive(_accessMutex, pdMS_TO_TICKS(400))==pdFALSE) {
204+
ESP_LOGW("🐼", "_accessMutex waited 500ms and continues 🤷‍♂️");
205+
// xSemaphoreTakeRecursive(_accessMutex, portMAX_DELAY);
206+
}
204207
}
205208
}
206209

0 commit comments

Comments
 (0)