public static void StartLongFileReceive(AsynchSocketServiceBaseFrame InAsynchSocketServiceBaseFrame, SocketServiceReadWriteChannel InputSocketServiceReadWriteChannel, byte[] FirstRecieveFileByteUnit, uint MyRecieveCount) { string RecieveMessageLenghtStr = string.Format("{0:X2}", FirstRecieveFileByteUnit[21]); RecieveMessageLenghtStr = RecieveMessageLenghtStr + string.Format("{0:X2}", FirstRecieveFileByteUnit[20]); RecieveMessageLenghtStr = RecieveMessageLenghtStr + string.Format("{0:X2}", FirstRecieveFileByteUnit[19]); RecieveMessageLenghtStr = RecieveMessageLenghtStr + string.Format("{0:X2}", FirstRecieveFileByteUnit[18]); UInt32 RecieveMessageLenght = Convert.ToUInt32(RecieveMessageLenghtStr, 16); UInt32 RecieveFileLenght = RecieveMessageLenght - 22; LoopReadCount++; StaticRecieveFileBytes = new byte[RecieveFileLenght]; //byte[] RecieveFileFirstByteBuffer = new byte[MyRecieveCount-22]; LoopReadFlag = (uint)(RecieveMessageLenght - MyRecieveCount); NextSaveIndex = MyRecieveCount - 22; //--填充所接收的文件字节---- for (int i = 0; i < NextSaveIndex; i++) { StaticRecieveFileBytes[0] = FirstRecieveFileByteUnit[22 + i]; } //---1.找智能锁本身通道的路由表记录------------------------------------- LockServerLib.FindLockChannel MyBindedLockChannel = new LockServerLib.FindLockChannel(InputSocketServiceReadWriteChannel); LoginUser MyLoginUser = InAsynchSocketServiceBaseFrame.MyManagerSocketLoginUser.MyLoginUserList.Find(new Predicate <LoginUser>(MyBindedLockChannel.BindedLockChannelForSocket)); MyLockIDStr = MyLoginUser.LockID; //MyMobileIDStr = MyLoginUser.MobileID; //AddLongFilePackage(RecieveFileByteUnit, (int)RecieveFileLenght) /* * LoopReadFlag = RecieveMessageLenght; * * if (RecieveMessageLenght <= MyRecieveCount) * { * * StaticRecieveFileBytes = new byte[RecieveFileLenght]; * AddLongFilePackage(RecieveFileByteUnit, MyRecieveCount); * StartUpLoadFileSave(); * * } * else * { * LoopReadCount++; * StaticRecieveFileBytes = new byte[RecieveFileLenght]; * AddLongFilePackage(RecieveFileByteUnit, MyRecieveCount); * * } */ }
public void CompleteCommand() { //---1.找智能锁本身通道的路由表记录------------------------------------- LockServerLib.FindLockChannel MyBindedLockChannel = new LockServerLib.FindLockChannel(this.MyReadWriteChannel); LoginUser MyLoginUser = MyAsynchLockServerSocketService.MyManagerLoginLockUser.MyLoginUserList.Find(new Predicate <LoginUser>(MyBindedLockChannel.BindedLockChannelForSocket)); if (MyLoginUser.LockID == null || MyLoginUser.MobileID == null) { //MyAsynchLockServerSocketService.MyManagerLoginLockUser.RemoveNotLoginUser(ref MyReadWriteChannel.MyTCPClient); ResponseMessageToLock(0xFF, 0); //发送响应消息 MyAsynchLockServerSocketService.DisplayResultInfor(1, "没有正常注册通道错误![1003]"); return; } MyLockIDStr = MyLoginUser.LockID; MyMobileIDStr = MyLoginUser.MobileID; //AsynchSocketServiceBaseFrame.FileReceiveFlag++; // // //System.Diagnostics.Debug.WriteLine(AsynchSocketServiceBaseFrame.FileReceiveFlag); // //System.Diagnostics.Debug.WriteLine(AsynchSocketServiceBaseFrame.MyLockIDStr); //System.Diagnostics.Debug.WriteLine(AsynchSocketServiceBaseFrame.MyMobileIDStr); MessagePowerID = MyReadBuffers[40]; if (MessagePowerID == 1) { CreateForwardMessageToMobile(); } //1.缓冲区按原样全部转换为16进制字符串表示--------------------------------------------------------------------------------------------------------- /* * string HexRecieveMessageString = ""; * for (int i = 0; i < MyRecieveCount; i++) * { * * HexRecieveMessageString = HexRecieveMessageString + string.Format("{0:X2}", MyReadBuffers[i]); * * } * * //2.摘要字符串显示----------------------------------------------------------------------------------------------------------------------- * string RecieveMessageLenghtString = ""; * RecieveMessageLenghtString = string.Format("{0:X2}", MyReadBuffers[0]); * if (MyAsynchSocketServiceBaseFrame.DataFormateFlag) * { * RecieveMessageLenghtString = string.Format("{0:X2}", MyReadBuffers[1] + RecieveMessageLenghtString); * } * else * { * RecieveMessageLenghtString = RecieveMessageLenghtString + string.Format("{0:X2}", MyReadBuffers[1]); * } * //RecieveMessageLenghtString = RecieveMessageLenghtString + string.Format("{0:X2}", MyReadBuffers[1]); * UInt32 RecieveMessageLenght = Convert.ToUInt32(RecieveMessageLenghtString, 16); * * Byte RecieveMessageFlag = MyReadBuffers[2]; * * * string HexRecieveMessageIDString ; * if (MyAsynchSocketServiceBaseFrame.DataFormateFlag) * { * HexRecieveMessageIDString = string.Format("{0:X2}", MyReadBuffers[9]) + string.Format("{0:X2}", MyReadBuffers[8]); * } * else * { * HexRecieveMessageIDString= string.Format("{0:X2}", MyReadBuffers[8]) + string.Format("{0:X2}", MyReadBuffers[9]); * } */ //============================================================================================== //string MyLockIDName = Encoding.ASCII.GetString(MyReadBuffers, 22, 15); // "9876ABCD1234AA9"; //string BaseInforString = RecieveMessageLenght.ToString() + "--" + RecieveMessageFlag.ToString() + "--" + HexRecieveMessageIDString + "--" + MyLockIDName + "--"; // string MyTimeMarkerStr = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now) + ":" + string.Format("{0:D3}", DateTime.Now.Millisecond); //MyAsynchSocketServiceBaseFrame.DisplayResultInfor(2, string.Format(MyTimeMarkerStr + "[{0}]{1}", MyReadWriteObject.MyTCPClient.Client.RemoteEndPoint, HexRecieveMessageString + "-->" + BaseInforString)); //-------------------------------- MyAsynchLockServerSocketService.MyManagerLoginLockUser.CRUDLoginUserList(ref MyReadWriteChannel.MyTCPClient, 1); //更新路由注册表通道活动时间 ResponseMessageToLock(0, 0); //发送响应消息 return; }