public string GetErrMessageToLIMS(string deviceId, string info, int infoTypeID) { LIMSAPIData data = new LIMSAPIData(); data.CardData = "00000000"; data.DeviceID = deviceId; data.DeviceInfo = info; data.DeviceStatID = 9999; data.InfoTypeID = infoTypeID; data.PowerStatID = 99; data.Sign = MakeLIMSAPIDataSign(data, LIMSAppKey); return(JsonSerializer.Serialize(data)); }
/// <summary> /// 给LIMS发消息 /// </summary> /// <param name="deviceId"></param> /// <param name="cardData"></param> /// <param name="stat"></param> /// <param name="powerstat"></param> /// <param name="info"></param> /// <param name="infoTypeID">消息类型,可以继承设备消息类型</param> /// <returns></returns> public string SendMsgToLIMS(string deviceId, string cardData, int stat, int powerstat, string info, int infoTypeID) { //制作一个读卡后30秒内不再相应读卡 if (infoTypeID == (int)COMMAND.READCARD) { if (clientTable.ContainsKey(deviceId)) { DMClient oldClient = clientTable[deviceId]; //现在距上次读卡必须超过30秒。低于30秒则直接返回。 if (DateTime.Now < oldClient.LastCardReadingTime.AddSeconds(30)) { return("The card reading time is too close."); } else { //超过30秒后更新之 oldClient.LastCardReadingTime = DateTime.Now; } } else { return("When reading the card, the device is no longer online."); } } LIMSAPIData data = new LIMSAPIData(); data.CardData = cardData; data.DeviceID = deviceId; data.DeviceInfo = info; data.DeviceStatID = stat; data.InfoTypeID = infoTypeID; data.PowerStatID = powerstat; data.Sign = MakeLIMSAPIDataSign(data, LIMSAppKey); string json = JsonSerializer.Serialize(data); RESTClient restClient = new RESTClient(LIMSServerURL, LIMSAppKey); try { return(restClient.Post(json, "api/event/api/UpdateDevice")); } catch (Exception ex) { log.Error(ex.Message); return(ex.Message); } //还未填入api地址 }
/// <summary> /// 为了LIMS同步调用设备发送命令准备的方法 /// </summary> /// <param name="deviceId"></param> /// <param name="cardData"></param> /// <param name="stat"></param> /// <param name="powerstat"></param> /// <param name="info"></param> /// <param name="infoTypeID"></param> public void ReplyMsgToLIMS(string deviceId, string cardData, int stat, int powerstat, string info, int infoTypeID) { LIMSAPIData data = new LIMSAPIData(); data.CardData = cardData; data.DeviceID = deviceId; data.DeviceInfo = info; data.DeviceStatID = stat; data.InfoTypeID = infoTypeID; data.PowerStatID = powerstat; data.Sign = MakeLIMSAPIDataSign(data, LIMSAppKey); string json = JsonSerializer.Serialize(data); DMClient dmClient = clientTable[deviceId]; dmClient.SetReplayMessgaeToLIMS(json); }
private string MakeLIMSAPIDataSign(LIMSAPIData data, string salt) { string origin = data.CardData + data.DeviceID + data.DeviceInfo + data.DeviceStatID + data.InfoTypeID + data.PowerStatID + salt; return(GetMD5Hash(origin)); }