public int InsertMachines(NetStructure.DeviceSetting info, out int machineId) { int rest = 0; machineId = 0; using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "sp_Device_Setting"; cmd.CommandType = CommandType.StoredProcedure; //cmd.Parameters.AddWithValue("@DeviceId", info.DeviceId); cmd.Parameters.Add(new SqlParameter("@DeviceId", SqlDbType.Int)); cmd.Parameters["@DeviceId"].Direction = ParameterDirection.InputOutput; cmd.Parameters["@DeviceId"].Value = info.DeviceId; cmd.Parameters.Add(new SqlParameter("@ReturnValue", SqlDbType.Int)); cmd.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue; cmd.Parameters.AddWithValue("@OperateType", info.OperateType); cmd.Parameters.AddWithValue("@RoomNumber", info.RoomNumber); cmd.Parameters.AddWithValue("@DeviceNumber", info.DeviceNumber); cmd.Parameters.AddWithValue("@IpAddress", info.IPAddress); cmd.ExecuteNonQuery(); rest = Convert.ToInt32(cmd.Parameters["@ReturnValue"].Value); if (rest == 0) { machineId = Convert.ToInt32(cmd.Parameters["@DeviceId"].Value); } } return(rest); }
public byte[] HandlerClientData(byte[] buff) { int resInt = 0, machineId = 0; byte[] byteResp = { 0, 0, 0 }; DbHandler db = new DbHandler(); NetStructure.DeviceSetting outInfo = this.DecodeData(buff); resInt = db.InsertMachines(outInfo, out machineId); //生成返回结果 byteResp[0] = (byte)resInt; byte[] byteID = ConvertHelper.Int16ToBytes(machineId, true); Array.Copy(byteID, 0, byteResp, 1, 2); return(byteResp); }
public void HandlerTest() { int resInt = 0, machineId = 0; byte[] byteResp = { 0, 0, 0 }; DbHandler db = new DbHandler(); NetStructure.DeviceSetting outInfo = new NetStructure.DeviceSetting() { DeviceId = 0, IPAddress = "1.1.1.12", DeviceName = "测试1", DeviceNumber = "TEST112", RoomNumber = "22", OperateType = 1 }; resInt = db.InsertMachines(outInfo, out machineId); //生成返回结果 byteResp[0] = (byte)resInt; byte[] byteID = ConvertHelper.Int16ToBytes(machineId, true); Array.Copy(byteID, 0, byteResp, 1, 2); }
/// <summary> /// 客户端返回消息解码 /// </summary> /// <param name="buff"></param> /// <returns></returns> private NetStructure.DeviceSetting DecodeData(byte[] buff) { NetStructure.DeviceSetting info = new NetStructure.DeviceSetting(); byte[] tempData = buff; //机器码 int locIdx = 0; info.DeviceId = ConvertHelper.BytesToInt16(tempData, locIdx, true); locIdx += 2; //操作类型 info.OperateType = tempData[locIdx++]; int tempLen = tempData[locIdx++]; //设备编码 byte[] numberByte = new byte[tempLen]; Array.Copy(tempData, locIdx, numberByte, 0, tempLen); info.DeviceNumber = System.Text.Encoding.GetEncoding("GBK").GetString(numberByte); locIdx += tempLen; //车间号 tempLen = 4; byte[] roomByte = new byte[tempLen]; Array.Copy(tempData, locIdx, roomByte, 0, tempLen); info.RoomNumber = ConvertHelper.BytesToInt32(roomByte).ToString(); locIdx += tempLen; //IP地址 StringBuilder builderIP = new StringBuilder(); for (int i = 0; i < 4; i++) { builderIP.Append(tempData[locIdx++]); builderIP.Append('.'); } info.IPAddress = builderIP.ToString().Substring(0, builderIP.Length - 1); return(info); }