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 {