Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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);
        }