Esempio n. 1
0
        public static NodeDriver BuildWith(
            FieldGuid TypeId, FieldString Address, FieldBase64 Configuration, FieldString DriverName)
        {
            //build fields
            Dictionary <FieldIdentifier, FieldBase> mutableFields =
                new Dictionary <FieldIdentifier, FieldBase>();

            mutableFields.Add(new FieldIdentifier(m_TypeIdName), TypeId);
            mutableFields.Add(new FieldIdentifier(m_AddressName), Address);
            mutableFields.Add(new FieldIdentifier(m_RunningName), new FieldBool(false));
            mutableFields.Add(new FieldIdentifier(m_ConfigurationName), Configuration);
            mutableFields.Add(new FieldIdentifier(m_DriverNameName), DriverName);
            //Add Fields here: mutableFields.Add(new FieldIdentifier(m_CodeName), Code);

            //build children
            KeyedNodeCollection <NodeBase> mutableChildren =
                new KeyedNodeCollection <NodeBase>();
            //Add Children here: mutableChildren.Add(SomeChild);

            //build node
            NodeDriver Builder = new NodeDriver(
                new ReadOnlyDictionary <FieldIdentifier, FieldBase>(mutableFields),
                new ReadOnlyCollection <NodeBase>(mutableChildren));

            return(Builder);
        }
Esempio n. 2
0
        public void ScanOutputs(NodeDriver driver, NodeRuntimeApplication runtimeApplication)
        {
            // No outputs yet
            //foreach (var device in driver.NodeDeviceChildren.Items)
            //{

            //}
        }
Esempio n. 3
0
 public void ScanInputs(NodeDriver driver)
 {
     foreach (var device in driver.NodeDeviceChildren.Items)
     {
         kickOffBackgroundRequestIfNecessary(device);
         switch (device.TypeId.ToString())
         {
             case UserStatusMonitor.TYPE_ID:
                 NodeStringInput latestStatus = device.NodeStringInputChildren.Items[0];
                 var statuses = deviceState.GetUserStatusMonitor(device);
                 var oldStatus = latestStatus.Value;
                 if (statuses.Count > 0)
                 {
                     latestStatus.Value = statuses[0].Text;
                 }
                 else
                 {
                     latestStatus.Value = string.Empty;
                 }
                 NodeDiscreteInput statusChanged = device.NodeDiscreteInputChildren.Items[0];
                 statusChanged.Value = oldStatus != latestStatus.Value;
                 break;
         }
     }
 }
Esempio n. 4
0
        public static NodeDriver BuildWith(
            FieldGuid TypeId, FieldString Address, FieldBase64 Configuration, FieldString DriverName)
        {
            //build fields
            Dictionary<FieldIdentifier, FieldBase> mutableFields =
                new Dictionary<FieldIdentifier, FieldBase>();
            mutableFields.Add(new FieldIdentifier(m_TypeIdName), TypeId);
            mutableFields.Add(new FieldIdentifier(m_AddressName), Address);
            mutableFields.Add(new FieldIdentifier(m_RunningName), new FieldBool(false));
            mutableFields.Add(new FieldIdentifier(m_ConfigurationName), Configuration);
            mutableFields.Add(new FieldIdentifier(m_DriverNameName), DriverName);
            //Add Fields here: mutableFields.Add(new FieldIdentifier(m_CodeName), Code);

            //build children
            KeyedNodeCollection<NodeBase> mutableChildren =
                new KeyedNodeCollection<NodeBase>();
            //Add Children here: mutableChildren.Add(SomeChild);

            //build node
            NodeDriver Builder = new NodeDriver(
                new ReadOnlyDictionary<FieldIdentifier, FieldBase>(mutableFields),
                new ReadOnlyCollection<NodeBase>(mutableChildren));

            return Builder;
        }
Esempio n. 5
0
 public void ScanOutputs(NodeDriver driver, NodeRuntimeApplication runtimeApplication)
 {
 }
Esempio n. 6
0
        public void ScanInputs(NodeDriver driver)
        {
            if (this.directInput == null)
            {
                return;
            }

            foreach (var device in driver.NodeDeviceChildren)
            {
                switch (device.TypeId.ToString())
                {
                    case JoystickDevice.TYPE_ID:
                        scanJoystickInputs(device);
                        break;
                }
            }
        }
