} // CloseConnection() #endregion // PUBLIC METHODS //// --------------------------------------------------------------------- #region PRIVATE METHODS #endregion // PRIVATE METHODS //// --------------------------------------------------------------------- #region (SERIAL) PORT EVENTS /// <summary> /// Event handler for low level communication events. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="LowLevelComEventArgs"/> instance /// containing the event data.</param> private void OnLowLevelComEvent(object sender, LowLevelComEventArgs e) { switch (e.EventType) { case LowLevelComEventType.DataReceived: // not handled here break; case LowLevelComEventType.ErrorReceived: var errorReceivedEventArgs = e.EventData as SerialErrorReceivedEventArgs; if (errorReceivedEventArgs != null) { OnPortErrorReceived(this, (errorReceivedEventArgs).EventType); } // if break; case LowLevelComEventType.SerialPinChange: var serialPinChangedEventArgs = e.EventData as SerialPinChangedEventArgs; if (serialPinChangedEventArgs != null) { this.OnPortPinChanged(this, (serialPinChangedEventArgs).EventType); } // if break; default: Log.Warn("Unhandled low level communication event!"); break; } // switch } // lowcom_LowLevelComEvent()
} // ProcessCommand() /// <summary> /// Generates a low level communication event. /// </summary> public void GenerateLowComEvent() { if (this.LowLevelComEvent != null) { var args = new LowLevelComEventArgs( LowLevelComEventType.DataReceived, EventArgs.Empty); this.LowLevelComEvent(this, args); } // if } // GenerateLowComEvent()
} // PortErrorReceived() /// <summary> /// Handles the pin changed event of a SerialPort object. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="SerialPinChangedEventArgs"/> /// instance containing the event data.</param> private void PortPinChanged(object sender, SerialPinChangedEventArgs e) { if (this.LowLevelComEvent != null) { var args = new LowLevelComEventArgs( LowLevelComEventType.SerialPinChange, e); this.LowLevelComEvent(this, args); } // if } // PortPinChanged()
} // PortDataReceived() /// <summary> /// Handles the error received event of a SerialPort object. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="SerialErrorReceivedEventArgs"/> /// instance containing the event data.</param> private void PortErrorReceived(object sender, SerialErrorReceivedEventArgs e) { if (this.LowLevelComEvent != null) { var args = new LowLevelComEventArgs( LowLevelComEventType.ErrorReceived, e); this.LowLevelComEvent(this, args); } // if } // PortErrorReceived()