// Pozor! Modul Quido odesílá informace o stavu vstupù/výstupù jako bitovou masku. Podle poètu daných IO je vždy použit odpovídající poèet Byte pro pøenos informací. // Proto se na nìkterých modulech pøenáší více vstupù/výstupù než je jejich sketeèný fyzický poèet ! Skteèný poèet IO lze zjistit pomocí funkce INFO. // funkce je volána vždy když pøijde od Quida samovolnì vyslaná zpráva private void InputsChange(Papouch.Spinel.Spinel97.Device.Quido.Quido quido, Boolean[] inputs) { for (int index = 0; index < inputs.Length; index++) { LogMsg("AUTONOTIFY - Input " + index.ToString() + " is " + ((inputs[index]) ? "ON" : "OFF")); } }
// vytvoøení objektu "quido" private void buttonQuidoCreate_Click(object sender, EventArgs e) { if (ci != null) { quido = new Papouch.Spinel.Spinel97.Device.Quido.Quido(ci, 0xFE); quido.ConfigString = textBoxDeviceString.Text; quido.OnPacketReceive += new Papouch.Spinel.Spinel97.Device.Device.EventSpinelPacketReceive(PacketReceive); quido.OnInputsChange += new Papouch.Spinel.Spinel97.Device.Quido.Quido.EventQuidoInputsChange(InputsChange); quido.OnInputChange += new Papouch.Spinel.Spinel97.Device.Quido.Quido.EventQuidoInputChange(InputChange); LogMsg("Quido object created."); checkFormControls(); } else { LogMsg("Initialize Communicatioin Interface first!"); } }
// funkce je volána pro každý vstup pøi detekci jeho zmìny - po inicializaci (pøi prvním volání) není znám pøedchozí stav, // proto se na poprvé zavolá funkce pro všechny vstupy. Pøi prvním voláním je hodnota io_old_stat a io_new_stat stejná, pøi zmìnì jsou rozdílné. private void InputChange(Papouch.Spinel.Spinel97.Device.Quido.Quido quido, int io_index, bool io_old_stat, bool io_new_stat) { LogMsg("AUTONOTIFY - Input change: " + io_index + " is " + ((io_new_stat) ? "ON" : "OFF")); }
// zrušení objektu quido private void buttonQuidoDestroy_Click(object sender, EventArgs e) { quido = null; checkFormControls(); }