Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Reading Data from a GPS Sensor

  • Note that GPS sensor is directly attached to the USB of controller i.e (Raspberry Pi or Laptop or VM)
  • If there are multiple GPS sensors you plan to attach you can use SerialNumber create a unique protocol string i.e. phid://1 etc
Code Block
languagexml
titlePhidget Handler Thing Facet to Read GPS Sensor
linenumberstrue
<ThingFacet Name="PhidgetSimulatedFacetGPSPhidgetSensorFacet">
  <Integer	<String Name="SimulatedValueGPSOutput" Updateupdate="auto" KnownBy="PhidgetSimActionGPSPhidgetSensorAction" />
    <String Name="DeviceTypeSerialNumber" />
  	<String Name="SerialNumberDeviceType" />
  	<Action Name="PhidgetSimActionGPSPhidgetSensorAction" Documentation="ReturnsConnect integerto values from 1 - 100 in Random orderGPS sensor">
    	<Workflow Limit="1" Live="1" Timeout="-1">
      		<Task Namename="Main" Whilewhile="Truetrue">
        				<Event Namename="Argument" Asas="ActionArgument" />
        				<Invoke Namename="ReadValue" waitFor="Argument"
Get                       Post="phid://[%:Event.Argument.SerialNumber.Value:%]" SerialNumber="[%:Event.Argument.SerialNumber.Value:%]"
						DeviceType="[%:Event.Argument.DeviceType.Value:%]" Simulated="true"/>
        <Output Name="Result" As="ActionResult">      <!-- Optionally parse the string <Value>if desired -->
				<Output name="Result" as="ActionResult">
       <SimulatedValue>					<Value>
						<GPSOutput>[%:[%:@Output:%]Invoke.ReadValue.Message.Value:%]</SimulatedValue>
          GPSOutput>
					</Value>
        				</Output>
      			</Task>
    		</Workflow>
  	</Action>
</ThingFacet>

Controlling Servo Motor AngleDisplay Text on LCD Screen.

Code Block
languagexml
titlePhidget Handler Thing Facet to control Servo Motordisplay text on LCD Screen
linenumberstrue
<ThingFacet Name="PhidgetSimulatedFacetPhidgetTextLCDFacet">
	<String  <Integer Name="SimulatedValueDisplayString" UpdateKnownBy="autoLCDDisplayAction" KnownByDocumentation="PhidgetSimAction"/>This is a <Stringruntime Name=parameter"DeviceType" />
  	<String Name="SerialNumberDeviceType" />
  	<Action Name="PhidgetSimActionLCDDisplayAction"
		Documentation="ReturnsDisplay integerthe valuesstring fromto 1Phidget - 100 in Random orderText LCD">
    		<Workflow Limit="1" Live="1" Timeout="-1">
      			<Task Namename="Main" Whilewhile="Truetrue">
        				<Event Namename="ArgumentActionArgument" Asas="ActionArgument" />
				<Log Message="******Invoking Phidget Text     LCD"/>
				<Invoke Namename="ReadValueWriteToLCD" waitFor="ArgumentActionArgument"
Get="phid://" SerialNumber					Post="[%:Event.Argument.SensorURL.Value:%]" 
					DeviceType="[%:Event.Argument.SerialNumberDeviceType.Value:%]">
				 <Message Type="text" DeviceTypeValue="[%:Event.Argument.DeviceTypeDisplayString.Value:%]" Simulated="true/>
				 </Invoke>
				<Log Message="Invoked Phidget Text LCD"/>
				<Output name="Result" as="ActionResult">
					<Value>
						<DisplayString>[%:[%:@Output:%]Invoke.WriteToLCD.Message.Value:%]</DisplayString>
					</Value>
				</Output>
 <Output			</Task>
		</Workflow>
	</Action>
</ThingFacet>
<!-- Combine with Model -->
<ThingModel Name="Result" As="ActionResult">
          <Value>
 "PhidgetLCDScreenModel" Combines="PhidgetTextLCDFacet">
   <Sid Name="LCDScreenID"/>
</ThingModel>
<!-- Write Text for first time -->
<Query>
  <Save format="version,current">
    <PhidgetLCDScreenModel>
     <SimulatedValue>[%:[%:@Output:%]Invoke.ReadValue.Message.Value:%]</SimulatedValue> <SensorName>Rotation</SensorName>
      <DeviceType>PhidgetTextLCD</DeviceType>
      <DisplayString>Hello TQL!</Value>DisplayString>
    </PhidgetLCDScreenModel>
  </Save>
</Output>
      </Task>
    </Workflow>
  </Action>
</ThingFacet>Query>
<!-- Subsequent Writes can happen via Update Query -->
<Query>
 <Find format="version"> 
		<PhidgetLCDScreenModel>
			<LCDScreenID ne=""/>
		</PhidgetLCDScreenModel>
	</Find>
	<SetResponseData> 
		<key>Message.Value.Find.Result.PhidgetLCDScreenModel.DisplayString.Value</key>
		<value>Hello Again!!</value>
	</SetResponseData>
	<Update> 
		<from>Result</from>
		<Include>$Response.Message.Value.Find</Include>
	</Update>
</Query>
 

Driver Installation Steps

...