topical media & game development

talk show tell print

actionscript-phidget-flex-PhidgetInterfaceKitExample.mx

actionscript-phidget-flex-PhidgetInterfaceKitExample.mx [swf] flex


  <?xml version="1.0" encoding="utf-8"?>
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="386" height="404" horizontalAlign="center" verticalAlign="middle">
  <mx:Script>
          <![CDATA[
                  import com.phidgets.PhidgetInterfaceKit;
                  import com.phidgets.events.*;
                  public var phid:com.phidgets.PhidgetInterfaceKit;
                          
                  public function connect():void{ 
                          phid = new PhidgetInterfaceKit();
                          
                          phid.addEventListener(PhidgetEvent.CONNECT,        onConnect);
                          phid.addEventListener(PhidgetEvent.DETACH,        onDetach);
                          phid.addEventListener(PhidgetEvent.ATTACH,        onAttach);
                          phid.addEventListener(PhidgetEvent.DISCONNECT, onDisconnect);
                          phid.addEventListener(PhidgetDataEvent.INPUT_CHANGE, onInputChange);
                          phid.addEventListener(PhidgetDataEvent.OUTPUT_CHANGE, onOutputChange);
                          phid.addEventListener(PhidgetDataEvent.SENSOR_CHANGE, onSensorChange);
                          
                          phid.open(addressText.text, int(portText.text), passwordText.text);
                  }
                  
                  public function setOutput(id:String):void {
                          switch(id)
                          {
                                  case "output0": phid.setOutputState(0, output0.selected); break;
                                  case "output1": phid.setOutputState(1, output1.selected); break;
                                  case "output2": phid.setOutputState(2, output2.selected); break;
                                  case "output3": phid.setOutputState(3, output3.selected); break;
                                  case "output4": phid.setOutputState(4, output4.selected); break;
                                  case "output5": phid.setOutputState(5, output5.selected); break;
                                  case "output6": phid.setOutputState(6, output6.selected); break;
                                  case "output7": phid.setOutputState(7, output7.selected); break;
                          }
                  }
                  
                  public function setRatiometric(val:Boolean):void{ 
                          phid.Ratiometric = val;
                  }
                  
                  private function onAttach(evt:PhidgetEvent):void{
                          statusText.text = "Attached";
                          phidgetNameText.text = phid.Name;
                          versionText.text = phid.Version.toString();
                          serialText.text = phid.serialNumber.toString();
                  }
                  private function onDetach(evt:PhidgetEvent):void{
                          statusText.text = "Detached";
                  }
                  private function onDisconnect(evt:PhidgetEvent):void{
                          connectedText.text = "Disconnected";
                  }
                  private function onConnect(evt:PhidgetEvent):void{
                          connectedText.text = "Connected";
                  }
                  private function onInputChange(evt:PhidgetDataEvent):void{
                          switch(evt.Index){
                                  case 0: input0.selected = Boolean(evt.Data); break;
                                  case 1: input1.selected = Boolean(evt.Data); break;
                                  case 2: input2.selected = Boolean(evt.Data); break;
                                  case 3: input3.selected = Boolean(evt.Data); break;
                                  case 4: input4.selected = Boolean(evt.Data); break;
                                  case 5: input5.selected = Boolean(evt.Data); break;
                                  case 6: input6.selected = Boolean(evt.Data); break;
                                  case 7: input7.selected = Boolean(evt.Data); break;
                          }
                  }
                  private function onOutputChange(evt:PhidgetDataEvent):void{
                          switch(evt.Index){
                                  case 0: output0.selected = Boolean(evt.Data); break;
                                  case 1: output1.selected = Boolean(evt.Data); break;
                                  case 2: output2.selected = Boolean(evt.Data); break;
                                  case 3: output3.selected = Boolean(evt.Data); break;
                                  case 4: output4.selected = Boolean(evt.Data); break;
                                  case 5: output5.selected = Boolean(evt.Data); break;
                                  case 6: output6.selected = Boolean(evt.Data); break;
                                  case 7: output7.selected = Boolean(evt.Data); break;
                          }
                  }
                  private function onSensorChange(evt:PhidgetDataEvent):void{
                          switch(evt.Index){
                                  case 0: sensor0.value = Number(evt.Data); break;
                                  case 1: sensor1.value = Number(evt.Data); break;
                                  case 2: sensor2.value = Number(evt.Data); break;
                                  case 3: sensor3.value = Number(evt.Data); break;
                                  case 4: sensor4.value = Number(evt.Data); break;
                                  case 5: sensor5.value = Number(evt.Data); break;
                                  case 6: sensor6.value = Number(evt.Data); break;
                                  case 7: sensor7.value = Number(evt.Data); break;
                          }
                  }
          ]]>
  </mx:Script>
          <mx:Button x="245" y="369" label="Connect" click="connect()"/>
          <mx:HSlider x="145" y="124" minimum="0" maximum="1000" width="229" id="sensor0"/>
          <mx:HSlider x="145" y="176" minimum="0" maximum="1000" width="229" id="sensor2"/>
          <mx:HSlider x="145" y="202" minimum="0" maximum="1000" width="229" id="sensor3"/>
          <mx:HSlider x="145" y="228" minimum="0" maximum="1000" width="229" id="sensor4"/>
          <mx:HSlider x="145" y="254" minimum="0" maximum="1000" width="229" id="sensor5"/>
          <mx:HSlider x="145" y="280" minimum="0" maximum="1000" width="229" id="sensor6"/>
          <mx:HSlider x="145" y="306" minimum="0" maximum="1000" width="229" id="sensor7"/>
          <mx:HSlider x="145" y="150" minimum="0" maximum="1000" width="229" id="sensor1"/>
          <mx:TextInput x="110" y="341" id="addressText" text="localhost" width="107"/>
          <mx:TextInput x="265" y="341" id="portText" width="60" text="5001"/>
          <mx:TextInput x="130" y="369" id="passwordText" width="107"/>
          <mx:Text x="48" y="343" text="Address:"/>
          <mx:Text x="225" y="343" text="Port:"/>
          <mx:Text x="61" y="371" text="Password:"/>
          <mx:Text x="205" y="10" text="Phidget Status:"/>
          <mx:Text x="10" y="10" text="Server Status:"/>
          <mx:Text x="319" y="10" id="statusText" text="Unknown"/>
          <mx:CheckBox x="23" y="124" id="input0"/>
          <mx:CheckBox x="23" y="150" id="input1"/>
          <mx:CheckBox x="23" y="176" id="input2"/>
          <mx:CheckBox x="23" y="202" id="input3"/>
          <mx:CheckBox x="23" y="228" id="input4"/>
          <mx:CheckBox x="23" y="254" id="input5"/>
          <mx:CheckBox x="23" y="280" id="input6"/>
          <mx:CheckBox x="23" y="306" id="input7"/>
          <mx:CheckBox x="86" y="124" id="output0" click="setOutput(output0.id)"/>
          <mx:CheckBox x="86" y="150" id="output1" click="setOutput(output1.id)"/>
          <mx:CheckBox x="86" y="176" id="output2" click="setOutput(output2.id)"/>
          <mx:CheckBox x="86" y="202" id="output3" click="setOutput(output3.id)"/>
          <mx:CheckBox x="86" y="228" id="output4" click="setOutput(output4.id)"/>
          <mx:CheckBox x="86" y="254" id="output5" click="setOutput(output5.id)"/>
          <mx:CheckBox x="86" y="280" id="output6" click="setOutput(output6.id)"/>
          <mx:CheckBox x="86" y="306" id="output7" click="setOutput(output7.id)"/>
          <mx:Text x="10" y="98" text="Inputs"/>
          <mx:Text x="69" y="98" text="Outputs"/>
          <mx:Text x="232" y="98" text="Sensors"/>
          <mx:Text x="124" y="10" text="Unknown" id="connectedText"/>
          <mx:Text x="10" y="54" text="Serial Number:"/>
          <mx:Text x="11" y="72" text="Version:"/>
          <mx:Text x="10" y="36" text="Phidget:"/>
          <mx:Text x="124" y="36" text="Unknown" id="phidgetNameText"/>
          <mx:Text x="124" y="54" text="Unknown" id="serialText"/>
          <mx:Text x="124" y="72" text="Unknown" id="versionText"/>
          <mx:CheckBox x="279" y="72" label="Ratiometric" click="setRatiometric(ratiometricCheckBox.selected)" id="ratiometricCheckBox"/>
          
  </mx:Application>
  


(C) Æliens 27/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.