public ISerialPort Create(SerialDeviceType device)
        {
            if (_serialDevices.ContainsKey(device) && null != _serialDevices[device])
            {
                return(_serialDevices[device]);
            }

            ISerialPort _serialPort = null;

            switch (device)
            {
            case SerialDeviceType.LoRa:
                _serialPort = new LoRaSerial();
                break;

            case SerialDeviceType.BTLe:
                _serialPort = new BTLESerial();
                break;
            }

            if (null != _serialPort)
            {
                _serialDevices[device] = _serialPort;
            }

            return(_serialPort);
        }
Beispiel #2
0
 public BaudRateSettings(
     SerialDeviceType deviceType,
     int desiredBaud,
     double actualBaud,
     string setting
     )
 {
     DeviceType   = deviceType;
     TargetRate   = desiredBaud;
     ActualBaud   = actualBaud;
     PercentError = ComputePercentError(desiredBaud, actualBaud);
     Setting      = setting;
 }
Beispiel #3
0
        /// <summary>
        /// Compute some parameters for baud generators.
        /// Some devices, such as PIC32, require a clock rate.
        /// Others, such as FTDI chips, have pre-specified clock rates
        /// </summary>
        /// <param name="deviceType"></param>
        /// <param name="desiredBaud"></param>
        /// <param name="clockRate"></param>
        /// <returns></returns>
        public static BaudRateSettings Compute(SerialDeviceType deviceType, int desiredBaud, int clockRate = 0)
        {
            switch (deviceType)
            {
            case SerialDeviceType.PIC32:
                return(ComputePic32Parameters(desiredBaud, clockRate));

            case SerialDeviceType.FtdiLow:
                return(ComputeFtdiLowParameters(desiredBaud));

            case SerialDeviceType.FtdiHigh:
                return(ComputeFtdiHighParameters(desiredBaud));

            default:
                throw new NotImplementedException("Unknown serial device type " + deviceType);
            }
            return(null);
        }