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); }
public void ScanOutputs(NodeDriver driver, NodeRuntimeApplication runtimeApplication) { // No outputs yet //foreach (var device in driver.NodeDeviceChildren.Items) //{ //} }
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; } } }
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; }
public void ScanOutputs(NodeDriver driver, NodeRuntimeApplication runtimeApplication) { }
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; } } }
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; } } } }
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; } } } }