ControlThink Forums

Share ideas. Get support. Meet new friends.
Welcome to ControlThink Forums Sign in | Join | Help
in Search

zwave device command has timeout problem

Last post 09-27-2007 1:58 AM by sumit. 1 replies.
Page 1 of 1 (2 items)
Sort Posts: Previous Next
  • 09-27-2007 1:57 AM

    • sumit
    • Top 100 Contributor
    • Joined on 06-14-2007
    • Posts 8

    zwave device command has timeout problem

    hi All,

                 Ihave a problem with zwave devices when i add one zwave device in zwave network it works correctly but when add another zwave device in zwave network i get a "Command has timeout " problem .

    code is following;

     

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Text;

    using System.Windows.Forms;

    using ControlThink.ZWave;

    using System.Timers;

    namespace Zwave_BinaryDevice

    {

    public partial class Form1 : Form

    {

    private ZWaveController objController = new ZWaveController();

    private ControlThink.ZWave.Devices.ZWaveDevice objDevice;

    private System.Timers.Timer tmr = new System.Timers.Timer();

    IAsyncResult ar;

    IAsyncResult arCheckUSB; public Form1()

    {

    InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)

    {

    objController.DeviceAdded +=
    new ZWaveController.DeviceUpdateEventHandler(objController_DeviceAdded);

    objController.DeviceRemoved += new ZWaveController.DeviceUpdateEventHandler(objController_DeviceRemoved);

    objController.ControllerNotResponding += new EventHandler(objController_ControllerNotResponding);

    objController.Connected += new EventHandler(objController_Connected);

    objController.SynchronizingObject = this;

    }

    void objController_ControllerNotResponding(object sender, EventArgs e)

    {

    try

    {

    objController.Dispose();

    objController =
    new ZWaveController();

    objController.Connect();

    }

    catch(Exception ex)

    {

    MessageBox.Show("not connected");

    }

    }

    void objController_Connected(object sender, EventArgs e)

    {

    MessageBox.Show("Controller is Concted" + " " + objController.Devices.Count.ToString());

    }

    void objController_DeviceRemoved(object sender, ZWaveController.DeviceUpdateEventArgs e)

    {

    }

    void objController_DeviceAdded(object sender, ZWaveController.DeviceUpdateEventArgs e)

    {

    if (e.Device.GetType().ToString() == "ControlThink.ZWave.Devices.MultilevelSwitch")

    {

    MessageBox.Show(e.Device.GetType().ToString() + " " + e.Device.NodeID.ToString() + " " + e.Device.Level.ToString());

    objDevice = (ControlThink.ZWave.Devices.MultilevelSwitch)e.Device;

    objDevice.PollEnabled = true;

    objDevice.PollInterval = System.TimeSpan.FromMilliseconds(1000);

    objDevice.LevelChanged += new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(objDevice_LevelChanged);

    }

    if (e.Device.GetType().ToString() == "ControlThink.ZWave.Devices.BinarySwitch")

    {

    objDevice = (ControlThink.ZWave.Devices.
    BinarySwitch) e.Device;

    objDevice.PollEnabled = true;

    objDevice.PollInterval = System.TimeSpan.FromMilliseconds(1000);

    objDevice.LevelChanged += new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(objDevice_LevelChanged);

    MessageBox.Show(e.Device.GetType().ToString() + " " + e.Device.NodeID.ToString() + " " + e.Device.Level.ToString());

    }

    else

    {

    e.Device.LevelChanged +=
    new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(objDevice_LevelChanged);

    e.Device.PollEnabled = true;

    e.Device.PollInterval = System.TimeSpan.FromMilliseconds(1000);

    }

    }

    void objDevice_LevelChanged(object sender, ControlThink.ZWave.Devices.LevelChangedEventArgs e)

    {

    if (e.GetHashCode().ToString() == "ControlThink.ZWave.Devices.MultilevelSwitch")

    {

    MessageBox.Show("hi");

    }

    string str = objDevice.NodeID.ToString();

    }

    private void btnReset_Click(object sender, EventArgs e)

    {

    objController.HardReset();

    MessageBox.Show(objController.Devices.Count.ToString());

    }

    private void btnConnectDisconnect_Click(object sender, EventArgs e)

    {

    try

    {

    objController.Connect();

    if (objController.IsConnected)

    {

    tmr.AutoReset =
    true;

    tmr.Interval = 5000;

    tmr.Elapsed += new ElapsedEventHandler(tmr_Elapsed);

    listBox1.Items.Add("Controller is Connected");

    }

    }

    catch (Exception ex)

    {

    objController.Dispose();

    listBox1.Items.Add(
    "Controller is Not Connected");

    }

    }

    void tmr_Elapsed(object sender, ElapsedEventArgs e)

    {

    try

    {

    if (arCheckUSB == null)

    {

    AsyncCallback acb = new AsyncCallback(CheckingUSB);

    tmr.Stop();

    arCheckUSB = objController.BeginReceiveConfiguration(acb, objController);

    }

    }

    catch(Exception ex)

    {

    MessageBox.Show(ex.Message);

    tmr.Stop();

    }

    }

    private void btnAddDevice_Click(object sender, EventArgs e)

    {

     

    MessageBox.Show("Click OK, and then press the button on the device to add." + System.Environment.NewLine + System.Environment.NewLine + "NOTE: Your USB dongle must be within 3 feet of the device you're trying to add.");

    try

    {

    {

    objDevice = objController.AddDevice();

    objDevice.PollEnabled =
    true;

    objDevice.PollInterval = System.TimeSpan.FromMilliseconds(1000);

    objDevice.LevelChanged += new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(objDevice_LevelChanged);

    }

    catch (Exception ex)

    {

    MessageBox.Show(ex.Message);

    }

    }catch (Exception ex)

    {

    MessageBox.Show("Add device failed.");

    }

    }

    private void btnAllOn_Click(object sender, EventArgs e)

    {

    foreach (ControlThink.ZWave.Devices.ZWaveDevice device in objController.Devices)

    {

    try

    {

    device.PowerOn();

    MessageBox.Show(objDevice.Name.ToString() + " " + objDevice.NodeID.ToString() + " " + objDevice.Level.ToString());

    }

    catch

    {

    }

    }

    }

    private void btnAllOff_Click(object sender, EventArgs e)

    {

    foreach (ControlThink.ZWave.Devices.ZWaveDevice device in objController.Devices)

    {

    try

    {

    device.PowerOff();

    listBox1.Items.Add(objDevice.Name.ToString()+
    " "+ objDevice.NodeID.ToString()+" "+ objDevice.Level.ToString());

    }

    catch

    {

    }

    }

    }

    public void ManualAddition()

    {

    AsyncCallback acb = new AsyncCallback(Manually);

    ar = objController.BeginAddDevice(acb, objController);

    }

    public void Manually(object state)

    {

    try

    {

    objController.EndAddDevice(ar);

    }

    catch(Exception er)

    {

    MessageBox.Show(er.Message);

    }

    ManualAddition();

    }

    private void btnManual_Click(object sender, EventArgs e)

    {

    ManualAddition();

    }

    private void button2_Click(object sender, EventArgs e)

    {

    listBox1.Items.Add("Devices count: " + objController.Devices.Count.ToString());

    }

    private void btnCheckUSB_Click(object sender, EventArgs e)

    {

    if (objController.Devices.Count > 0)

    {

    try

    {

    AsyncCallback acb = new AsyncCallback(CheckingUSB);

    arCheckUSB = objController.BeginAddDevice(acb, objController );

    }

    catch(Exception ex)

    {

    MessageBox.Show(ex.Message);

    }

    }

    }

    public void CheckingUSB(object state)

    {

    try

    {

    if (arCheckUSB == null)

    {

    MessageBox.Show("USB is not connected");return;

    }

    objController.EndReceiveConfiguration(arCheckUSB );

    arCheckUSB =
    null;

    }

    catch(Exception ex)

    {

    arCheckUSB =
    null;

    MessageBox.Show(ex.Message);

    }

    }

    private void btnRemoveDevice_Click(object sender, EventArgs e)

    {

     

    MessageBox.Show("Click OK, and then press the button on the device to remove." + System.Environment.NewLine + System.Environment.NewLine + "NOTE: Your USB dongle must be within 3 feet of the device you're trying to remove.");

    try

    {

    try

    {

    objDevice = objController.RemoveDevice();

    if (objController.Devices.GetType().ToString() == "ControlThink.ZWave.Devices.BinarySwitch")

    {

    objDevice.PollEnabled =
    true;

    objDevice.PollInterval = System.TimeSpan.FromMilliseconds(1000);

    objDevice.LevelChanged += new ControlThink.ZWave.Devices.ZWaveDevice.LevelChangedEventHandler(objDevice_LevelChanged);listBox1.Items.Add(objDevice.Name.ToString() + " " + objDevice.NodeID.ToString() + " " + objDevice.Level.ToString());

    }

    }

    catch (Exception ex)

    {

    MessageBox.Show(ex.Message);

    }

    }catch (Exception ex)

    {

    MessageBox.Show("Add device failed.");

    }

    }

    }

    }

     

     

    Filed under:
  • 09-27-2007 1:58 AM In reply to

    • sumit
    • Top 100 Contributor
    • Joined on 06-14-2007
    • Posts 8

    Re: zwave device command has timeout problem

     

Page 1 of 1 (2 items)