Пример #1
0
        public override void reveData(byte[] buf)
        {
            if (isClose)
            {
                return;
            }
            byte[] ID = new byte[2];
            Array.Copy(buf, 2, ID, 0, 2);
            sendCount = 0;
            switch (buf[1])
            {
            case 3:
                if (drType == DrivaceType.NODE)
                {
                    backUpdataData(buf, ID);
                }
                break;

            case 0x43:
                if (drType == DrivaceType.LOCATION)
                {
                    backUpdataData(buf, ID);
                }
                break;

            case 4:
                if (drType == DrivaceType.NODE)
                {
                    backCheckUpdata(buf[4]);
                }
                break;

            case 0x44:
                if (drType == DrivaceType.LOCATION)
                {
                    backCheckUpdata(buf[4]);
                }
                break;

            case 0x83:
                if (drType != DrivaceType.TAG)
                {
                    break;
                }
                byte[] AddrTag = new byte[2];
                Array.Copy(buf, 3, AddrTag, 0, AddrTag.Length);
                if (mFileUpDataInterface != null)
                {
                    mFileUpDataInterface.backBinData(this.ID, AddrTag);
                }
                break;

            case 0x84:
                if (drType != DrivaceType.TAG)
                {
                    break;
                }
                byte statusTag = buf[3];
                updataResult(ID, statusTag);
                isUpdata = false;
                if (mFileUpDataInterface == null)
                {
                    return;
                }
                mFileUpDataInterface.backCheckBinData(ID, statusTag);
                break;

            case 0x85:
                if (drType != DrivaceType.TAG)
                {
                    break;
                }
                if (mFileUpDataInterface != null)
                {
                    mFileUpDataInterface.upDataTag(buf[2]);
                }
                break;

            case 0x86:
                if (drType != DrivaceType.TAG)
                {
                    break;
                }
                byte[] seAddrTag = new byte[2];
                byte[] lenTag    = new byte[2];
                Array.Copy(buf, 4, seAddrTag, 0, seAddrTag.Length);
                Array.Copy(buf, 6, lenTag, 0, lenTag.Length);
                upDataTag(ID, seAddrTag, lenTag);
                break;

            case 0x87:
                if (drType != DrivaceType.TAG)
                {
                    break;
                }
                if (mFileUpDataInterface != null)
                {
                    mFileUpDataInterface.clearTag();
                }
                break;

            case 0xe2:
                //if (drType != DrivaceType.USB_DANGLE) break;
                byte[] AddrUSB_dangle = new byte[2];
                Array.Copy(buf, 2, AddrUSB_dangle, 0, AddrUSB_dangle.Length);
                if (mFileUpDataInterface == null)
                {
                    break;
                }
                mFileUpDataInterface.backBinData(this.ID, AddrUSB_dangle);
                sendBinData(DrivaceType.USB_DANGLE, new byte[] { 0, 0 }, AddrUSB_dangle);
                break;

            default:
                break;
            }
        }
Пример #2
0
        public override void reveData(byte[] buf, string ipInfo)
        {
            if (isClose)
            {
                return;
            }

            if (buf[1] != 0x5a || buf.Length < 10)
            {
                return;
            }
            byte[] recvID = new byte[2];
            Array.Copy(buf, 2, recvID, 0, 2);
            // if (udpCanKaoDianUpInfo == null) return;
            byte[] recvData = new byte[buf.Length - 6];
            Array.Copy(buf, 4, recvData, 0, recvData.Length);
            if (!isCheckPacket(buf))
            {
                return;
            }
            if (recvData[0] != 0xfa || recvData[recvData.Length - 1] != 0xf9)
            {
                return;
            }

            byte[] ID = new byte[2];
            Array.Copy(recvData, 2, ID, 0, 2);

            sendCount = 0;
            switch (recvData[1])
            {
            case 3:
                if (drType == DrivaceTypeAll.NODE)
                {
                    backUpdataData(buf, ID);
                }
                break;

            case 0x43:
                //if (drType == DrivaceType.CANKAODIAN)
                backUpdataData(recvData, ID);
                break;

            case 4:
                if (drType == DrivaceTypeAll.NODE)
                {
                    backCheckUpdata(buf[4]);
                }
                break;

            case 0x44:
                //if (drType == DrivaceType.CANKAODIAN)
                backCheckUpdata(recvData[0]);
                break;

            case 0x83:
                if (drType != DrivaceTypeAll.CARD)
                {
                    break;
                }
                byte[] AddrTag = new byte[2];
                Array.Copy(buf, 3, AddrTag, 0, AddrTag.Length);
                if (mFileUpDataInterface != null)
                {
                    mFileUpDataInterface.backBinData(this.ID, AddrTag);
                }
                break;

            case 0x84:
                if (drType != DrivaceTypeAll.CARD)
                {
                    break;
                }
                byte statusTag = buf[3];
                updataResult(ID, statusTag);
                isUpdata = false;
                if (mFileUpDataInterface == null)
                {
                    return;
                }
                mFileUpDataInterface.backCheckBinData(ID, statusTag);
                break;

            case 0x85:
                if (drType != DrivaceTypeAll.CARD)
                {
                    break;
                }
                if (mFileUpDataInterface != null)
                {
                    mFileUpDataInterface.upDataTag(buf[2]);
                }
                break;

            case 0x86:
                if (drType != DrivaceTypeAll.CARD)
                {
                    break;
                }
                byte[] seAddrTag = new byte[2];
                byte[] lenTag    = new byte[2];
                Array.Copy(buf, 4, seAddrTag, 0, seAddrTag.Length);
                Array.Copy(buf, 6, lenTag, 0, lenTag.Length);
                upDataTag(ID, seAddrTag, lenTag);
                break;

            case 0x87:
                if (drType != DrivaceTypeAll.CARD)
                {
                    break;
                }
                if (mFileUpDataInterface != null)
                {
                    mFileUpDataInterface.clearTag();
                }
                break;

            case 0xe2:
                //if (drType != DrivaceType.USB_DANGLE) break;
                byte[] AddrUSB_dangle = new byte[2];
                Array.Copy(buf, 2, AddrUSB_dangle, 0, AddrUSB_dangle.Length);
                if (mFileUpDataInterface == null)
                {
                    break;
                }
                mFileUpDataInterface.backBinData(this.ID, AddrUSB_dangle);
                sendBinData(DrivaceTypeAll.USB_DANGLE, new byte[] { 0, 0 }, AddrUSB_dangle);
                break;

            default:
                break;
            }
        }