Exemplo n.º 1
0
        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);
             *
             * }
             */
        }
Exemplo n.º 2
0
        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;
        }