コード例 #1
0
ファイル: LLRPClient.cs プロジェクト: ajeck/impinj-reader-app
        private void ProcesssMessage(Int16 ver, Int16 msg_type, Int32 msg_id, byte[] data)
        {
            BitArray bArr;
            int cursor = 0;
            int length;

            switch ((ENUM_LLRP_MSG_TYPE)msg_type)
            {

                case ENUM_LLRP_MSG_TYPE.CUSTOM_MESSAGE:
                    _event_CUSTOM_MESSAGE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_CUSTOM_MESSAGE.data, data.Length);
                    _event_CUSTOM_MESSAGE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_READER_CAPABILITIES:
                    _event_GET_READER_CAPABILITIES.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_READER_CAPABILITIES.data, data.Length);
                    _event_GET_READER_CAPABILITIES.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_READER_CAPABILITIES_RESPONSE:
                    _event_GET_READER_CAPABILITIES_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_READER_CAPABILITIES_RESPONSE.data, data.Length);
                    _event_GET_READER_CAPABILITIES_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ADD_ROSPEC:
                    _event_ADD_ROSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ADD_ROSPEC.data, data.Length);
                    _event_ADD_ROSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ADD_ROSPEC_RESPONSE:
                    _event_ADD_ROSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ADD_ROSPEC_RESPONSE.data, data.Length);
                    _event_ADD_ROSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DELETE_ROSPEC:
                    _event_DELETE_ROSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DELETE_ROSPEC.data, data.Length);
                    _event_DELETE_ROSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DELETE_ROSPEC_RESPONSE:
                    _event_DELETE_ROSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DELETE_ROSPEC_RESPONSE.data, data.Length);
                    _event_DELETE_ROSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.START_ROSPEC:
                    _event_START_ROSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_START_ROSPEC.data, data.Length);
                    _event_START_ROSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.START_ROSPEC_RESPONSE:
                    _event_START_ROSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_START_ROSPEC_RESPONSE.data, data.Length);
                    _event_START_ROSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.STOP_ROSPEC:
                    _event_STOP_ROSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_STOP_ROSPEC.data, data.Length);
                    _event_STOP_ROSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.STOP_ROSPEC_RESPONSE:
                    _event_STOP_ROSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_STOP_ROSPEC_RESPONSE.data, data.Length);
                    _event_STOP_ROSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ENABLE_ROSPEC:
                    _event_ENABLE_ROSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ENABLE_ROSPEC.data, data.Length);
                    _event_ENABLE_ROSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ENABLE_ROSPEC_RESPONSE:
                    _event_ENABLE_ROSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ENABLE_ROSPEC_RESPONSE.data, data.Length);
                    _event_ENABLE_ROSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DISABLE_ROSPEC:
                    _event_DISABLE_ROSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DISABLE_ROSPEC.data, data.Length);
                    _event_DISABLE_ROSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DISABLE_ROSPEC_RESPONSE:
                    _event_DISABLE_ROSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DISABLE_ROSPEC_RESPONSE.data, data.Length);
                    _event_DISABLE_ROSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_ROSPECS:
                    _event_GET_ROSPECS.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_ROSPECS.data, data.Length);
                    _event_GET_ROSPECS.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_ROSPECS_RESPONSE:
                    _event_GET_ROSPECS_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_ROSPECS_RESPONSE.data, data.Length);
                    _event_GET_ROSPECS_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ADD_ACCESSSPEC:
                    _event_ADD_ACCESSSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ADD_ACCESSSPEC.data, data.Length);
                    _event_ADD_ACCESSSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ADD_ACCESSSPEC_RESPONSE:
                    _event_ADD_ACCESSSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ADD_ACCESSSPEC_RESPONSE.data, data.Length);
                    _event_ADD_ACCESSSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DELETE_ACCESSSPEC:
                    _event_DELETE_ACCESSSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DELETE_ACCESSSPEC.data, data.Length);
                    _event_DELETE_ACCESSSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DELETE_ACCESSSPEC_RESPONSE:
                    _event_DELETE_ACCESSSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DELETE_ACCESSSPEC_RESPONSE.data, data.Length);
                    _event_DELETE_ACCESSSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ENABLE_ACCESSSPEC:
                    _event_ENABLE_ACCESSSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ENABLE_ACCESSSPEC.data, data.Length);
                    _event_ENABLE_ACCESSSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ENABLE_ACCESSSPEC_RESPONSE:
                    _event_ENABLE_ACCESSSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ENABLE_ACCESSSPEC_RESPONSE.data, data.Length);
                    _event_ENABLE_ACCESSSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DISABLE_ACCESSSPEC:
                    _event_DISABLE_ACCESSSPEC.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DISABLE_ACCESSSPEC.data, data.Length);
                    _event_DISABLE_ACCESSSPEC.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.DISABLE_ACCESSSPEC_RESPONSE:
                    _event_DISABLE_ACCESSSPEC_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_DISABLE_ACCESSSPEC_RESPONSE.data, data.Length);
                    _event_DISABLE_ACCESSSPEC_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_ACCESSSPECS:
                    _event_GET_ACCESSSPECS.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_ACCESSSPECS.data, data.Length);
                    _event_GET_ACCESSSPECS.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_ACCESSSPECS_RESPONSE:
                    _event_GET_ACCESSSPECS_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_ACCESSSPECS_RESPONSE.data, data.Length);
                    _event_GET_ACCESSSPECS_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_READER_CONFIG:
                    _event_GET_READER_CONFIG.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_READER_CONFIG.data, data.Length);
                    _event_GET_READER_CONFIG.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_READER_CONFIG_RESPONSE:
                    _event_GET_READER_CONFIG_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_READER_CONFIG_RESPONSE.data, data.Length);
                    _event_GET_READER_CONFIG_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.SET_READER_CONFIG:
                    _event_SET_READER_CONFIG.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_SET_READER_CONFIG.data, data.Length);
                    _event_SET_READER_CONFIG.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.SET_READER_CONFIG_RESPONSE:
                    _event_SET_READER_CONFIG_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_SET_READER_CONFIG_RESPONSE.data, data.Length);
                    _event_SET_READER_CONFIG_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.CLOSE_CONNECTION:
                    _event_CLOSE_CONNECTION.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_CLOSE_CONNECTION.data, data.Length);
                    _event_CLOSE_CONNECTION.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.CLOSE_CONNECTION_RESPONSE:
                    _event_CLOSE_CONNECTION_RESPONSE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_CLOSE_CONNECTION_RESPONSE.data, data.Length);
                    _event_CLOSE_CONNECTION_RESPONSE.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.GET_REPORT:
                    _event_GET_REPORT.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_GET_REPORT.data, data.Length);
                    _event_GET_REPORT.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.RO_ACCESS_REPORT:
                    try
                    {
                        bArr = Util.ConvertByteArrayToBitArray(data);
                        length = bArr.Count;
                        MSG_RO_ACCESS_REPORT rpt = MSG_RO_ACCESS_REPORT.FromBitArray(ref bArr, ref cursor, length);
                        delegateRoAccessReport roaccess = new delegateRoAccessReport(TriggerRoAccessReport);
                        roaccess.BeginInvoke(rpt, null, null);
                    }
                    catch
                    {
                    }
                    break;

                case ENUM_LLRP_MSG_TYPE.KEEPALIVE:
                    try
                    {
                        bArr = Util.ConvertByteArrayToBitArray(data);
                        length = bArr.Count;
                        MSG_KEEPALIVE msg = MSG_KEEPALIVE.FromBitArray(ref bArr, ref cursor, length);
                        delegateKeepAlive rMsg = new delegateKeepAlive(TriggerKeepAlive);
                        rMsg.BeginInvoke(msg, null, null);
                    }
                    catch
                    {
                    }
                    break;

                case ENUM_LLRP_MSG_TYPE.KEEPALIVE_ACK:
                    _event_KEEPALIVE_ACK.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_KEEPALIVE_ACK.data, data.Length);
                    _event_KEEPALIVE_ACK.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.READER_EVENT_NOTIFICATION:
                    try
                    {
                        bArr = Util.ConvertByteArrayToBitArray(data);
                        length = bArr.Count;
                        MSG_READER_EVENT_NOTIFICATION ntf = MSG_READER_EVENT_NOTIFICATION.FromBitArray(ref bArr, ref cursor, length);
                        if (conn_evt != null && ntf.ReaderEventNotificationData.ConnectionAttemptEvent != null)
                        {
                            conn_status_type = ntf.ReaderEventNotificationData.ConnectionAttemptEvent.Status;
                            conn_evt.Set();
                        }
                        else
                        {
                            delegateReaderEventNotification rEvent = new delegateReaderEventNotification(TriggerReaderEventNotification);
                            rEvent.BeginInvoke(ntf, null, null);
                        }
                    }
                    catch
                    {
                    }
                    break;

                case ENUM_LLRP_MSG_TYPE.ENABLE_EVENTS_AND_REPORTS:
                    _event_ENABLE_EVENTS_AND_REPORTS.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ENABLE_EVENTS_AND_REPORTS.data, data.Length);
                    _event_ENABLE_EVENTS_AND_REPORTS.evt.Set();
                    break;

                case ENUM_LLRP_MSG_TYPE.ERROR_MESSAGE:
                    _event_ERROR_MESSAGE.data = new byte[data.Length];
                    if (data.Length > 0) Array.Copy(data, _event_ERROR_MESSAGE.data, data.Length);
                    _event_ERROR_MESSAGE.evt.Set();
                    break;

                default:
                    break;
            }
        }
