/// <summary> /// Конструктор /// </summary> public CanPort() { // Инициализируем бужер входящих сообщений this._InputBufferMessages = new Queue <Frame>(100); // Инициализируем дескриптор устройства this._DeviceHandle = new SafeFileHandle(IntPtr.Zero, true); this._DeviceHandle.Close(); // Структура таймаутов _Timeouts = new F_CAN_TIMEOUTS(); }
/// <summary> /// Конструктор для десериализации /// </summary> /// <param name="info"></param> /// <param name="context"></param> public CanPort(SerializationInfo info, StreamingContext context) { this._InputBufferMessages = new Queue <Frame>(100); // Инициализируем дескриптор устройства this._DeviceHandle = new SafeFileHandle(IntPtr.Zero, true); this._DeviceHandle.Close(); this._PortName = info.GetString("PortName"); this._BitRate = (BaudRate)info.GetValue("BitRate", typeof(BaudRate)); this._OpMode = (PortMode)info.GetValue("Mode", typeof(PortMode)); this._ErrorFrameEnable = info.GetBoolean("ErrorFrameEnable"); this._FrameFormat = (FrameFormat)info.GetValue("FrameFormat", typeof(FrameFormat)); this._Timeouts = (F_CAN_TIMEOUTS)info.GetValue("Timeouts", typeof(F_CAN_TIMEOUTS)); }
/// <summary> /// /// </summary> /// <param name="portName"></param> /// <param name="bitRate"></param> /// <param name="frameFormat"></param> /// <param name="mode"></param> public CanPort(String portName, BaudRate bitRate, FrameFormat frameFormat, PortMode mode) { // Инициализируем буфер входящих сообщений this._InputBufferMessages = new Queue <Frame>(100); // Инициализируем дескриптор устройства this._DeviceHandle = new SafeFileHandle(IntPtr.Zero, true); this._DeviceHandle.Close(); // Номер порта PortName = portName; _BitRate = bitRate; _FrameFormat = frameFormat; _OpMode = mode; // Структура таймаутов _Timeouts = new F_CAN_TIMEOUTS(); }
/// <summary> /// Конструктор /// </summary> /// <param name="portNumber">Номер CAN-порта</param> public CanPort(Int32 portNumber) { // Инициализируем буфер входящих сообщений this._InputBufferMessages = new Queue <Frame>(100); // Инициализируем дескриптор устройства this._DeviceHandle = new SafeFileHandle(IntPtr.Zero, true); this._DeviceHandle.Close(); // Номер порта if (portNumber <= 0) { throw new ArgumentOutOfRangeException( "portNumber", "Недопустимое значение. Допускаются только положительные значения, больше нуля"); } else { this.PortName = String.Format("CAN{0}", portNumber); } // Структура таймаутов _Timeouts = new F_CAN_TIMEOUTS(); }