Esempio n. 7
0
 public void ScanOutputs(NodeDriver driver, NodeRuntimeApplication runtimeApplication)
 {
     foreach (var device in driver.NodeDeviceChildren.Items)
     {
         if (device.Address.ToString() != string.Empty)
         {
             switch(device.Code.ToString())
             {
                 case Phidget_InterfaceKit_004.CODE:
                 case Phidget_InterfaceKit_008.CODE:
                 case Phidget_InterfaceKit_488.CODE:
                 case Phidget_InterfaceKit_888.CODE:
                 case Phidget_InterfaceKit_0_16_16.CODE:
                     var ifKit = OpenInterfaceKit(device);
                     if (ifKit.Attached)
                     {
                         for (int i = 0; i < ifKit.outputs.Count; i++)
                         {
                             foreach (var output in device.NodeDiscreteOutputChildren.Items)
                             {
                                 if (Int32.Parse(output.Address.ToString()) == i)
                                 {
                                     try
                                     {
                                         ifKit.outputs[i] = output.GetValue(runtimeApplication);
                                     }
                                     catch
                                     {
                                         // FIXME - tie in to error reporting mechanism
                                     }
                                 }
                             }
                         }
                     }
                     break;
                 case Phidget_ServoMotor_1.CODE:
                 case Phidget_ServoMotor_4.CODE:
                 case Phidget_ServoMotor_8.CODE:
                     var mtrControl = OpenServo(device);
                     if (mtrControl.Attached)
                     {
                         for (int i = 0; i < mtrControl.servos.Count; i++)
                         {
                             foreach (var output in device.NodeAnalogOutputChildren.Items)
                             {
                                 if (Int32.Parse(output.Address.ToString()) == i)
                                 {
                                     try
                                     {
                                         mtrControl.servos[i].Position = Convert.ToDouble(output.GetValue(runtimeApplication));
                                     }
                                     catch
                                     {
                                         // FIXME - tie in to error reporting mechanism
                                     }
                                 }
                             }
                         }
                     }
                     break;
                 case Phidget_AdvancedServo.CODE:
                     var advServo = OpenAdvancedServo(device);
                     if (advServo.Attached)
                     {
                         for (int i = 0; i < advServo.servos.Count; i++)
                         {
                             var enable =
                                 (from o in device.NodeDiscreteOutputChildren.Items
                                  where Int32.Parse(o.Address.ToString()) == i
                                  select o).FirstOrDefault();
                             if (enable != null)
                             {
                                 try
                                 {
                                     advServo.servos[i].Engaged = enable.GetValue(runtimeApplication);
                                 }
                                 catch
                                 {
                                     // FIXME - tie in to error reporting mechanism
                                 }
                             }
                             var output =
                                 (from o in device.NodeAnalogOutputChildren.Items
                                  where Int32.Parse(o.Address.ToString()) == i
                                  select o).FirstOrDefault();
                             if (output != null)
                             {
                                 try
                                 {
                                     advServo.servos[i].Position = Convert.ToDouble(output.GetValue(runtimeApplication));
                                 }
                                 catch
                                 {
                                     // FIXME - tie in to error reporting mechanism
                                 }
                             }
                         }
                     }
                     break;
                 case Phidget_TextLCD_2x20.CODE:
                     var textLCD = OpenTextLCD(device);
                     if (textLCD.Attached)
                     {
                         for (int i = 0; i < textLCD.rows.Count; i++)
                         {
                             foreach (var output in device.NodeStringOutputChildren.Items)
                             {
                                 if (Int32.Parse(output.Address.ToString()) == i)
                                 {
                                     var text = output.GetValue(runtimeApplication);
                                     if (text.Length > textLCD.rows[i].MaximumLength)
                                     {
                                         text = text.Substring(0, textLCD.rows[i].MaximumLength);
                                     }
                                     try
                                     {
                                         textLCD.rows[i].DisplayString = text;
                                     }
                                     catch
                                     {
                                         // FIXME - tie in to error reporting mechanism
                                     }
                                 }
                             }
                         }
                     }
                     break;
             }
         }
     }
 }
Esempio n. 8
0
 public void ScanInputs(NodeDriver driver)
 {
     foreach (var device in driver.NodeDeviceChildren.Items)
     {
         if (device.Address.ToString() != string.Empty)
         {
             switch(device.Code.ToString())
             {
                 case Phidget_InterfaceKit_488.CODE:
                 case Phidget_InterfaceKit_888.CODE:
                 case Phidget_InterfaceKit_0_16_16.CODE:
                     var ifKit = OpenInterfaceKit(device);
                     if (ifKit.Attached)
                     {
                         for (int i = 0; i < ifKit.inputs.Count; i++)
                         {
                             foreach (var input in device.NodeDiscreteInputChildren.Items)
                             {
                                 if (Int32.Parse(input.Address.ToString()) == i)
                                 {
                                     input.Value = ifKit.inputs[i];
                                 }
                             }
                         }
                         for (int i = 0; i < ifKit.sensors.Count; i++)
                         {
                             foreach (var input in device.NodeAnalogInputChildren.Items)
                             {
                                 if (Int32.Parse(input.Address.ToString()) == i)
                                 {
                                     input.Value = ifKit.sensors[i].Value;
                                 }
                             }
                         }
                     }
                     break;
             }
         }
     }
 }