コード例 #2
0
        void reader_OnRoAccessReportReceived(MSG_RO_ACCESS_REPORT msg)
        {
            delegateRoAccessReport del = new delegateRoAccessReport(UpdateROReport);

            this.Invoke(del, msg);
        }
コード例 #3
0
 void OnRoAccessReportReceived(MSG_RO_ACCESS_REPORT msg)
 {
     isRoAccessReportReceived = true;
     lock (isRoAccessReportsComingLock)
     {
         isRoAccessReportsComing = true;
     }
     delegateRoAccessReport del = new delegateRoAccessReport(UpdateROReport);
     del.Invoke(msg);
 }
コード例 #4
0
ファイル: RFIDReader.cs プロジェクト: yangyongjx/Blink
        //Thread myThread = new Thread(new ThreadStart(this.UpdateROReport));

        public void reader_OnRoAccessReportReceived(MSG_RO_ACCESS_REPORT msg)
        {
            delegateRoAccessReport del = UpdateROReport;

            del.BeginInvoke(msg, OnAsyncCallBack, null);
        }
コード例 #5
0
 void TagOpOnRoAccessReportReceived(MSG_RO_ACCESS_REPORT msg)
 {
     BuildTransport(false, msg);
     delegateRoAccessReport del = new delegateRoAccessReport(ParseTagOpResponse);
     del.Invoke(msg);
 }