/// <summary> /// 获取IP地址(命令) /// </summary> /// <param name="DianYuanID"></param> /// <returns></returns> public async Task <PowerIPConfigInfo> SendCMD_GetIP(string DianYuanID) { PowerIPConfigInfo vIPConfigResult = new PowerIPConfigInfo(); bool vResult = await asyncSendCommandToDB(DianYuanID, PowerDataPack_Send_CommandEnum.Send_GetIPAddress); if (vResult) { PowerNetConfigEFModel vPowerNetConfigEFModel = new PowerNetConfigEFModel() { MAC = DianYuanID }; PowerNetConfigEFModel[] vSelectResult = m_BasicDBClass_Send.SelectRecordsEx(vPowerNetConfigEFModel); if (vSelectResult != null && vSelectResult.Length > 0) { vIPConfigResult = new PowerIPConfigInfo() { MAC = DianYuanID, Gateway = vSelectResult[0].Gateway, IPAddress = vSelectResult[0].IPAddress, IsDHCP = vSelectResult[0].DHCP, Port = vSelectResult[0].Port ?? 0, ServerIPAddress = vSelectResult[0].ServerIPAddress, ServerPort = vSelectResult[0].ServerPort ?? 0, SubMask = vSelectResult[0].SubMask }; } } return(vIPConfigResult); }
/// <summary> /// 获取电源IP配置 /// </summary> /// <param name="DianYuanID"></param> /// <returns></returns> public PowerIPConfigInfo GetIPConfig(string DianYuanID) { PowerIPConfigInfo vIPConfigResult = new PowerIPConfigInfo(); PowerNetConfigEFModel vPowerNetConfigEFModel = new PowerNetConfigEFModel() { MAC = DianYuanID }; PowerNetConfigEFModel[] vSelectResult = m_BasicDBClass_Send.SelectRecordsEx(vPowerNetConfigEFModel); if (vSelectResult != null && vSelectResult.Length > 0) { vIPConfigResult = new PowerIPConfigInfo() { MAC = DianYuanID, Gateway = vSelectResult[0].Gateway, IPAddress = vSelectResult[0].IPAddress, IsDHCP = vSelectResult[0].DHCP, Port = vSelectResult[0].Port ?? 0, ServerIPAddress = vSelectResult[0].ServerIPAddress, ServerPort = vSelectResult[0].ServerPort ?? 0, SubMask = vSelectResult[0].SubMask }; } return(vIPConfigResult); }
/// <summary> /// 处理收到的数据包(IP地址设置) /// </summary> /// <param name="dataPack"></param> void processorData_GetIPAddress(PowerDataPack_Receive_GetIPAddress dataPack) { string vMAC = NetHelper.BytesToString_MAC(new byte[] { dataPack.MAC_1, dataPack.MAC_2, dataPack.MAC_3, dataPack.MAC_4, dataPack.MAC_5, dataPack.MAC_6 }); PowerNetConfigEFModel vPowerNetConfigEFModel = new PowerNetConfigEFModel() { MAC = vMAC, DHCP = dataPack.DHCP == 0x01 ? true : false, Gateway = NetHelper.BytesToString_IP(new byte[] { dataPack.gateway1, dataPack.gateway2, dataPack.gateway3, dataPack.gateway4 }), IPAddress = NetHelper.BytesToString_IP(new byte[] { dataPack.IPAddress1, dataPack.IPAddress2, dataPack.IPAddress3, dataPack.IPAddress4 }), ServerIPAddress = NetHelper.BytesToString_IP(new byte[] { dataPack.ServerIPAddress1, dataPack.ServerIPAddress2, dataPack.ServerIPAddress3, dataPack.ServerIPAddress4 }), SubMask = NetHelper.BytesToString_IP(new byte[] { dataPack.SubnetMask1, dataPack.SubnetMask2, dataPack.SubnetMask3, dataPack.SubnetMask4 }), Port = BitConverter.ToInt16(new byte[] { dataPack.Port2, dataPack.Port1 }, 0), ServerPort = BitConverter.ToInt16(new byte[] { dataPack.ServerPort2, dataPack.ServerPort1 }, 0) }; try { m_BasicDBClass_Receive.TransactionBegin(); m_BasicDBClass_Receive.DeleteRecordCustom <PowerNetConfigEFModel>(string.Format("MAC='{0}'", vMAC)); m_BasicDBClass_Receive.InsertRecord(vPowerNetConfigEFModel); PowerSendCMDEFModel vPowerSendCMDEFModel = new PowerSendCMDEFModel() { IsReply = true, State = true }; string vSql = string.Format("DianYuanID='{0}' and CMD={1:D} and SN={2}", vMAC, (byte)PowerDataPack_Send_CommandEnum.Send_GetIPAddress, dataPack.SN); m_BasicDBClass_Receive.UpdateRecord(vPowerSendCMDEFModel, vSql); m_BasicDBClass_Receive.TransactionCommit(); } catch (Exception ex) { string vOutInfo = string.Format("电源获取电源IP地址错误:{0}", ex.Message); Console.WriteLine(vOutInfo); LogHelper.WriteLog_Debug(typeof(PowerControl), vOutInfo); m_BasicDBClass_Receive.TransactionRollback(); } }
/// <summary> /// 设置IP地址(命令) /// </summary> /// <param name="DianYuanID"></param> /// <param name="IPConfig"></param> /// <returns></returns> public async Task <bool> SendCMD_SetIP(string DianYuanID, PowerIPConfigInfo IPConfig) { byte[] vIPAddress = NetHelper.StringToBytes_IP(IPConfig.IPAddress); byte[] vSubMaksArray = NetHelper.StringToBytes_IP(IPConfig.SubMask); byte[] vGateway = NetHelper.StringToBytes_IP(IPConfig.Gateway); byte[] vMAC = NetHelper.StringToBytes_MAC(IPConfig.MAC); byte[] vServerIP = NetHelper.StringToBytes_IP(IPConfig.ServerIPAddress); PowerDataPack_Send_SetIPAddress vData = new PowerDataPack_Send_SetIPAddress() { IPAddress1 = vIPAddress[0], IPAddress2 = vIPAddress[1], IPAddress3 = vIPAddress[2], IPAddress4 = vIPAddress[3], SubnetMask1 = vSubMaksArray[0], SubnetMask2 = vSubMaksArray[1], SubnetMask3 = vSubMaksArray[2], SubnetMask4 = vSubMaksArray[3], Gateway1 = vGateway[0], Gateway2 = vGateway[1], Gateway3 = vGateway[2], Gateway4 = vGateway[3], MAC1 = vMAC[0], MAC2 = vMAC[1], MAC3 = vMAC[2], MAC4 = vMAC[3], MAC5 = vMAC[4], MAC6 = vMAC[5], ServerIPAddress1 = vServerIP[0], ServerIPAddress2 = vServerIP[1], ServerIPAddress3 = vServerIP[2], ServerIPAddress4 = vServerIP[3], Port1 = (byte)(IPConfig.Port >> 8), Port2 = (byte)(IPConfig.Port >> 0), ServerPort1 = (byte)(IPConfig.ServerPort >> 8), ServerPort2 = (byte)(IPConfig.ServerPort >> 0), DHCP = IPConfig.IsDHCP ? (byte)0x01 : (byte)0x00 }; bool vResult = await asyncSendCommandToDB(DianYuanID, PowerDataPack_Send_CommandEnum.SetIPAddress, vData); if (vResult) { PowerNetConfigEFModel vPowerNetConfigEFModel = new PowerNetConfigEFModel() { DHCP = IPConfig.IsDHCP, Gateway = IPConfig.Gateway, IPAddress = IPConfig.IPAddress, MAC = IPConfig.MAC, Port = IPConfig.Port, ServerIPAddress = IPConfig.ServerIPAddress, ServerPort = IPConfig.ServerPort, SubMask = IPConfig.SubMask }; string vSql = string.Format("MAC='{0}'", IPConfig.MAC); m_BasicDBClass_Send.TransactionBegin(); m_BasicDBClass_Send.DeleteRecordCustom <PowerNetConfigEFModel>(vSql); m_BasicDBClass_Send.InsertRecord(vPowerNetConfigEFModel); m_BasicDBClass_Send.TransactionCommit(); } return(vResult); }