static bool WaitForStateChange(int index) { bool result = false; LanXIRESTBoundary module = modules[index]; int lastUpdate = 0; Dictionary <string, dynamic> prev = module.RequestWithPath("/rest/rec/onchange?last=0", "GET", null, false); for (; ;) { // Get the module state Dictionary <string, dynamic> dict = module.RequestWithPath("/rest/rec/onchange?last=" + lastUpdate.ToString(), "GET", null, false); TimeSpan elapsed = runTime.Elapsed; // Get elapsed time if (stopThreads == true) { break; } lastUpdate = dict["lastUpdateTag"]; dict.Remove("lastUpdateTag"); dict.Remove("lastSdCardUpdateTag"); dict.Remove("lastTransducerUpdateTag"); if (dict.ContainsKey("recordingStatus")) { (dict["recordingStatus"] as Dictionary <string, dynamic>).Remove("channelStatus"); } Recurse(dict, prev, elapsed, modules_ip[index]); prev = dict; } return(result); }