public StEvalPeriph(string deviceKey) { key = deviceKey; coder = new Coder(this); SerialDevices.getInstance().Open(key); SerialDevices.getInstance().Bind(key, DataReceived); }
public static List <StEvalPeriph> Scanner() { List <StEvalPeriph> devices = new List <StEvalPeriph>(); List <StEvalPeriph> stEvalPeriph = new List <StEvalPeriph>(); string[] devicesKeys; // refresh SerialDevices.getInstance().Refresh(); // Récupérer toutes les clés devicesKeys = SerialDevices.getInstance().GetKeys(); // Créer des StEvalPeriph via les clés foreach (string k in devicesKeys) { devices.Add(new StEvalPeriph(k)); } // Dans la reception, sauvegarder les périphs qui répondent void Reception(StEvalPeriph p, Message m) { if (m is MessageWhoIAm whoIAmMessage) { stEvalPeriph.Add(p); } } devices.ForEach(p => p.OnMessageReceived += Reception); // Envoyer à tout le monde une trame MessageGetter message = new MessageGetter(MessageId.WhoIAm); devices.ForEach(sp => sp.Send(message)); Thread.Sleep(TIMEOUT); return(stEvalPeriph); }
public override string ToString() { return(SerialDevices.getInstance().GetName(key)); }
public void Send(Message message) { byte[] frame = message.ToArray(); byte[] raw = coder.Write(frame); SerialDevices.getInstance().Send(key, raw); }