public void Send() { PowerDataPack_Main vSendDataPack = new PowerDataPack_Main() { Head = 0x5a, SN = 0x01, Addition = 0x00, CMD = (byte)PowerDataPack_Send_CommandEnum.Send_GetIPAddress, Tail = 0x5b, Length1 = 0x00, Length2 = 0x08 }; byte[] vDataPackBytes = Helper.NetHelper.StructureToByte(vSendDataPack); vSendDataPack.Check = calcCheckCode(vDataPackBytes); vDataPackBytes = Helper.NetHelper.StructureToByte(vSendDataPack); Console.WriteLine(BitConverter.ToString(vDataPackBytes)); m_SocketManager.SendMessage(m_SocketManager.ClientList[0], vDataPackBytes); }
async void asyncProcessorDBSendCMD() { await Task.Run(() => { while (m_IsRun) { PowerSendCMDEFModel vModel = new PowerSendCMDEFModel() { IsSend = false }; var vSelectResult = m_BasicDBClass_Send.SelectRecordsEx(vModel); foreach (PowerSendCMDEFModel vTempResult in vSelectResult) { //AsyncUserToken vAsyncUserToken = findAsyncUserToken(vTempResult.DianYuanID.Value); AsyncUserToken vAsyncUserToken = null; if (m_SocketManager != null && m_SocketManager.ClientList.Count > 0) { if (m_ClientDict.ContainsKey(vTempResult.DianYuanID)) { string vIPAddress = m_ClientDict[vTempResult.DianYuanID]; vAsyncUserToken = m_SocketManager.ClientList.Where(m => m.IPAddress.ToString() == vIPAddress).FirstOrDefault(); } //vAsyncUserToken = m_SocketManager.ClientList[0]; } if (vAsyncUserToken != null) { byte[] vMac = NetHelper.StringToBytes_MAC(vTempResult.DianYuanID); PowerDataPack_Main vCommandDataPack = new PowerDataPack_Main() { Head = 0x5a, Tail = 0x5b, SN = vTempResult.SN ?? 0x00,// 0x01,//vTempResult.SN ?? 0x00, CMD = vTempResult.CMD ?? 0x00, Addition = 0x00, MAC1 = vMac[0], MAC2 = vMac[1], MAC3 = vMac[2], MAC4 = vMac[3], MAC5 = vMac[4], MAC6 = vMac[5], }; List <byte> vCMDDataPack = Helper.NetHelper.StructureToByte(vCommandDataPack).ToList(); if (vTempResult.Data != null) { List <byte> vDataPack = vTempResult.Data.ToList(); vCMDDataPack.InsertRange(12, vDataPack); } byte[] vLength = BitConverter.GetBytes((short)vCMDDataPack.Count); //包长度 vCMDDataPack[1] = vLength[1]; vCMDDataPack[2] = vLength[0]; //校验和 vCMDDataPack[vCMDDataPack.Count - 2] = calcCheckCode(vCMDDataPack.ToArray()); m_SocketManager.SendMessage(vAsyncUserToken, vCMDDataPack.ToArray()); string vOutInfo = string.Format("电源发送命令数据包,IP地址({0}):{1}", vAsyncUserToken.IPAddress.ToString(), BitConverter.ToString(vCMDDataPack.ToArray())); Console.WriteLine(vOutInfo); LogHelper.WriteLog_Debug(typeof(PowerControl), vOutInfo); //更新数据库状态 vModel.IsSend = true; vModel.ID = vTempResult.ID; m_BasicDBClass_Send.UpdateRecord <PowerSendCMDEFModel>(vModel); } } Thread.Sleep(100); } }); }