using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RobotLib { public abstract class DevBase { protected NLog.Logger log { get; private set; } public DevBase(Com com) : this(com, string.Empty) { } public DevBase(Com com, string keyword) { log = NLog.LogManager.GetLogger(GetType().ToString()); Keyword = keyword; Com = com; com.MessageReveived += MessageReveived; } protected string Keyword { get; } protected Com Com { get; } protected virtual void MessageReveived(object sender, MessageEventArgs e) { if (e.Message.StartsWith(Keyword)) { ParseMessage(e.Message); } } protected void SendMessage(string message) { if (Com.IsConnected) { log.Trace("Esp32> " + message); Com.SendMsg(message); } else { log.Warn("Not connected! Could not send message: " + message); } } protected virtual void ParseMessage(string message) { } public virtual void Refresh() { } } }