Exemplo n.º 1
0
 public StEvalPeriph(string deviceKey)
 {
     key   = deviceKey;
     coder = new Coder(this);
     SerialDevices.getInstance().Open(key);
     SerialDevices.getInstance().Bind(key, DataReceived);
 }
Exemplo n.º 2
0
        public static SerialDevices getInstance()
        {
            if (instance == null)
            {
                instance = new SerialDevices();
            }

            return(instance);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public override string ToString()
 {
     return(SerialDevices.getInstance().GetName(key));
 }
Exemplo n.º 5
0
 public void Send(Message message)
 {
     byte[] frame = message.ToArray();
     byte[] raw   = coder.Write(frame);
     SerialDevices.getInstance().Send(key, raw);
 }