From c7c5de9e2108ce50dedff197457b6819f2612272 Mon Sep 17 00:00:00 2001 From: Sven van Heugten Date: Sun, 4 Jan 2026 10:24:55 +0100 Subject: [PATCH] State -> NightLightStateMachine --- NightLight.Core.Tests/FakeHome.fs | 2 +- NightLight.Core/NightLight.Core.fsproj | 2 +- NightLight.Core/{Core.fs => NightLightStateMachine.fs} | 6 +++--- NightLight/Program.fs | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) rename NightLight.Core/{Core.fs => NightLightStateMachine.fs} (87%) diff --git a/NightLight.Core.Tests/FakeHome.fs b/NightLight.Core.Tests/FakeHome.fs index 9fe9223..3d758d4 100644 --- a/NightLight.Core.Tests/FakeHome.fs +++ b/NightLight.Core.Tests/FakeHome.fs @@ -34,7 +34,7 @@ type FakeLight(light: Light) = brightness <- newBrightness type FakeHome(now: DateTime) = - let mutable nightLightStateMachine = State now + let mutable nightLightStateMachine = NightLightStateMachine now let assertIsOkAndGet result = match result with diff --git a/NightLight.Core/NightLight.Core.fsproj b/NightLight.Core/NightLight.Core.fsproj index 31b2b6e..890f218 100644 --- a/NightLight.Core/NightLight.Core.fsproj +++ b/NightLight.Core/NightLight.Core.fsproj @@ -11,7 +11,7 @@ - + diff --git a/NightLight.Core/Core.fs b/NightLight.Core/NightLightStateMachine.fs similarity index 87% rename from NightLight.Core/Core.fs rename to NightLight.Core/NightLightStateMachine.fs index 083cb31..02590e5 100644 --- a/NightLight.Core/Core.fs +++ b/NightLight.Core/NightLightStateMachine.fs @@ -17,8 +17,8 @@ let internal generateZigbeeCommandToFixLight partOfDay light = generateZigbeeCommand light.FriendlyName color brightness -type State(time: DateTime) = - member this.OnEventReceived(event: Event) : Result = +type NightLightStateMachine(time: DateTime) = + member this.OnEventReceived(event: Event) : Result = result { let partOfDay = getPartOfDay time @@ -36,7 +36,7 @@ type State(time: DateTime) = | Some light -> generateZigbeeCommandToFixLight partOfDay light |> Seq.singleton | None -> Seq.empty | TimeChanged newTime -> - let newState = State newTime + let newState = NightLightStateMachine newTime let newPartOfDay = getPartOfDay newTime return diff --git a/NightLight/Program.fs b/NightLight/Program.fs index 112d313..90ebd12 100644 --- a/NightLight/Program.fs +++ b/NightLight/Program.fs @@ -29,12 +29,12 @@ let private publishZigbeeCommands (mqttClient: IMqttClient) (logger: ILogger) (c |> Async.Ignore } -let private handleEvent (mqttClient: IMqttClient) (logger: ILogger) (state: State) (event: Event) = +let private handleEvent (mqttClient: IMqttClient) (logger: ILogger) (state: NightLightStateMachine) (event: Event) = match event with | ReceivedZigbeeEvent payload -> logger.LogInformation("Received message with payload {Payload}", payload) | _ -> () - let result = event |> onEventReceived state + let result = event |> state.OnEventReceived match result with | Ok(newState, commands) -> @@ -77,7 +77,7 @@ let mainAsync _ = let mqttClientOptions = MqttClientOptionsBuilder().WithTcpServer(server).Build() let stateLock = new SemaphoreSlim(1, 1) - let mutable state = State DateTime.Now + let mutable state = NightLightStateMachine DateTime.Now mqttClient.add_ApplicationMessageReceivedAsync (fun e -> async {