Skip to content

Commit

Permalink
Several changes (#54)
Browse files Browse the repository at this point in the history
* Added Driver.SoftReset method.
Fixed BeginRebuildingRoutes,  StopRebuildingRoutes and RebuildNodeRoutes methods to use the correct commands.
Fixed typo in RebuildRoutesDone event.

* Removed the old command enums for healing the network and nodes.

* Add SoftReset to CHANGELOG

---------

Co-authored-by: Marcus Davies <55892693+marcus-j-davies@users.noreply.github.com>
  • Loading branch information
spudwebb and marcus-j-davies authored Dec 6, 2023
1 parent 509e4ae commit 236b0b6
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 9 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@
- Added **GetAvailableFirmwareUpdates** methods to the Controller class
- Added **FirmwareUpdateOTA** method to the Controller class, to update a node with the fetched Updates via **GetAvailableFirmwareUpdates**
- Added **HardReset** method to the Driver class
**Warning!!!** This will Reset your controller, and will result in a clean network with no included nodes.
**Warning!!!** This will Reset your controller, and will result in a clean network with no included nodes.
- Added **SoftReset** method to the Driver class
- Added the **ccSpecific** property to the **ValueMetadata** class
- Added the ability to add new server methods to the library during runtime.
This is helpful if you want to use a method that is not yet implemented, or to support an older version of an exetrnal server
Expand Down
10 changes: 5 additions & 5 deletions Visual Studio Projects/ZWaveJS.NET/ZWaveJS.NET/Controller.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ internal void Trigger_RebuildRoutesProgress(RebuildRoutesProgressArgs Args)
}

public delegate void RebuildRoutesDoneEvent(RebuildRoutesDoneArgs Args);
public event RebuildRoutesDoneEvent RebuldRoutesDone;
public event RebuildRoutesDoneEvent RebuildRoutesDone;
internal void Trigger_RebuildRoutesDone(RebuildRoutesDoneArgs Args)
{
this.isRebuildingRoutes = false;
RebuldRoutesDone?.Invoke(Args);
RebuildRoutesDone?.Invoke(Args);
}

private Abort AbortSub;
Expand Down Expand Up @@ -702,7 +702,7 @@ public Task<CMDResult> RebuildNodeRoutes(int NodeID)
Dictionary<string, object> Request = new Dictionary<string, object>();

Request.Add("messageId", ID);
Request.Add("command", Enums.Commands.HealNode);
Request.Add("command", Enums.Commands.RebuildNodeRoutes);
Request.Add("nodeId", NodeID);

string RequestPL = Newtonsoft.Json.JsonConvert.SerializeObject(Request);
Expand Down Expand Up @@ -736,7 +736,7 @@ public Task<CMDResult> BeginRebuildingRoutes(RebuildRoutesOptions Options)
Dictionary<string, object> Request = new Dictionary<string, object>();

Request.Add("messageId", ID);
Request.Add("command", Enums.Commands.BeginHealingNetwork);
Request.Add("command", Enums.Commands.BeginRebuildingRoutes);
Request.Add("options", Options);

string RequestPL = Newtonsoft.Json.JsonConvert.SerializeObject(Request);
Expand Down Expand Up @@ -766,7 +766,7 @@ public Task<CMDResult> StopRebuildingRoutes()
Dictionary<string, object> Request = new Dictionary<string, object>();

Request.Add("messageId", ID);
Request.Add("command", Enums.Commands.StopHealingNetwork);
Request.Add("command", Enums.Commands.StopRebuildingRoutes);

string RequestPL = Newtonsoft.Json.JsonConvert.SerializeObject(Request);
Driver.Instance.ClientWebSocket.SendInstant(RequestPL);
Expand Down
22 changes: 22 additions & 0 deletions Visual Studio Projects/ZWaveJS.NET/ZWaveJS.NET/Driver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -852,7 +852,29 @@ public Task<CMDResult> HardReset()
ClientWebSocket.SendInstant(RequestPL);

return Result.Task;
}

public Task<CMDResult> SoftReset()
{
Guid ID = Guid.NewGuid();

TaskCompletionSource<CMDResult> Result = new TaskCompletionSource<CMDResult>();

Callbacks.Add(ID, (JO) =>
{
CMDResult Res = new CMDResult(JO);
Result.SetResult(Res);
});

Dictionary<string, object> Request = new Dictionary<string, object>();

Request.Add("messageId", ID);
Request.Add("command", Enums.Commands.SoftReset);

string RequestPL = Newtonsoft.Json.JsonConvert.SerializeObject(Request);
ClientWebSocket.SendInstant(RequestPL);

return Result.Task;
}

// Proces Message
Expand Down
7 changes: 4 additions & 3 deletions Visual Studio Projects/ZWaveJS.NET/ZWaveJS.NET/Enums.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ internal class Commands
public const string GrantSecurityClasses = "controller.grant_security_classes";
public const string ValidateDSK = "controller.validate_dsk_and_enter_pin";
public const string RefreshInfo = "node.refresh_info";
public const string BeginHealingNetwork = "controller.begin_healing_network";
public const string StopHealingNetwork = "controller.stop_healing_network";
public const string HealNode = "controller.heal_node";
public const string BeginRebuildingRoutes = "controller.begin_rebuilding_routes";
public const string StopRebuildingRoutes = "controller.stop_rebuilding_routes";
public const string RebuildNodeRoutes = "controller.rebuild_node_routes";
public const string SetName = "node.set_name";
public const string SetLocation = "node.set_location";
public const string KeepNodeAwake = "node.set_keep_awake";
Expand Down Expand Up @@ -164,6 +164,7 @@ internal class Commands
public const string GetAvailableFirmwareUpdates = "controller.get_available_firmware_updates";
public const string FirmwareUpdateOTA = "controller.firmware_update_ota";
public const string HardReset = "driver.hard_reset";
public const string SoftReset = "driver.soft_reset";
}

public enum SecurityClass
Expand Down

0 comments on commit 236b0b6

Please sign in to comment.