Beispiel #1
0
        /// <summary>
        /// Publishes the device registration.
        /// </summary>
        /// <param name="registrationData">The registration data.</param>
        private void Publish_DeviceRegistration(DeviceRegistrationEventData registrationData)
        {
            Trace.TraceInformation("{0}.Process_DeviceRegistration: OpCode={1} Match={2} Court={3} RegSeq={4} MinPressure={5} Touch={6} Id={7}",
                CLASSNAME, registrationData.OpCode, registrationData.GameNumber, registrationData.CourtNumber,
                registrationData.RegistrationSequence, registrationData.MinimumPressure, registrationData.TouchSensorMode,
                registrationData.Id);

            // Record registration sequence information for later verification
            lock (_deviceRegistrations)
            {
                if (_deviceRegistrations.ContainsKey(registrationData.Id))
                    _deviceRegistrations[registrationData.Id] = registrationData;
                else
                    _deviceRegistrations.Add(registrationData.Id, registrationData);
            }

            // Publish device registration event
            ThreadPool.QueueUserWorkItem(delegate
            {
                OnDeviceRegistered(registrationData);
            });

            #if EIDSS2
            // Keep track of Chung and Hong device Id as V1 (EIDSS 2.0) receiver does not provide them 
            // on data events unlike EIDSS 3.0 which does.
            switch (registrationData.OpCode)
            {
                case OpCodes.ChungRegistered:
                case OpCodes.ChungPreRegistered:
                    if (_HongDeviceId.Equals(registrationData.Id)) _HongDeviceId = new DeviceId();
                    _ChungDeviceId = registrationData.Id;
                    break;

                case OpCodes.HongRegistered:
                case OpCodes.HongPreRegistered:
                    if (_ChungDeviceId.Equals(registrationData.Id)) _ChungDeviceId = new DeviceId();
                    _HongDeviceId = registrationData.Id;
                    break;
            }
            #endif
        }