Home

User Manual for PC104-based Compact

image

Contents

1. omnidirectional microphone with headphone amplifier Its dimensions measure 1 5 x 1 0 x 0 25 and it can detect frequencies from 20 20 000 Hz More information can be found online at http www soundprofessionals com cgi bin gold item SP USB MIC 1 Please see Figure 9 for an image Technical Report Number CSSE10 07 Figure 9 USB Microphone 6 AC Power Supply The AC Power Supply shown in Figure 10 below is manufactured by Sunny Computer Technology It has an input range of 100 240V and an output of 12V This is what we use in the lab to power the PC104s For more information please refer to http www sunny euro com HTML PRODUCTS POWERSPL SYS1183UP html online Technical Report Number CSSE10 07 IPX SWITCHING ADAPTER MODEL SYS1183 5012 PART NO SW 1241A5 RoHS INPUT 100 240V 1 6A MAX 50 60HZ 100 200VA OUTPUT 12V 4 17A REGULATED OUTPUT POWER 50W MAX PLUG 2 1X5 5MM Qu C CCA O i G080 105047255 MADE IN CHINA SUNNY rn np ei ii A sc A a S N Technical Report Number CSSE10 07 Figure 10 AC Power Supply 7 Power Input Connector To supply the PC104 with power the 12V AC power supply and the 12V battery are connected to the power input connector Here in the lab we solder wire onto the power input connector Note the power connector in Figure 11 below power connector ee a 17 Figure 11 Power Connector 8 Battery The battery shown in Figure 12
2. application software has not been configured Software configuration mostly concerns the creation of configuration files in the tt exe directory Software configuration is different depending on the role of the node in the environment whether it is the clusterhead a sensor the gateway the camera controller or another external agent To configure the software first identify the role of the node in the experiment The roles and software configuration are defined and described below But first let us talk about the network architecture of this particular sensor networking application A graphical representation of the network architecture is shown below in Figure 26 1 Network Architecture The network architecture is shown below in Figure 26 On the left side of the image you will notice the 802 11 Directed Diffusion network This is the network over which the sensor and gateway nodes communicate The diffusion network on the left is connected to the infrastructure network on the right to facilitate information retrieval and tasking of the sensor nodes Also any node on the right hand side of the graphic is termed an external agent External agents require the services provided by the gateway to retrieve information from the diffusion network Technical Report Number CSSE10 07 o K sensorO a System Control cluster head Gateway Video Capture 802 11 Diffusion Network 802 3 IP Network Figure 26 Network architecture of
3. below is used to power the PC104 when away from the lab and outputs 12V at 5 0 amp hr It is sealed and rechargeable For more information please refer to http www power sonic com site doc prod 86 pdf online Technical Report Number CSSE10 07 Technical Report Number CSSE10 07 Technical Report Number CSSE10 07 Figure 12 Power Sonic Battery 9 Sony EVI D30 Pan Tilt Zoom Camera with Serial Cable The camera controller tracks a moving target using the Sony EVI D30 Pan Tilt Zoom camera shown in Figure 13 The EVI D30 is a serial controlled RS232 camera with a total pan area of 200 100 to the left and 100 to the right of center and a total tilt area of 50 25 up and 25 down from center It has zoom capability and auto focus For more information visit http www axis com techsup cam servers ptz sony d30 htm online Also see http bssc sel sony com Professional docs manuals evid30commandlist1 21 pdf for more technical details from Sony Figure 13 Sony EVI D30 Pan Tilt Zoom Camera Technical Report Number CSSE10 07 Shown here in Figure 14 is the back side of the Sony EVI D30 Pan Tilt Zoom Camera Notice the two video output methods RCA and S Video The serial cable shown in Figure 15 connects to VISCA IN Figure 14 Reverse side of the Sony EVI D30 Pan Tilt Zoom Camera Shown below in Figure 15 is the serial communication cable used to connect the serial connector from the PC104 to the VISCA IN input
4. in their respective slots 3 Connect the power input connector wire to the Power Supply module Warning We advise testing the voltage levels before connecting any power to the PC104 Be sure the positive input wire is connected to the positive side of the input on the Power Supply Technical Report Number CSSE10 07 module You can plug the AC adapter into the power connector and test the ends of the wire before inserting them into the Power Supply module See Figure 18 below Figure 18 The top side of the Power Supply module with the power cord inserted and screwed in 4 Press one of the Press Fit Stack Through connectors onto the underside of the CPU module This is necessary because the next module the PCMCIA module is too thick to stack next You must connect this connector before connecting the PCMCIA module Technical Report Number CSSE10 07 5 Stack the PCMCIA module on the Press Fit Stack Through connector you just connected in the previous step You need to add double stacked gold spacers on the opposite side of the Press Fit Stack Through connector to support the other side of the PCMCIA module You should have something that looks as shown below in 6 Figure 19 gold spacer DORSE F Scns al ARA PARRA arama Aa ors tiago c da A press fit stack through connector added in step 4 Figure 19 An upside down image of the PC104 showing the press fit stack through connector adde
5. reply refers to those addresses to which the server is allowed to reply Be sure to set the subnet mask appropriately Note The format of ntp conf client is server IP address of NTP server restrict default ignore restrict 127 0 0 1 restrict 0 0 0 0 mask 0 0 0 0 nomodify notrap noquery driftfile var lib ntp drift logfile var log ntp log 4 While we are stillon this NTP stuff let us talk about the nifty little script we wrote that enables time synchronization to be forced every XX minutes where XX is user supplied You have probably already noticed the lines in etc rc d re local that enable you to configure this All you need to do is supply the IP address of the NTP server in our case it is the clusterhead and the time interval between synchronization attempts Be sure that the script tt scripts syncClock sc is in the directory tt After you are sure the script has been copied or moved to tt restart the node Each time the node powers on the script is automatically run 5 Type cd tt scripts If you now type Is you will see a few scripts that are used to perform target tracking experiments Those scripts are described now e calibrateMic sc is used to calibrate the microphone on sensors and the clusterhead e startgateway sc is used in the gateway to start the gateway It requires one argument a port number e startcamera sc is used in the camera controller to start the camera program It takes in an optional
6. the log programs are both external agents For an external agent to gain access to any information contained or provided by the diffusion network it must rely on the services provided by the gateway node A simple API has been implemented for an external agent to request data from the diffusion network through the gateway Since an external agent is not directly connected to the diffusion network it must request subscriptions be sent on its behalf The gateway takes care of this function The three provided functions are prototyped as follows int GATEWAY_UNSUBSCRIBE const int sock const vector lt DataType gt vec int GATEWAY SUBSCRIBE const vector lt DataType gt vec int RECEIVE FROM GATEWAY const int sock GlobalData g As an external agent just follow these steps for requesting and receiving data from the diffusion network 1 Include the header file ext Agnts A PI externalA gentAPI h in the source file for external agents Technical Report Number CSSE10 07 The header file gives the programmer access to the function GATEWAY SUBSCRIBE The function returns an integer corresponding to a UDP socket through which the gateway will respond with data packets Note Be sure to have gatewayinfo txt in the current directory of each external agent This file gives the IP address and port of the gateway process To use GATEWAY_SUBSCRIBE you must first fill up a vector of subscriptions with the DataTypes for which you wish to send a reques
7. the target tracking application 2 Description of Roles There are several different roles of nodes in this network architecture They are as follows a Clusterhead Role The role of the clusterhead is to gather a CPA closest point of approach time through sensing sound gather the CPA times of its neighbors run the Enhanced CPA algorithm and produce target location and speed information 1 config txt is used by the directed diffusion protocol to determine the network layout It is organized line by line Each neighbor s IP address port and simulated link quality should be on its own line Note We always use 100 as the link quality The format of config txt is as follows Technical Report Number CSSE10 07 2 lt IP address of neighbor gt lt port gt lt link quality gt lt IP address of neighbor gt lt port gt lt link quality gt position txt is used by the node to determine its current GPS location Notice that there is a blank space between Lat and lt Jatitude gt and between Long and lt Jongitude gt Any program reading this file should take this into consideration The format of position txt is as follows Lat lt latitude gt Long lt longitude gt sensor txt is an output file of the calibrate program It provides a way for the target tracking application to filter out background noise in the deployment environment Simply run the calibrate program directly or use the script provided
8. these steps Note If you used method 1 in the previous section to install Slax to the CFC you may be able to skip these steps 1 Insert the supplied USB flash drive into a free USB port Mount it to the file system by typing mount t vfat dev sdal mnt sdal Type cd mnt sdal to navigate to the USB flash drive Copy the target tracking application to root s home directory on the PC104 by typing cp tt That is cp tt without the ending period Type cd to get back to root s home directory Unmount the USB flash drive by typing umount mnt sdal You can now safely remove the USB flash drive after umount returns Navigate to the directed diffusion 3 2 0 folder in the diffusion directory by typing cd tt diffusion 3 2 0 If it is empty you should copy the contents of tt diffusion 3 2 0 fresh to tt diffusion 3 2 0 Do that by typing cp r tt diffusion 3 2 0 fresh tt diffusion 3 2 0 Now type cd tt diffusion 3 2 0 if you are not already in that directory In this step you will compile diffusion First you must configure the compilation by typing configure with ethernet After it is done type make After Technical Report Number CSSE10 07 this process is complete tt exe will contain the executable filter core and two phase pull Note We have recently run into problems with the newer version of diffusion version 3 2 0 not compiling ON the PCIO4 Instead we have had to perform this step on another machine
9. CMCIA LAN card we use is a 2 4 GHz radio which supports the four IEEE 802 11 High Speed compliant speeds 11Mb s 5 5 Mb s 2 Mb s and 1 Mb s within the IEEE 802 11 Standard for Wireless LANs Technical Report Number CSSE10 07 EST es teRBE TES wit Orinoco WIRELESS NETWORKS Figure 5 Orinoco Gold Wireless PCMCIA LAN Card 2 Lucent External Antenna Shown in Figure 6 is a 2 4 2 5 Ghz omnidirectional external antenna used to boost the wireless signal with a 5dBi gain and a 60 cable Technical Report Number CSSE10 07 Figure 6 Omnidirectional External Antenna 3 Compact Flash Card A standard type I compact flash card is shown in Figure 7 Technical Report Number CSSE10 07 _ Transcend Com pactFlash ULTRA Industrial Figure 7 Type I Compact Flash Card 4 Memory RAM The RAM used is a 256MB 144 pin Synchronous Dynamic RAM high density memory module at 133 Mhz Its technical specifications can be found at http www transcendusa com Support DLCenter Datasheet TS32MSS64V6G_6755 pdf Please see Figure 8 for an image Technical Report Number CSSE10 07 a Ba a EF RANA RAS VAS n e wo MEE bby E AAA 3 PEPRIERERERERESAOO ESP ETE S Em 19 nam ma SII wad a 264 Figure 8 256MB 144 pin Synchronous Dynamic RAM High Density Memory Module 5 Microphone This plastic USB microphone manufactured by Sound Professionals is a mono high sensitivity
10. IA Module The PCMCIA module Figure 2 PCM 3115C is manufactured by Aaeon It is a 2 slot PCMCIA module which supports two Type I II cards or one Type III card It complies with PCMCIA v2 1 and JEIDA v4 2 It has a 16 bit data bus and a busy status LED It requires 5V for operation More information can be found online at http www tri m com products aaeon pem31 15c html Technical Report Number CSSE10 07 Figure 2 PC104 PCMCIA module 3 Power Supply Module The Power Supply module Figure 3 PFM PI3DW2 is manufactured by Aaeon It has an input range of 7V to 30V and an output of 5V and 12V It is used to intake 12V from the AC power supply or battery and convert it into the 5V used by the PCMCIA and CPU modules Technical Report Number CSSE10 07 Figure 3 PC104 Power Supply module 4 Press Fit Stack Through Connector This connector part number PC104 C104 PS1 shown in Figure 4 allows us to continue the bus from one PC104 module to another module if the modules are too thick The connector is manufactured by Emulation Technology Inc and the part number is PC104 C104 PS1 More information can be found online at http www emulation com 173 pc104 cfm Technical Report Number CSSE10 07 Figure 4 PC104 Press Fit Stack Through Connector B Other Hardware Items The rest of the hardware items described are more commonplace items 1 Orinoco Wireless Card Shown in Figure 5 is the Orinoco Gold wireless P
11. Technical Report Number CSSE10 07 User Manual for PC104 based Compact Wireless Sensor Nodes Brandon Maharrey maharbk O auburn edu Alvin Lim limalvi auburn edu Qing Yang yangqin auburn edu Computer Science amp Software Engineering Shelby Center for Engineering Technology Auburn University Auburn AL 36849 I Overview This manual describes the hardware of the PC104 based compact wireless sensor node and the target tracking application and related software II Hardware amp Technical Specifications A PC104 Components In the current version of the PC104 based target tracking application we use three PC104 compliant modules the main CPU module the PCMCIA module and the Power Supply module the details of which are listed below 1 CPU Module The CPU module Figure 1 PFM 550S is manufactured by Aaeon It has a 533MHz VIA Mark processor and has features such as 10 100Base TX Fast Ethernet port one RS 232 port and one RS 232 485 port four USB 1 1 ports aSDRAM SODIMM socket for up to 512 megabytes of RAM and supports type I compact flash cards It supports 36 bit TL amp 18 36 bit dual LVDS LCD panel has a watchdog timer and fully supports ISA It is also fanless with an operating temperature of 0 to 60 degrees Celsius It requires 5V for operation More information can be found online at http www tri m com products aaeon pfm550s html Technical Report Number CSSE10 07 Figure 1 PC104 CPU module 2 PCMC
12. Type cd etc re d Type chmod 744 re sshd Type chmod 744 ntpd This will enable the SSH and NTP daemons We have altered etc rc d rc local in the Slax 6 0 7 image to automate the configuration process upon powering on the PC104 As you may or may not know the script etc rc d rc local is run each and every time the PC104 is powered on To configure your own options type vi re local and follow the instructions to configure different sensor nodes Type cd etc Edit ntp conf server in the clusterhead to give it the appropriate settings by typing vi ntp conf server Rename ntp conf server to ntp conf in the NTP server to use it as the NTP daemon s settings Rename it by typing mv ntp conf server ntp conf You can also edit ntp conf client in the NTP clients to give it the appropriate settings by typing vi ntp conf client Rename ntp conf client to ntp conf to use it as ntpdate s settings Do that by typing mv ntp conf client ntp conf The settings you changed in either ntp conf client or ntp conf server and rc local will now be applied when the system restarts Note The format of ntp conf server is server 127 127 1 0 prefer Technical Report Number CSSE10 07 fudge 127 127 1 0 stratum 10 driftfile var lib ntp drift logfile var log ntp log broadcastdelay 0 008 restrict 127 0 0 1 restrict subnet of addresses to which to reply mask subnet mask nomodify notrap On the last line starting restrict the field subnet of addresses to which to
13. all DIFF SENDO with your information to send it out to the network 2 Adding a Sensor Capability by Appending to Predefined Key Words If the sensor network s capabilities have grown to such an extent that all of the key words have been used you can append to the list of key words and do a little more programming to add more key words to DS Let us say you want to add three new predefined key words Assume the key words you want to add are SOUND1 SOUND2 and SOUND3 Follow the following steps 1 In dynServExt h create a typedef struct which corresponds to the three key words In dynServExt h add SOUND1 SOUND2 and SOUND3 to the DataType enumeration list 3 In dynServExt h add the three new structure names to the union structure inside the GlobalData structure 4 Near the bottom of dynServExt h add three new function prototypes to the list 5 In dynServ h create three new thread IDs 6 In dynServ h create counters for keeping track of the number of subscriptions for each of the new key words 7 In dynServ h create three new boolean variables to keep up with the status of running threads Technical Report Number CSSE10 07 8 In the constructor in dynServ cc set the initial values for the counters created in step 6 to zero and the boolean flags we creating in step 77 to false 9 Also in this constructor set the thread IDs to zero 10 At the bottom of dynServ cc add stubs corresponding to the newl
14. and copy diffusion 3 2 0 to tt manually Also there can be no spaces along any path to tt diffusion 3 2 0 for diffusion to compile properly Next we must compile the EVILib library code for the camera controller software to compile properly Type cd tt ext Agnts camera camlibsrc to get to the directory where the camera library s source files are kept Type make clean Type make This will compile the library required for use by the camera controller B Compiling the Application Code Now it is time to compile the target tracking application external agent code and dynamic services 1 Type cd tt Type make This recursively checks all sub directories that have compilable code in them for a Makefile and runs that directory s Makefile The executable code dynServ camera calibrate and log produced during this process can be found in tt exe Note If you are compiling this code ON the PC104 using Slax 6 0 7 you may need to alter the camera cc and camera_reset cc code if you run into errors For some reason the file system on Slax 6 0 7 has an issue with capitalization All the target tracking executable code has now been produced Type cd tt exe and then type Is to view the executable files There are a few more steps to ready the PC104 for an actual experiment When a clean install of the operating system is done SSH and NTP are initially unavailable You must follow these steps to ready the SSH and NTP daemons 1 2
15. argument that determines how many camera iterations to perform The default is 1000 This number should probably be smaller e startclusterhead sc is used to start the clusterhead It requires one argument a port number e startsensor sc is used to start all other sensors excluding the clusterhead It requires one argument a port number e stopall sc is used to stop all the executable programs that may be running concerning the target tracking application including filter_core two_phase_pull dynServ gateway camera and log e maximizemicvolume sc is used to maximize the microphone s volume on sensor nodes and the clusterhead Be sure if you enable it to run in ete re d re local that you copy it to tt 6 To use the scripts copy the scripts you need to the tt directory This ensures that useful scripts are where you need them at all times As an example say you have just followed Technical Report Number CSSE10 07 all of these instructions for the clusterhead To successfully run the clusterhead you need startclusterhead sc calibrateMic sc maximizemicmolume sc and stopall sc Therefore individually copy them to their parent directory by typing cd tt scripts Type cp startclusterhead sc Do this for each of the other scripts that you need 7 Repeat these steps for the remaining sensors C Software Configuration At this point the environment is configured and all application software has been installed however the
16. connection on the reverse side of the Sony EVI D30 Pan Tilt Zoom Camera Technical Report Number CSSE10 07 Figure 15 Serial Cable 10 Direct Connect Ethernet Cable The use of a direct connect Ethernet cable is required to connect the camera controller to the gateway 11 Logitech Webcam Technical Report Number CSSE10 07 Another type of pan tilt zoom camera shown in Figure 16 is the Logitech QuickCam Orbit AF It is a 2 megapixel webcam with an autofocus lens system with HD video capture It is also USB 2 0 certified More information can be found online at http www Jogitech com index cfm webcam communications webcams devices 3480 amp cl us en Figure 16 Logitech QuickCam C How To Put All The Pieces Together 1 Required Tools Technical Report Number CSSE10 07 e Small screwdrivers one flat head and one Phillips head e Voltmeter J Cables gold spacers nuts and screws provided with PC104 2 Assembly Instructions To put together a PC104 out of the box follow these steps 1 Remove all of the components from their respective boxes 2 Connect the memory RAM and the compact flash card to the CPU module as shown below in Figure 17 ALLALARI WNVHAS CELIA INISE TR gure sale af a fa H tattur a i vi ag sou O8ZO BLSZSZT jeuysnpuy g9 vam USP Jpeduoo TILTIITITITIT Figure 17 The underside of the CPU module with the RAM and CFC inserted
17. d in step 4 gold spacers and the assembly of the CPU and PCMCIA modules 7 Stack the Power Supply module onto the current assembly Tighten a nut around the end of each of the gold spacers jutting out from the bottom of the Power Supply module Pictures of the assembly can be seen from the bottom and from the top in Technical Report Number CSSE10 07 8 Figure 20 and 9 Figure 21 respectively Technical Report Number CSSE10 07 Figure 20 This is an image of the PC104 as viewed from the bottom Figure 21 This is the picture if viewed from the top 10 The last step involves looking over the CPU module s reference manual 11 Figure 22 to determine where the various connectors go A representative image of the CPU module s reference manual for various connectors is shown We currently use CN3 for Ethernet CN4 for serial I O CN7 for USB CN15 for the keyboard we do not use the mouse and CN16 for VGA video Technical Report Number CSSE10 07 Figure 22 Excerpt from the CPU module s reference manual Technical Report Number CSSE10 07 12 A completed PC104 assembly including connectors is shown in 13 Figure 23 and a completed assembly inside its protective enclosure can be seen in Figure 24 below A picture detailing the PC104 cable interface and showing the microphone s position can be seen in Figure 25 Figure 23 PC104 assembly Technical Report Number CSSE10 07 Figure 24 PC104 Inside Protectiv
18. e Casing Technical Report Number CSSE10 07 Figure 25 PC104 Casing Detail View II Operating System A Installing the Operating System The Linux based Slax operating system is our OS of choice since it is easily configurable 1 How to Install Slax option 1 the easiest by far Note It is recommended you use Fedora 10 as that is the only OS on which we have tested this option Note We used a Fedora 10 virtual machine running on a Windows 7 host To install Slax 6 0 7 to a compact flash card CFC you must 1 Insert the CFC into a USB Compact Flash Card Reader and insert the reader into a free USB port on your computer Technical Report Number CSSE10 07 2 Copy the boot slax and slaxchanges directories onto the CFC cd to the boot directory on the CFC 4 You will now run the script liloinst sh as root which makes the CFC bootable You can also edit liloinst sh to include other Slax boot options One we include is copy2ram which copies the entire operating system into RAM to increase access speed To see how this is done open liloinst sh by typing vi liloinst sh from your current location Near the bottom of the file on the line append ramdisk size 6666 we inserted copy2ram like this append ramdisk size 6666 changes slaxchanges copy2ram You can type vi slax cfg for a few more boot options to insert like copy2ram Also maybe more can be found on Slax org 5 Safely remove the USB CFC Reader from the USB
19. file on the line append ramdisk size 6666 e we inserted copy2ram like this append ramdisk size 6666 changes slaxchanges copy2ram You can type vi slax cfg for a few more boot options to insert like copy2ram Also maybe more can be found on Slax org After editing liloinst sh return to the command line and type liloinst sh Just press enter when it tells you to do so until it is finished The CFC should now be bootable Type poweroff to power off the PC104 You will get to a point in the power off process where the PC104 complains this code should never get here This is normal We have not found a fix for the problem We believe that more advanced hardware may be required to power off the PC104 completely through software Note You may need to change the execution flag of liloinst sh by typing chmod 744 liloinst sh Remove the power cord after the PC104 powers off Remove the USB CDROM device from the USB port Plug in the power cord Edit the bios settings to boot from HDD 0 Save and exit The PC104 reboots itself The PC104 will boot to a log in screen Log in with user name root and password toor At this point the PC104 contains a clean install of the Slax operating system without any additional software or user space applications except NTP IV Compiling and Running Software A Compiling Directed Diffusion amp EVILib Libraries To compile the Directed Diffusion and camera controller EVILib libraries follow
20. g this data This is where DS comes in handy Located in dynServ dynServ cc are stubs which a sensor network programmer can implement to do the job of producing data These are merely the starting points of the threads that DS will create once an interest for a data type is received So when the sensor receives an interest from the diffusion network for type MIC1 DS will increment a counter corresponding to the number of subscriptions for MIC1 DS s main thread checks these counters every time an interest or disinterest is received to appropriately start up or cancel threads Once the counter corresponding to MIC1 is greater than zero DS starts the thread corresponding to the production of MICI data Now that the thread is running corresponding to the interest for MIC1 how do you actually send information onto the diffusion network As an example of how to send information onto the diffusion network look into targettracking ttMicl cc Notice the variable declaration near the beginning of the file GlobalData mic 1 struct This is the structure this thread will send out onto the network Notice around line 35 when we start to fill this structure It is important to fill in the type field because this is how the gateway will identify different packet types Then you will fill in the structure with your own information Next you will notice DIFF SEND around line 55 It returns a negative number on failure and a non negative number on success Simply c
21. ice the line handle h myDr_ gt subscribe amp attrs mr_ in the preceding function The variable mr_ is defined to be the pointer to the callback function associated with this subscription In other words if the diffusion network passes to this node a packet with data type MICI the diffusion routing core should pass the incoming packet to this function mr_ As an example see TargetAnalysis cc D Compiling Other Directed Diffusion Applications Diffusion applications are a little difficult to compile because of the complexity of directed diffusion This is why the original authors of the diffusion code delivered with it a special configuration file Our lab has slightly altered it to make the diffusion application compilation process easier and faster The file diffAppConfig mk can be found in tt diffusion Whenever you need to compile a diffusion application simply copy this file to the folder of the source code of your diffusion application You will then be responsible for editing the line beginning srcdir near the top of the file to point to the relative location of the diffusion library files For an example of how to use diffAppConfig mk to aid in compiling your own directed diffusion code see diffA ppConfig mk and Makefile both located in tt dynServ VI External Agents Any node not directly connected to the directed diffusion network is assumed to be playing the role of an external agent For instance the camera controller and
22. in tt scripts and follow the on screen directions When we calibrate sensor nodes in the lab and during field experiments we use a target threshold of 80 85 and a target recording interval of five seconds Be sure to write the output file before closing the calibrate program Note You should not edit sensor txt directly unless you are very sure you know what you are doing You may manually adjust the first number in the file depending on the results of your target tracking experiment Any sensor not triggered during a run of the experiment should probably have its value LOWERED slightly Any sensor triggered prematurely should have its value RAISED slightly A lower threshold means greater sensitivity to soft sounds and therefore more false positives services txt is used by dynServ to determine which data types the current node is able to produce The file is organized line by line and should include keywords from the list of legal keywords In the clusterhead both VISUAL1 and MIC1 should be included on different lines b Sensor Role Sensor nodes sense CPA time through the use of microphones and relay this information to the clusterhead 1 Za 3 4 config txt should be set up using the same method as the clusterhead position txt should be set up using the same method as the clusterhead sensor txt should be set up using the same method as the clusterhead services txt should be set up using the same method as the clusterhead excep
23. k and not an external agent 1 config txt should be set up using the same method as the clusterhead Note In the gateway only the clusterhead is its neighbor D Running the Application At this point you should have the environment set up and the application software configured and ready to run an experiment To run the current version of the target tracking software we remotely log in to the different machines Usually we use the clusterhead as the base of operations From the clusterhead we are able to communicate with all of the other sensors the gateway and the camera controller We use different terminals on the same sensor node to control other remote sensors If you are running Slax you can press Ctrl Fi to change to terminal i where i is between 1 and 6 inclusive Assume all of the sensors SSH daemons have been properly configured For demonstration purposes to show you how we run an experiment assume you have logged in to the clusterhead locally e Press Ctrl F2 This will take you to terminal 2 You must now log in e After you log in type ssh lt IP address of node gt If this is the first time you have tried to SSH to this IP address you will be asked to accept that node s public key You should accept the public key by typing yes e Then log on to each different IP address in a different terminal By default when the operating system starts up terminal 1 Ctrl F1 is selected We usually log in to sensor 1 in te
24. l know if it can or can not provide the requested data type corresponding to the received interest type When DS receives an interest from the diffusion network for which there is a corresponding entry in services txt DS starts a thread which will begin producing data DS is also responsible for sending out data to the diffusion network When a thread has data it wishes to send out onto the diffusion network it simply calls DIFF SENDO B Adding a Sensor Capability 1 Adding a Sensor Capability Using Predefined Key Words To add a sensor capability you must first be sure that all of the predefined key words are not all used If they are not all used select one which is most appropriate to your needs I will use as an example a regular sensor in our target tracking application In our target tracking application we use two key words MIC1 and VISUAL1 MIC1 corresponds to CPA data and VISUAL1 corresponds to data which the camera uses to track the moving target For a regular sensor not Technical Report Number CSSE10 07 the clusterhead only MIC1 is used Thus services txt on a sensor node would include on a line by itself the key word MIC1 This indicates to DS that this sensor has the capability of producing data with the label MIC1 Note that these key words are global This means that two different sensors can not use the same key word and expect the network to interpret them differently Next we must implement the code for producin
25. lash card CFC you must 1 Remove the power cord from the PC104 2 Ensure the CFC and the RAM is in the correct slots on the underside of the PC104 CPU module 3 Insert the supplied USB CDROM into a USB CDROM device and insert the USB CDROM device into a free USB port on the PC104 4 Insert the power cord Edit the bios settings of the PC104 to boot from USB CDROM Save and exit The PC104 reboots itself It should now boot from USB CDROM Boot in text mode as the GUI has been removed Select text mode from the menu 6 Copy the two directories boot and slax from the supplied CDROM to mnt hdcl the CFC The boot and slax directories should be located under mnt live mnt sr0 Type cd mnt live mnt sr0 to enter the directory where the boot and slax directories are located Type cp r boot mnt hdcl to copy the boot directory to mnt hdcl the CFC Type cp r slax mnt hdcl to copy the slax directory to mnt hdcl the CFC n Technical Report Number CSSE10 07 T 8 10 11 12 13 14 Type cd mnt hdc1 boot to enter the boot directory on the CFC You will now run the script liloinst sh located in mnt hdc1 boot which makes the CFC bootable You can also edit liloinst sh to include other Slax boot options One we include is copy2ram which copies the entire operating system into RAM to increase access speed To see how this is done open liloinst sh by typing vi liloinst sh from your current location Near the bottom of the
26. port of your computer 6 Remove the CFC from the CFC Reader and insert the CFC into the CFC slot on the underside of the PC104 s CPU module 7 Power up the PC104 The system should now boot to a log in screen 9 Import note to remember The Slax operating system has a neat feature that smoothes development Alongside the boot and slax directories is a directory named slaxchanges If you take a look into liloinst sh you will see where you can give the changes directory another name We use the default slaxchanges for simplicity Inside slaxchanges is a changes folder This basically mirrors Slax s file system Anything you put into this folder will show up in the file system when you boot the PC104 If you assume this changes folder is the root directory of the file system in Slax you can add any directory hierarchy in this folder you wish Suppose for instance you want to include the file idosomethingimportant txt in the etc folder of Slax Simply create the directory etc in changes and copy and paste idosomethingimportant txt into this newly created etc folder As another example assume you want to include a bunch of files in a directory under root s home directory Simply create root anotherDirectory under changes and copy and paste your files there Once you boot Slax the files will appear in the correct place 2 How to Install Slax option 2 more difficult and time consuming To install Slax 6 0 7 to a compact f
27. rected diffusion network 4 In another terminal corresponding to the camera controller type startcamera sc optional number of camera iterations to undertake Starting the camera causes an interest message for VISUALI to be sent to the gateway The gateway will then send out INTEREST messages to the directed diffusion network 5 Cycle through terminals 1 through 6 starting each node type by pressing lt enter gt in each terminal This starts the experiment Now the experiment should be ready to run If you take a look at each of the clusterhead and sensor terminals they should have a statement saying Waiting for target This means the clusterhead and the sensors are ready to detect a moving target When the target appears the application displays Target appears followed by more calculations on the clusterhead if all of the sensors actually detected something After all of the sensors have detected the target they will record for five seconds and relay CPA information to the clusterhead The clusterhead will perform calculations on this information to determine position velocity and direction of travel If the clusterhead receives data on which its target tracking algorithm can perform its calculations the clusterhead will send out a data packet to the camera controller through the gateway The gateway will then forward the data to the camera controller Now the camera should pan to view the target or output to the sc
28. reen any conditions under which it cannot track the target When you are ready to stop the application cycle through Fl through F6 again typing stopall sc at each of the terminals This will kill all of the executables associated with the target tracking application V Dynamic Services Now that you have completed a run of the experiment what if you wanted to write your own sensor networking application over directed diffusion Note The camera s optional parameter defaults to 1000 Technical Report Number CSSE10 07 A Introduction to Dynamic Services Dynamic Services DS is an application which runs over the standard diffusion network The services DS provides are very useful for extending the capabilities of a sensor node in a sensor network Within DS is programmed the logic to automatically handle interests DS is pre programmed with 15 key words as follows SEIS1 SEIS2 SEIS3 INFRAI INFRA2 INFRA3 MIC1 MIC2 9 MIC3 10 VISUALI 11 VISUAL2 12 VISUAL3 O NS A D 13 SOUND 14 SOUND2 15 SOUND3 When DS is started it first checks services txt to determine which types of sensor data the current sensor node can provide DS expects all or a subset of the key words defined above As DS reads entries from services txt it sets up local scope subscriptions for interests matching the entry read from services txt This is so that when the diffusion core receives an interest from the diffusion network the node wil
29. rminal 2 sensor 2 in terminal 3 sensor 3 in terminal 4 the gateway in terminal 5 and the camera controller in terminal 6 Be sure your current working directory on each sensor is tt 1 This section assumes you are already logged in at the clusterhead and that you already have all other sensors the gateway and camera controller in the other terminals F2 Technical Report Number CSSE10 07 through F6 At the clusterhead terminal type startclusterhead sc lt port as it is configured in its neighbor s config txt files gt Note As a convention in our lab if we assign a PC104 the IP address 131 204 152 138 then the port number we assign directed diffusion is 10138 Also if the scripts are not available copy them from scripts to the current directory 2 In the other terminals corresponding to sensors 1 3 type startsensor sc lt port as it is configured in its neighbor s config txt files gt Note It is important to remember that dynServ is more of a middleware solution to the directed diffusion programming paradigm After you ve started the clusterhead and sensors they will not actually be performing any calculations until they receive an INTEREST message from an external agent any node not located on the diffusion network 3 In another terminal corresponding to the gateway type startgateway sc lt port as it is configured in its neighbor s config txt files gt This readies the gateway for forwarding information to and from the di
30. s str2DataType and convertToStrChr in gatewayDefs cc Add more cases to the switch statements corresponding to SOUNDI SOUND2 and SOUNDS C Subscribing to Data in a Thread You will notice in dynServExt h that the stubs the thread starting points have the argument void dr Also notice that we pass the variable dr to the constructor in ttVisuall cc This is to give threads access to the underlying diffusion routing core contained inside dynServ cc Notice that the class TargetAnalysis has its own version of dr named myDr_ which can be found in Target Analysis h In the code that you will write just assign myDr_ the value of dr or just use dr directly You can see an example by looking in the TargetAnalysis constructor in Target Analysis cc You will use myDr_ inside threads to make subscriptions Here s the function for subscribing for MIC1 from the clusterhead Target Analysis cc handle TargetAnalysis setupSubscription char type 5 MICI NRAttrVec attrs attrs push_back NRClassAttr make NRAttribute IS NRAttribute INTEREST CLASS attrs push_back TaskNameAttr make NRAttribute IS type handle h myDr_ gt subscribe amp attrs mr_ if h lt 0 Technical Report Number CSSE10 07 cout lt lt TargAnalysis setupSubscription failed for type lt lt type lt lt endl else cout lt lt TargAnalysis setupSubscription succeeded for type lt lt type lt lt endl return h Not
31. t that only MIC1 should be included c External Agent Role External agents drive the network When you start a sensor using startsensor sc or startclusterhead sc you are in actuality starting the dynServ process dynServ does nothing there are no threads running until it receives an interest from the network Therefore when an external agent sends an interest to the gateway those interests cause dynServ to start threads corresponding to this interest 1 gatewayinfo txt is required of all external agents and contains the IP address of the gateway on the first line and the port on which the gateway is listening for incoming UDP Technical Report Number CSSE10 07 packets on the second line Note The port number should always be 8899 for that is the port number on which the gateway listens d Camera Controller Role The camera controller program is responsible for controlling the pan of a camera once it receives target information from the clusterhead 1 cameraPosition txt lets the camera controller get its current GPS position and must follow the same pattern as position txt as described in the clusterhead above 2 Note The camera controller is an external agent and therefore should also contain all files required by external agents e Gateway Role The gateway s job is the facilitate information passing from the directed diffusion network to the IP network The gateway is considered to be on the directed diffusion networ
32. t to the gateway Suppose an external agent wanted data corresponding to interest types VISUAL1 AND MIC1 The sample request to the gateway is given as follows vector lt DataType gt vectorOfSubscriptions vectorOfSubscriptions push back VISUALI vectorOfSubscriptions push_back MIC1 if sock GATEWAY SUBSCRIBE amp vectorOfSubscriptions lt 0 perror GATEWAY SUBSCRIBE failed To receive information from the gateway use the function RECEIVE_FROM_GATEWAY as given below GlobalData pkt if RECEIVE FROM GATEWAY sock amp pkt lt 0 perror RECEIVE_FROM_GATEWAY failed This is a blocking call so the external agent will wait here until it receives a data packet from the gateway As an example see extAgnts log log cc To gracefully unsubscribe from your previous subscriptions to the gateway use GATEWAY UNSUBSCRIBE as shown below if GATEWAY UNSUBSCRIBE sock amp vectorOfSubscriptions lt 0 perror CGATEWAY UNSUBSCRIBE failed GATEWAY UNSUBSCRIBE should be called with the socket which was returned with GATEWAY SUBSCRIBE 2 When you are ready to compile the external agent code which includes the header file ext Agnts A Pl externalAgentAPI h you must link in the actual code which implements the function prototypes listed in externalAgentAPI h See ext Agnts log Makefile to see how to prepare your own Makefile
33. y created key words 11 In dynServ cc find the function named dynServ recv In this function add more if else if statements to change the counters of the corresponding key words for the case for the NRAttribute INTEREST CLASS and NR Attribute DISINTEREST CLASS 12 In dynServ cc find the function named dynServ run In this function add more if data type subs gt 0 to the end to take care of starting the appropriate threads once subscriptions are received This version of the target tracking application incorporates a method for external agents those machines not directly connected to the diffusion network to gain access to data packets of a particular data type The gateway application has been totally re written to make it easier for external agents to request data from the diffusion network An external agent can submit a request to the gateway and the gateway will forward this request to the rest of the diffusion network The gateway keeps track of the external agents IP address port and requested data type When the gateway receives a data type from the diffusion network for which an external agent has previously sent a request the gateway simply forwards the data packet to the requesting external agent This being said the gateway needs more information to be able to forward packets correctly So the following steps are also required when appending to the list of key words 13 It is now necessary to edit the two function

Download Pdf Manuals

image

Related Search

Related Contents

Manuel - AstralPool  Manual de Operação - WISE Indústria de Telecomunicações  BENAMING ASPEGIC Injectable 500 mg poeder en  NEC / Carrity-NW(PDF/11.7MB)  TouchSystems TE1993R-D touch screen monitor  Sennheiser CC 550  

Copyright © All rights reserved.
Failed to retrieve file