Exemple #1
0
        private HardwareConfiguration(string data)
        {
            var subcode = data.Substring(0, 2);

            if (subcode != "HG")
            {
                throw new InvalidDataException(
                          string.Format("Expected sub-code of \"{0}\" but got \"{1}\".", "HG", subcode));
            }

            if (!int.TryParse(data.Substring(2, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _firmwareVersion))
            {
                throw new InvalidDataException("Couldn't parse firmware version from hardware configuration data.");
            }

            if (!DateTime.TryParseExact(data.Substring(8, 10), "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out _firmwareDate))
            {
                throw new InvalidDataException("Couldn't parse firmware date from hardware configuration data.");
            }

            // TODO: what does 18 represent?

            _terminalType         = (TerminalTypes)data[19];
            _keyboardType         = (KeyboardTypes)data[20];
            _displayType          = (DisplayTypes)data[21];
            _hostSerialParameters = data.Substring(22, 3);

            byte b;

            if (!byte.TryParse(data.Substring(25, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse host serial baud rate from hardware configuration data.");
            }
            _hostSerialBaudRate = BaudRates.Get(b);

            _terminalId = Util.CharToTerminalId(data[26]);

            // TODO: what does 27 represent?  Maybe the network card type?

            if (!byte.TryParse(data.Substring(28, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _fingerprintUnitType))
            {
                throw new InvalidDataException("Couldn't parse fingerprint unit type from hardware configuration data.");
            }

            _fingerprintUnitMode = (FingerprintUnitModes)data[29];

            if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out _userDefinedField))
            {
                throw new InvalidDataException("Couldn't parse user defined field from hardware configuration data.");
            }
        }
        private TechnicianModeSettings(string data)
        {
            var subcode = data.Substring(0, 3);

            if (subcode != "HPG")
            {
                throw new InvalidDataException(
                          string.Format("Expected sub-code of \"{0}\" but got \"{1}\".", "HPG", subcode));
            }

            if (!byte.TryParse(data.Substring(3, 2), NumberStyles.None, CultureInfo.InvariantCulture, out _terminalId))
            {
                throw new InvalidDataException("Couldn't parse terminal id from technician mode settings data.");
            }

            byte b;

            if (!byte.TryParse(data.Substring(5, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse serial port 0 mode from technician mode settings data.");
            }
            _serialPort0Mode = (SerialPortModes)b;

            if (!byte.TryParse(data.Substring(6, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse serial port 1 mode from technician mode settings data.");
            }
            _serialPort1Mode = (SerialPortModes)b;

            if (!byte.TryParse(data.Substring(7, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse serial port 2 mode from technician mode settings data.");
            }
            _serialPort2Mode = (SerialPortModes)b;

            if (!byte.TryParse(data.Substring(8, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse serial port 0 baud rate from technician mode settings data.");
            }
            _serialPort0BaudRate = BaudRates.Get(b);

            if (!byte.TryParse(data.Substring(9, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse serial port 1 baud rate from technician mode settings data.");
            }
            _serialPort1BaudRate = BaudRates.Get(b);

            if (!byte.TryParse(data.Substring(10, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse serial port 2 baud rate from technician mode settings data.");
            }
            _serialPort2BaudRate = BaudRates.Get(b);

            _hasModem = data[11] != 'N';
            if (_hasModem)
            {
                if (!byte.TryParse(data.Substring(11, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _modemRingsToAnswer))
                {
                    throw new InvalidDataException("Couldn't parse modem rings to answer from technician mode settings data.");
                }
            }

            _networkCardType = (NetworkCardTypes)data[12];
        }