public AgilorResponseData GetTargetValueByTargetName(string targetNames) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { var body = agilorACI.QuerySnapshots(targetNames.Split(';')); for (int i = 0; i < body.Count; i++) { if (body[i].Type == Agilor.Interface.Val.Value.Types.STRING) { body[i].Val = ((string)body[i].Val).Remove(((string)body[i].Val).IndexOf("\0")); } } response.responseBody = body; response.responseMessage = "Get Target Values By Target Names Success!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData watch(dynamic obj) { AgilorResponseData response = new AgilorResponseData(); // 关闭清理线程 SubscribeManager.StopSubscribeClearThread(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { List <string> targetsName = obj.targetsName.ToObject <List <string> >(); int timeout = obj.timeout.ToObject <int>(); response.responseBody = SubscribeManager.addSubscribe(targetsName, timeout); response.responseMessage = "Watch Success! Targets Count:" + targetsName.Count.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } // 开启订阅清理线程 SubscribeManager.StartUpSubscribeClearThread(); return(response); }
public AgilorResponseData removeTargets(int id) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { agilorACI.removeTarget(id); response.responseMessage = "Remove Targets Success!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData GetAllTargetsIDAndNameByDeviceName(string deviceName) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { var result = agilorACI.getTargetsByDevice(deviceName); response.responseBody = result; response.responseMessage = "Get All Targets By Device Name Success! Targets Count:" + result.Count.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData GetTargetHistoryByTargetName(string targetName) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { response.responseBody = agilorACI.QueryTagHistory(targetName, DateTime.Now.AddMonths(-1), DateTime.Now); response.responseMessage = "Get Target History Information By Target Name Success!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData SetTargetValue(string targetName, dynamic obj) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { response.responseMessage = "Set Target Value Success!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; object val = null; try { switch (agilorACI.GetTarget(targetName).Type) { case Agilor.Interface.Val.Value.Types.BOOL: val = obj.targetValue.ToObject <bool>(); break; case Agilor.Interface.Val.Value.Types.FLOAT: val = obj.targetValue.ToObject <float>(); break; case Agilor.Interface.Val.Value.Types.LONG: val = obj.targetValue.ToObject <int>(); break; case Agilor.Interface.Val.Value.Types.STRING: val = obj.targetValue.ToObject <string>(); break; } } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_TARGET_VALUE_ERROR; return(response); } agilorACI.SetValue(new Agilor.Interface.Val.Value(targetName, val)); response.responseBody = agilorACI.QuerySnapshots(targetName); } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData addTargets(dynamic obj) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { bool isOverride = true; try { isOverride = obj.isOverride.ToObject <bool>(); } catch { } Target[] targets = null; try { targets = obj.targets.ToObject <Target[]>(); } catch { response.responseMessage = "Miss targets!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_MISS_TARGET_PROPERTY_ERROR; return(response); } foreach (var target in targets) { agilorACI.addTarget(target, isOverride); } response.responseBody = new Dictionary <string, object> { { "NewTargetsCount", targets.Length }, { "isOverride", isOverride } }; response.responseMessage = "Add New Targets Success!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData Get() { AgilorResponseData response = new AgilorResponseData(); response.responseMessage = "Hello, Agilor!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; response.responseBody = new string[] { "devices", }; return(response); }
public AgilorResponseData Get() { AgilorResponseData response = new AgilorResponseData(); response.responseMessage = "Hello, I'm " + ACI_SERVER_NAME + ":" + ACI_SERVER_IP; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; response.responseBody = new string[] { "devices", "targets", "watch", "poll" }; return(response); }
public AgilorResponseData GetTargetHistoryByTargetName(string targetName, string start = null, string end = null, int step = 0) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { DateTime start_t, end_t; if (!DateTime.TryParse(end, out end_t)) { end_t = DateTime.Now; } if (!DateTime.TryParse(start, out start_t)) { int minutes = 1; int.TryParse(ConfigurationManager.AppSettings["AgilorQueryHistoryDefaultIntervalMinute"], out minutes); start_t = end_t.AddMinutes(-1 * minutes); } if (end_t >= start_t) { var body = agilorACI.QueryTagHistory(targetName, start_t, end_t, step); if (body.Count > 0 && body[0].Type == Agilor.Interface.Val.Value.Types.STRING) { for (int i = 0; i < body.Count; i++) { body[i].Val = ((string)body[i].Val).Remove(((string)body[i].Val).IndexOf("\0")); } } body.Reverse(); response.responseBody = body; } response.responseMessage = "Get Target History Information By Target Name Success! start: " + start_t.ToString() + ", end: " + end_t.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData poll(dynamic obj) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { string subscriberGuid = obj.guid.ToObject <string>(); if (DateTime.Now.Subtract(SubscribeManager.subscribers[subscriberGuid].lastPollTime).Duration().TotalSeconds > SubscribeManager.subscribers[subscriberGuid].timeout) { // 订阅过期 response.responseMessage = "Sorry, Your Subscribe Is Timeout!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_SUBSCRIBE_TIMEOUT_ERROR; return(response); } bool isRefresh = obj.isRefresh.ToObject <bool>(); //response.responseBody = SubscribeManager.getSubscribeTargetsValue(subscriberGuid, isRefresh); var result = SubscribeManager.getSubscribeTargetsValue(subscriberGuid, isRefresh); response.responseBody = new Dictionary <string, object> { { "SubscribeTargetValues", result }, { "Timeout", SubscribeManager.subscribers[subscriberGuid].timeout } }; response.responseMessage = "Get Subscribe Targets Value Success! Targets Count:" + result.Count.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData addOneTarget(dynamic obj) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { Target target = null; try { target = new Target(obj.Type.ToObject <Agilor.Interface.Val.Value.Types>()); } catch { response.responseMessage = "Miss Target Type!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_MISS_TARGET_PROPERTY_ERROR; return(response); } try { target.Name = obj.Name.ToObject <string>(); } catch { response.responseMessage = "Miss Target Name!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_MISS_TARGET_PROPERTY_ERROR; return(response); } try { target.SourceName = obj.SourceName.ToObject <string>(); } catch { response.responseMessage = "Miss Target SourceName!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_MISS_TARGET_PROPERTY_ERROR; return(response); } try { target.Device = obj.Device.ToObject <string>(); } catch { response.responseMessage = "Miss Target Device!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_MISS_TARGET_PROPERTY_ERROR; return(response); } try { target.Scan = obj.Scan.ToObject <Target.Status>(); } catch { response.responseMessage = "Miss Target Scan!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_MISS_TARGET_PROPERTY_ERROR; return(response); } // 可选 bool isOverride = true; target.LastTime = DateTime.Now; target.DateCreated = DateTime.Now; try { target.Descriptor = obj.Descriptor.ToObject <string>(); } catch { } try { target.SourceGroup = obj.SourceGroup.ToObject <string>(); } catch { } try { target.Id = obj.Id.ToObject <int>(); } catch { } try { target.Archiving = obj.Archiving.ToObject <bool>(); } catch { } try { target.Compressing = obj.Compressing.ToObject <bool>(); } catch { } try { target.HihiLimit = obj.HihiLimit.ToObject <float>(); } catch { } try { target.HiLimit = obj.HiLimit.ToObject <float>(); } catch { } try { target.LoLimit = obj.LoLimit.ToObject <float>(); } catch { } try { target.LoloLimit = obj.LoloLimit.ToObject <float>(); } catch { } try { isOverride = obj.isOverride.ToObject <bool>(); } catch { } agilorACI.addTarget(target, isOverride); response.responseBody = target; response.responseMessage = "Add New Target Success! 'isOverride' IS " + isOverride.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }
public AgilorResponseData SetTargetValue(string targetName, dynamic obj) { AgilorResponseData response = new AgilorResponseData(); if (!checkACIObject()) { response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL; return(response); } try { response.responseMessage = "Set Target Value Success!"; response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL; object val = null; try { switch (agilorACI.GetTarget(targetName).Type) { case Agilor.Interface.Val.Value.Types.BOOL: val = obj.targetValue.ToObject <bool>(); break; case Agilor.Interface.Val.Value.Types.FLOAT: val = obj.targetValue.ToObject <float>(); break; case Agilor.Interface.Val.Value.Types.LONG: val = obj.targetValue.ToObject <int>(); break; case Agilor.Interface.Val.Value.Types.STRING: val = obj.targetValue.ToObject <string>(); break; } } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_TARGET_VALUE_ERROR; return(response); } Agilor.Interface.Val.Value setVal = new Agilor.Interface.Val.Value(targetName, val); if (agilorSlaveACIs.Count > 0) { // 向 slave 发起二次请求 string[] slaveIps = ConfigurationManager.AppSettings["AgilorServerSlaveIp"].Split(';'); HttpContent httpContent = new StringContent("{\"targetValue\": \"" + val.ToString() + "\"}"); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpClient httpClient = new HttpClient(); foreach (string slaveIp in slaveIps) { httpClient.PostAsync("http://" + slaveIp + ":8098/Agilor/targets/" + targetName + "/set", httpContent); } } else { Thread thread = new Thread(() => ThreadMainWithParameters(agilorACI, setVal)); thread.Start(); } //Thread thread = new Thread(() => ThreadMainWithParameters(agilorACI, setVal)); //thread.Start(); //foreach (ACI slaveAci in agilorSlaveACIs) //{ // thread = new Thread(() => ThreadMainWithParameters(slaveAci, setVal)); // thread.Start(); //} /* * agilorACI.SetValue(new Agilor.Interface.Val.Value(targetName, val)); * foreach (ACI slaveAci in agilorSlaveACIs) * { * try { slaveAci.SetValue(new Agilor.Interface.Val.Value(targetName, val)); } catch { } * } */ response.responseBody = GetTargetValueByTargetName(targetName).responseBody; } catch (Exception ex) { response.responseMessage = ex.ToString(); response.responseCode = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR; } return(response); }