using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Edge.Core.Processor.Communicator { public interface ICommunicator : IDisposable { event EventHandler OnConnected; event EventHandler OnDisconnected; /// /// fired on error bytes cut(at message cutter) or message parse (at Parser.Deserialize). /// event EventHandler OnErrorMessageRead; /// /// fired on data (with message form, have NOT parsed into type TRaw) is about send to the device, can cancel the writing operation. /// event EventHandler> OnRawDataWriting; /// /// fired on raw data received from the device, and not deserialized to message yet. /// event EventHandler> OnDataReceived; /// /// msg from underlying(no matter SerialPort or tcp), it always need to be cut into a full msg, and then /// feed in to parser to parse to an Object for handler use. /// //IMessageCutter MessageCutter { get; } Task Start(); bool Write(TMessage message); bool Write(TMessage message, object extraControlParameter); /// /// Used to get or set the abstract description for this comm. /// string Identity { get; set; } } }