Mobilelogging: Assessing Smartphone Sensors for Monitoring Sleep Behaviour
|
|
|
- Blake Mathews
- 10 years ago
- Views:
Transcription
1 Institute for Visualization and Interactive Systems University of Stuttgart Universitätsstraße 38 D Stuttgart Student Research Project Nr Mobilelogging: Assessing Smartphone Sensors for Monitoring Sleep Behaviour Sven Andre Mayer Course of Study: Computer Science Examiner: Supervisor: Prof. Dr. Albecht Schmidt M.Sc. Alireza Sahami, Dr. Niels Henze Commenced: Completed: CR-Classification: I.5.2
2
3 Abstract This work deals with mobile devices, more specifically with Android smartphones. Smartphones have more and more accurate sensor data. This we can use to make us a more accurate picture of our trade. Here, the techniques are demonstrated on the present state of the art show. Using an example is shown how this works in detail data recording. It is a user study carried out over 7 days. The goal is to determine whether the data can be analysed sleep behaviour by the smartphone. To control a commercial objective sleep measurement device is used. 3
4
5 Contents 1 Introduction 7 2 Context Data on Android Devices Sensor-Class Register a Sensor BroadcastReceiver-Class Register a BroadcastReceiver Sleep Tracking with Commercial Devices Sleep Laboratory FitBit Withings Pulse Jawbone User Inclusion The decision Implementation of an Android App App Server Communication Problems User Study Questionnaire Progress Problems Gap Problem Recording Time of Fitbit Data Analysis Download Fitbit Data Register Fitbit App Retrieving Collection Data Download Phone Data Preparing the Data Data Analysis More Data Conclusion 41 5
6
7 1 Introduction Smart phones turn more and more into personal computing devices with a wide variety of applications that support users during everyday life. The ubiquity of the mobile phones allows people to use them in any context. The proliferation of mobile devices in everyday life leads to an increasing amount of information about users personal contexts that can be obtained automatically and made available to third-party applications. In this project we aim to develop an application for Android devices, which logs all possible context information, can be retrieved. To achieve the goal, the potential context information is recognized in the first step. Then an application is developed to log the information and store it in a central database. To fill this central database it is necessary to collect data from different people with different age, gender and jobs to have a wide range of different moving behavior. This will happen in a user study. Every user will be record his context over one week. All data in our central database will give us an idea of the user s behavior and about his day cycle. The aspect we want to look at the data is the night sleep. Night sleep will here define as a sleep longer than 5 hours between 10 p.m. and 10 a.m. We are all people and people need to sleep, so in every day cycle there has to be a sleep time. The next aim it will be to extract the sleep time out of the user s data. But the question is: are there data the truth? To answer this question we need have something like a truth recorder. This has to be a device we can give to all study members to record their precise sleep time, start and end while they are recording their data with the mobile device. With the precise sleep data and the mobile device context data we can analyze differences, anomalies and similarities in the night sleep. This will be the main goal for this work, to make clear if there is a signified similarity between humans sleep and their mobile device contexts. Another interesting information we want to get is with context information increases the accuracy of the difference in the data. 7
8
9 2 Context Data on Android Devices Now we want to give an overview out data logging on an Android device. Android provides two options ready to pick off phone context. One is the Sensor-Class and the other is the BroadcastReceiver-Class. The difference between these classes is very simple. Sensor-Class check for changed values in a defined time interval and send if it is changed. BroadcastReceiver-Class only sends values if the value has changed. 2.1 Sensor-Class The Sensor-Class is available since API level 3. Before API level 3, the Sensors-Class was stored in "android.hardware.sensormanager". Here we will describe to setup a Sensor since API Level 3. Table 2.1 shows all possible sensors Android provide in the Sensor- Class. To use the Sensor-Class you class need to implements "android.hardware.sensorevent- Listener". This implementation requires two methods "void onaccuracychanged(sensor sensor, int accuracy)" and "void onsensorchanged(sensorevent event)". Both methods will be called by the AndroidOS. onaccuracychanged will be called when the accuracy of a sensor has changed. onsensorchanged will be called when sensor values have changed Register a Sensor If we have implements the "SensorEventListener" we can register one or more Sensors. Listing 2.1 shows the code to register a "Sensor.TYPE_ACCELEROMETER" sensor. Table 2.1 shows us all sensors we can register here. With the third parameter of the method "registerlistener" its possible we set an update rate of the sensor. The are four delay time settings shown in table 2.2. Through the Java source files we have found that each delay times are assigned to a specific value. The table 2.3 shows the theoretical times. In the Java source file the delay time is given in µs. For "SENSOR_DELAY_ FASTEST" i need to say that a 0 delay time is not possible, so what it mean that you got the lowest delay time your hardware sensor in your phone supports. With low delay times appears a problem. The problem is that the sequence of events is not necessarily sorted chronologically. This means that must be specially checked whether the sequence is correct. 1 SensorManager sensormanager = (SensorManager) this.getapplicationcontext(). getsystemservice(context.sensor_service); 2 Sensor sensor = sensormanager.getdefaultsensor(sensor.type_accelerometer ); 9
10 2 Context Data on Android Devices 3 sensormanager.registerlistener(this, sensor, SensorManager. SENSOR_DELAY_NORMAL); Listing 2.1: Registration of a sensor If we register two or more sensors in one class its necessary to check which one called "onsensorchanged" like we did in listing public void onsensorchanged(sensorevent event) 3 { 4 switch (event.sensor.gettype ()){ 5 case Sensor.TYPE_ACCELEROMETER: 6 doaccelerometer(event.timestamp, event.values); 7 break; 8 case Sensor.TYPE_MAGNETIC_FIELD: 9 domagneticfield(event.timestamp, event.values); 10 break; 11 } 12 } Listing 2.2: How the onsensorchanged function is build There are two other things to pay attention to the use of onsensorchanged. The parameter "event" of type "SensorEvent" has two fields that are important: "timestamp" and "values". First we have the "values" variable, its a float array. Different sensors have different lengths of the array and various units, see table 2.4. Second event offers the value "timestamp". But be care full its not a timestamp we would expect. The value is not given in ms an not since The value is the time in nanosecond at which the event happened and counts from the start up time of the phone. This means that 0ns is the start time of the phone. Listing?? shows how we have a calculation to come from timestamp start up time to milliseconds till It is not perfect because "new Date()" and "SystemClock.uptimeMillis()" is called after the event happens but it is the best of what you can do. Through my recherche can say, "timestamp" is counted in nanoseconds since the system was booted. This clock stops when the system enters deep sleep (CPU off, display dark, device waiting for external input), but is not affected by clock scaling, idle, or other power saving mechanisms. So you need a similar clock if you wand to calculate something with the event.timestamp, we can use System.nanoTime() for nanosecond calculation and for milisecoind calulation SystemClock.uptimeMillis(). For my calculation in listing 2.3 i also could use System.nanoTime() but the the Android specification said NanoTime() "cannot be used as a very exact system time expression." [1] So we decided to use uptimemillis() because our result value is also milliseconds. This method calculates always a time for approximately two ms before nanotime result is. 10
11 2.2 BroadcastReceiver-Class Value Title Description int TYPE_ACCELEROMETER A constant describing an accelerometer sensor type. int TYPE_ALL A constant describing all sensor types. int TYPE_AMBIENT_ TEMPERATURE A constant describing an ambient temperature sensor type int TYPE_GRAVITY A constant describing a gravity sensor type. int TYPE_GYROSCOPE A constant describing a gyroscope sensor type int TYPE_LIGHT A constant describing a light sensor type. int TYPE_LINEAR_ ACCELERATION A constant describing a linear acceleration sensor type. int TYPE_MAGNETIC_ FIELD A constant describing a magnetic field sensor type. int TYPE_ORIENTATION This constant was deprecated in API level 8. use SensorManager.getOrientation() instead. int TYPE_PRESSURE A constant describing a pressure sensor type. int TYPE_PROXIMITY A constant describing a proximity sensor type. int TYPE_RELATIVE_ HUMIDITY A constant describing a relative humidity sensor type. int TYPE_ROTATION_ VECTOR A constant describing a rotation vector sensor type. int TYPE_TEMPERATURE This constant was deprecated in API level 14. use Sensor.TYPE_AMBIENT_ TEMPERATURE instead. Table 2.1: Constants at the Sensor Class [2] 1 long timeinmillis = (new Date()).getTime() + (event.timestamp System.nanoTime ()) / L; Listing 2.3: Sensor start up nano time to milisec since 1970 Generally also SystemClock.uptimeMillis() has the same properties as System.nanoTime(). There is only a tiny difference, but we will never be noticed. Nano-time and milli-time is both stored in a long value. Because nano-time is much more accurate the value will reach his maximum faster. After reaching the maximum Long will flip around and runs again to the maximum. This phenomenon is reached after about million years, so we must be no thoughts. 2.2 BroadcastReceiver-Class BroadcastReceiver works since API level 1. There are a wide range of events that you can retrieve via a broadcast receiver. The Table 2.5 shows all possible values you can get with the BroadcastReceiver-Class. In fact, not all are really useful. There was 11
12 2 Context Data on Android Devices Value Title Description int SENSOR_DELAY_FASTEST get sensor data as fast as possible int SENSOR_DELAY_GAME rate suitable for games int SENSOR_DELAY_NORMAL rate (default) suitable for screen orientation changes int SENSOR_DELAY_UI rate suitable for the user interface Table 2.2: Constants for delay time at the SensorManager Class [2] Title µs ms Hz SENSOR_DELAY_FASTEST SENSOR_DELAY_GAME SENSOR_DELAY_NORMAL SENSOR_DELAY_UI Table 2.3: Sensor delay times with real values [2] Value Length Si units Description TYPE_ACCELEROMETER 3 m/s 2 0,1,2 = x, y, z-axis TYPE_AMBIENT_TEMPERATURE 1 C TYPE_GRAVITY 3 m/s 2 0,1,2 = x, y, z-axis TYPE_GYROSCOPE 3 radians/s 0,1,2 = x, y, z-axis TYPE_LIGHT 1 lux TYPE_LINEAR_ACCELERATION 3 m/s 2 0,1,2 = x, y, z-axis TYPE_MAGNETIC_FIELD 3 µt 0,1,2 = x, y, z-axis TYPE_ORIENTATION 3 Degree deprecated in API level 8 TYPE_PRESSURE 1 hpa TYPE_PROXIMITY 1 cm TYPE_RELATIVE_HUMIDITY 1 % TYPE_ROTATION_VECTOR 3 or 4 TYPE_TEMPERATURE 1 C deprecated in API level 14 Table 2.4: Constants at the Sensor Class [2] 12
13 2.2 BroadcastReceiver-Class even canceled an event from the list, with the Introduction of API level 14 ACTION_ PACKAGE_INSTALL was removed. Length Table 2.5: Constants at the Intent Class for BroadcastReceiver [3] Description ACTION_AIRPLANE_ MODE_CHANGED ACTION_BATTERY_ CHANGED ACTION_BATTERY_LOW ACTION_BATTERY_OKAY ACTION_BOOT_ COMPLETED ACTION_CAMERA_ BUTTON ACTION_CONFIGURATION _CHANGED ACTION_DEVICE_ STORAGE_LOW ACTION_DEVICE_ STORAGE_OK ACTION_DOCK_EVENT ACTION_DREAMING_ STARTED ACTION_DREAMING_ STOPPED ACTION_EXTERNAL_ APPLICATIONS_AVAILABLE ACTION_EXTERNAL_ APPLICATIONS_ UNAVAILABLE ACTION_GTALK_SERVICE_ CONNECTED ACTION_GTALK_SERVICE_ DISCONNECTED ACTION_HEADSET_PLUG The user has switched the phone into or out of Airplane Mode. This is a sticky broadcast containing the charging state, level, and other information about the battery. Indicates low battery condition on the device. Indicates the battery is now okay after being low. This is broadcast once, after the system has finished booting. The "Camera Button" was pressed. The current device Configuration (orientation, locale, etc) has changed. A sticky broadcast that indicates low memory condition on the device This is a protected intent that can only be sent by the system. Indicates low memory condition on the device no longer exists This is a protected intent that can only be sent by the system. A sticky broadcast for changes in the physical docking state of the device. Sent after the system starts dreaming. Sent after the system stops dreaming. Resources for a set of packages (which were previously unavailable) are currently available since the media on which they exist is available. Resources for a set of packages are currently unavailable since the media on which they exist is unavailable. A GTalk connection has been established. A GTalk connection has been disconnected. Wired Headset plugged in or unplugged. Continued on next page 13
14 2 Context Data on Android Devices Length ACTION_INPUT_METHOD_ CHANGED ACTION_LOCALE_ CHANGED ACTION_MANAGE_ PACKAGE_STORAGE ACTION_MEDIA_BAD_ REMOVAL ACTION_MEDIA_BUTTON ACTION_MEDIA_ CHECKING ACTION_MEDIA_EJECT ACTION_MEDIA_ MOUNTED ACTION_MEDIA_ REMOVED ACTION_MEDIA_ SCANNER_FINISHED ACTION_MEDIA_ SCANNER_SCAN_FILE ACTION_MEDIA_ SCANNER_STARTED ACTION_MEDIA_SHARED ACTION_MEDIA_ UNMOUNTABLE ACTION_MEDIA_ UNMOUNTED ACTION_MY_PACKAGE_ REPLACED ACTION_NEW_ OUTGOING_CALL ACTION_PACKAGE_ADDED ACTION_PACKAGE_ CHANGED Table 2.5 continued from previous page Description An input method has been changed. The current device s locale has changed. Indicates low memory condition notification acknowledged by user and package management should be started. External media was removed from SD card slot, but mount point was not unmounted. The "Media Button" was pressed. External media is present, and being disk-checked The path to the mount point for the checking media is contained in the Intent. mdata field. User has expressed the desire to remove the external storage media. External media is present and mounted at its mount point. External media has been removed. The media scanner has finished scanning a directory. Request the media scanner to scan a file and add it to the media database. The media scanner has started scanning a directory. External media is unmounted because it is being shared via USB mass storage. External media is present but cannot be mounted. External media is present, but not mounted at its mount point. A new version of your application has been installed over an existing one. An outgoing call is about to be placed. A new application package has been installed on the device. An existing application package has been changed (e.g. Continued on next page 14
15 Length ACTION_PACKAGE_DATA_ CLEARED ACTION_PACKAGE_ FIRST_LAUNCH ACTION_PACKAGE_ FULLY_REMOVED ACTION_PACKAGE_ NEEDS_VERIFICATION ACTION_PACKAGE_ REMOVED ACTION_PACKAGE_ REPLACED ACTION_PACKAGE_ RESTARTED ACTION_PACKAGE_ VERIFIED ACTION_PROVIDER_ CHANGED ACTION_REBOOT ACTION_SCREEN_OFF ACTION_SCREEN_ON ACTION_SHUTDOWN ACTION_TIMEZONE_ CHANGED ACTION_TIME_CHANGED ACTION_TIME_TICK ACTION_UID_REMOVED ACTION_USER_PRESENT Table 2.5 continued from previous page Description 2.2 BroadcastReceiver-Class The user has cleared the data of a package. Sent to the installer package of an application when that application is first launched (that is the first time it is moved out of the stopped state). An existing application package has been completely removed from the device. Sent to the system package verifier when a package needs to be verified. An existing application package has been removed from the device. A new version of an application package has been installed, replacing an existing version that was previously installed. The user has restarted a package, and all of its processes have been killed. Sent to the system package verifier when a package is verified. Some content providers have parts of their namespace where they publish new events or items that the user may be especially interested in. Have the device reboot. Sent after the screen turns off. Sent after the screen turns on. Device is shutting down. The timezone has changed. The time was set. The current time has changed. A user ID has been removed from the system. Sent when the user is present after device wakes up (e.g when the keyguard is gone) Register a BroadcastReceiver To produce a particular broadcast receiver, we have to create a new class that is derived from the "BroadcastReceiver" types. Listing 2.4 shows the basic skeleton of a class that is derived from "broadcast receiver". The onreceive function is called by the system when the result previously defined occurs. In this function, the code must be placed to be executed when the event occurs. To really take advantage of a "Broadcast Receiver" 15
16 2 Context Data on Android Devices derived class, it must be registered with the system. The listing 2.5 shows a simple way a "Broadcast Receiver" to log on to system. In this example, "ACTION_SCREEN_ON" and "ACTION_SCREEN_OFF" are used as a filter. In this case, all the filters listed in table 2.5 can be used. If one of the events which have been specified as the filter occurs, the associated respective class is activated, and called onreceive. There is one more thing that needs to be done to get an event from the system, an entry into the "manifest.xml" file. "<Receiver android:name="paketname.mybroadcastreceiver"></ receiver> "must be inserted into the the manifest. The Listing 2.6 shows the exact place where the tag has to be inserted 1 public class MyBroadcastReceiver extends BroadcastReceiver { 2 3 public MyBroadcastReceiver(){ 4 super(); 5 } 6 8 public void onreceive(context context, Intent intent) { 9 //some stuff we want to do at receiving 10 } 11 } Listing 2.4: basic skeleton of a class that is derived from "broadcast receiver" 1 private void addreceiver (Context context){ 2 IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); 3 filter.addaction(intent.action_screen_off); 4 //here you can add more Intents for BroadcastReceiver 5 MyBroadcastReceiver receiver = new MyBroadcastReceiver(); 6 context.registerreceiver(receiver, filter); 7 } Listing 2.5: Add a BroadcastReceiver to the System Listing 2.6: Add MyBroadcastReceiver-Class to the Android-Manifest 1 <manifest...> <application...> <receiver android:name="paketname.mybroadcastreceiver"> 6 </receiver> </application> </manifest> 16
17 3 Sleep Tracking with Commercial Devices Out there are a huge number of devices we could use. But the range of expenditure is also huge. The minimum of expenditure is to let the user write down his sleep time and the maximum of expenditure is to use a sleep laboratory. Therefore, we must analyze various techniques on the effort, the accuracy and quality of the output data. For me a very important requirement is that the participants will not be disturbed in their daily routine. The interaction with the sleep detection must be very low. The reason: every interaction changes the behavior. To determine the relationship between sleep and smart phone use, a non-altered behavior are based. 3.1 Sleep Laboratory This is a medical facility to be examined carefully the sagging hold. This goes far beyond the needs of my lap recording sleep. In addition, the daily behavior of the subjects is changed because they no longer allowed to sleep at home. The price for this is unprofitable high. For this reason, and the reason of changed behavior, ruled out this possibility from the outset. 3.2 FitBit A great advantage to Fitbit is the Fitbit API. They can be accessed with.net, Java and PHP. This API works with OAuth authentication. Thus, it is imperative that the server used dominates this. The output format can be selected here, either JSON or XML. Furthermore, we will describe how to read certain data with PHP.[4] To record the sleeping behavior, this device must be attached to the arm and be put in sleep mode. The price of a Fitbit is with 99 at the bottom of the possible devices. 3.3 Withings Pulse Withings Pulse has a slightly less large API. It works very similar to the Fitbit API, they also used a OAuth authentication. But it works only with PHP and it gives only the JSON output format. Thus we have the same requirements as for a FitBit here the use of PHP. [7] To record the sleeping behavior, this device must be attached to the arm and be put in sleep mode. The price for one of these devices is 99. And so it is with fitbit on the same. 17
18 3 Sleep Tracking with Commercial Devices 3.4 Jawbone Jawbone works like Withings Pulses with JSON. It does not work on OAuth, but with HTTP request. This method is not as safe for the end user. But you can use any programming language to understand the HTTP request. [6] Since I always wear this device on the arm where we do not have to entrench it at night. In addition, no sleep mode must be activated here. Unfortunately, the price is more expensive than the competition, there are 129 for a device. 3.5 User Inclusion Here the idea is that each participant independently monitors its sleep phase. With this method two problems go hand in hand. One is the act of disturbing the sleep, because the test person must make sure to write down the correct time. And second, that the record is inaccurate. The cost of this method are of course at The decision First, we want to exclude the method can not find a park your app tables, sleep laboratory. If the goal is to monitor sleep habits, then we can not change this in advance. This issue we have with the self-monitoring method. The user must determine when it actually goes to sleep, but sleep normal occurs after a few minutes. Thus, the exact sleep time is not recorded. Instead, we only have a rough idea when the person wants to sleep. Thus, the presented above devices remain. For this project, the safety of non-significant, but applies to other projects to consider this: While jawbone has a great possibility to use, but is very insecure in the transmission. This mean that the major negative point of jaw bone are the cost. FitBit and Withings pulses are equal in price and user-on. Both need to be fix on your arm at night and must also be put in the sleep mode. But both are 30 cheaper than the Jawbone device. The remaining decision is based on my personal feeling. Since my stay calculations to sleep recognition of the individual devices hidden, we have to believe this blind. Since we want to use the values for a larger purpose, it is in my opinion an advantage if we do not give the calculations completely out of hand. We achieve this so that we with the type of device. By activating the sleep mode, the calculation will start. So we have created a small control over the correctness of calculation. So we have the choice narrowed down to two, FitBit and Withings Pulses. This final decision is based on the functionality and the functionality. Simply put, FitBit can be used more versatile. That is now in the course of a study, each participant will receive a Fitbit. 18
19 4 Implementation of an Android App The app we are created for Andorid devices with minimum version number is Since 2.0 there is a wide range of sensors to obtain data. Here is a list of the context we recorded: Accelerometer Air plain mode on/off App use Magnetic field Screen on/off Charger plugged Battery state changed Ambient volume Ambient light Proximity over Display Wireless service For the server communication we need to have a unique id on each device. It will be calculated on each device by there one out of unique device information. This is necessary to map the data to the appropriate member. We record all this sensor data by a service, so its hidden from the user and running all the time. One sensor is stored in one folder, for each record minute one file. Each file is a comma-separated values file, each line is one data set. In a line it comes a time stamp first and then separated the values. This is necessary to keep the volume to outline at the huge data. For each sensor, we have the same life cycle, this is shown in figure 4.1. The cycle starts with the create a new file in which the data should be stored. At the beginning of an additional 60-second timer is initialized and started. Then waits for sensor data, and the expiration of the timer. If sensor data arrive, they are stored sequentially in the file. If the timer sends an interrupt, jumps back to the beginning, creates a new file and the timer is restarted. 19
20 4 Implementation of an Android App start record Create File to store Data new data interrupt store Data into File stop record timer interrupt Figure 4.1: The cycle of one sensor 4.1 App Server Communication Every 60 sec the app is trying to send the files to the server. With each file it send the unique id to now witch user sends the file. The file is sent via HTTP. If the smartphone is not online or the connection interrupts the app tries to send the files 60 sec later again. On the server, the data will only be accepted and stored in a similar folder structure. On the server is just one php script, see listing 4.1. Listing 4.1: PHP code on the server 1 <?php 2 $uniqueid = $_POST[ ' uniqueid ' ] ; 3 $eventname = $_POST[ ' eventname ' ] ; 4 i f (! empty ( $uniqueid ) &&! empty ( $eventname ) ) { 5 $ d e s t i n a t i o n = ". / uploads / ". $uniqueid. " / ". $eventname. " / " ; 6 i f (! i s _ d i r ( $ d e s t i n a t i o n ) ) { 7 i f (! mkdir ( $ d e s t i n a t i o n, 0775, true ) ) { 8 echo ( ' Dir wasnt create, p l e a s e try again! ' ) ; 9 } 10 } 11 $ d e s t i n a t i o n += basename ( $_FILES [ ' data ' ] [ 'name ' ] ) ; 12 i f ( move_uploaded_file ($_FILES [ ' data ' ] [ 'tmp_name ' ], $ d e s t i n a t i o n ) ) 20
21 4.2 Problems 13 { 14 echo " The f i l e ". basename ( $_FILES [ ' data ' ] [ 'name ' ] ). " has been uploaded " ; 15 e x i t (200) ; 16 } e l s e { 17 echo " There was an e r r o r uploading the f i l e, p l e a s e try again! " ; 18 e x i t (400) ; 19 } 20 } e l s e { 21 echo " Not a l l r e q u i r e d vars s e t. " ; 22 e x i t (406) ; 23 } 24?> 4.2 Problems Over the time there came a big problem up, its about gaps in the recorded data. A service has the great advantage that it works all the time in the background. But the time has turned out that that s not quite. Some options are stressful for the system in these cases the service is paused. So we try a lot of different operations and parameters to use to charge the minimum to System. We were able to minimize the gaps in Recorded data, but unfortunately not completely prevent. The gap size depends on 2 factors from the computing power of smartphones and the impact of smartphones by users. Since we already knew about the problem in the run with the gaps modest, our biggest was hopeful that there will be sufficient data are useful. 21
22
23 5 User Study To get a confirmation whether it is possible to get acceptable values through our app we made for the user study. Each user should run the app on his mobile phone and at the same time use a commercial device to record data. The commercial device used to check the data recorded by the app. The study focused mainly on the question: we can identify the sleep time using the mobile phone usage. For this reason, we set the duration of the study on seven full days, so we can evaluate seven nights of each participant. For a first analysis we selected six people, three of whom were female and three male. Not one of them was a computer scientist, we have to assume that these people use their mobile phones more often than not one of the lancer has to do with this topic. Our hope was to get a large spectrum of different behaviors despite the small number of participants. 5.1 Questionnaire To verify that we have a wide range of different people, all people at any one have to answer some questions. The answers are shown in Table Progress During the study, we have noticed that we have problems. Why we sent 3 times an update to the participating users, more in section Because we thought we had solved the problem, which unfortunately was not the case. The last version we had then record 7 days. During this time the participants were four times Fitbit forget to Activate. This was clear from the beginning that this error be made. Otherwise, the study went through without problems until the end. Everyone has to get a briefing in Fitbit and the app. At the app there is nothing to do, so it certainly have no problems. And the use of Fitbit has also worked without further between ask. It was only after the end of the second problem is noticed. What then was not revisable, more in section Problems Gap Problem From the beginning of the study, we knew that there will be gaps in the record. The two factors for gaps are too little computing capacity and large user loads. These two 23
24 5 User Study P1 P2 P3 P4 P5 P6 Age? gender? f m m f f m Job? Student Electronics technician Student justice professionasale Physical therapist Merchant in whole- for automation and technology employees foreign trade Use your cell phone Yes No Yes Yes Yes Yes as an alarm clock? Imagine an alarm Yes Yes No No No No clock on the weekend? How do you make daily daily daily daily daily daily your alarm clock? How intensively you Intensive Intensive Normal Intensive Normal Intensive use their phone every day? How many hours do 6,5 7,5 7, you sleep on average? My sleep was ever No No No No No No monitored? How did you sleep No No No No No No professionally monitored? If you have trouble Yes Yes No No No No sleeping? You only use their Yes Yes Yes Yes Yes Yes cell phone? If your sleep monitored No No No No No No by experts? You know what Fitbit? Have you already No No No No No No used Fitbit? Are you in possession of a Fitbit device? No No No No No No Table 5.1: The results of the questionnaire 24
25 5.3 Problems factors result, gaps that arise are more likely if the user is using his smart phone. So, if a gap in the recording has arisen that it is more likely that the user has not slept Recording Time of Fitbit Fitbit has about 14 days of battery life, some have more, some less. But that s not the big problem. Fitbit can charge you on any USB port without having to install it on the PC, Fitbit. It works right out of the box. The big problem is the storage capacity. Fitbit can hold data about 7 days until it begins to overwrite the old data. And not only that if you want to synchronize data, you have to have Fitbit installed on the PC. So that it results in that it is not easily possible to make a study that is longer than 7 days. Unfortunately, I did not at the beginning. Thus I have some data that got lost from the Fitbit devices my users. 25
26
27 6 Data Analysis 6.1 Download Fitbit Data To download the FitBit data of each participant, we have written me an API interface in php. The Listing 6.1 shows the PHP source code to an HTML file to enter start and end date, this period is needed to obtain the correct data. This data is then forwarded to the fitbit.php file. As you can see in the Listing 6.2 data are processed there. As you can see in Listing 6.2, the two variables $conskey and $conssec initialize with multiple X, these are unique to each FitBit communication. How do you get these unique values is described in Section "Register Fitbit App". The variable $apicall specifies what information the Fitbit server to load. In this example we downloaded the sleep data of a user. But it can do much more data to be downloaded, more details follow in Section In order to establish communication with Fitbit, the app must be active performances there Register Fitbit App In order to establish communication with Fitbit is a registration with Fitbit needed. This is done via the following URL: 8 values must be set. Application Name, Description, Application Website, Organization, Organization Website, Application Type, Callback URL and Default Access Type must be set. Be careful when enter the "Callback URL", this is very important because if authentication was successful Fitbit forwards the data out there on. When set of "Default Access Type" we used "Read-Only" and my "Application Type" is Browser. The rest of the details that need to be made, have no effect on the interface Retrieving Collection Data The API call is a string, the different variables are separated by a slash, the correct order play an important role. Each call has this structure: /<api-version>/user/<userid>/<moreinformation>.<response-format>. Until now there is only the API version 1 thus <api-version> can be occupied only by 1. <user-id> can be assigned ID or with a with a specific user "-". In the latter case, the call end user must log in and can bring its own data into the app. This is what I did. The data can always be downloaded in two different formats, XML, or JSON. This can be determined with the use of <response-format>. Here you can use the ending ".json" for JSON and ".xml" for the XML output. 27
28 6 Data Analysis Then there s the wild card <moreinformation>, this can be combined for a variety of other keywords. For the most important GET-functions see Table 6.1. The full specification is available at [5]. Listing 6.1: index.php: The interface to determine the period 1 <?php 2 $date = date ( "Y m d ", time ( ) ) ; 3 $content = ' 4 <!DOCTYPE html> 5 <html lang ="de"> 6 <header> 7 <t i t l e >Get F i t B i t Data</ t i t l e > 8 <s c r i p t s r c ="./ i n c l u d e s / d a t e t i m e p i c k e r. j s "></ s c r i p t > 9 </header> 10 <body> 11 <t a b l e width="100%"> 12 <form a c t i o n =" f i t b i t. php " method=" post " > 13 <tr> 14 <td> 15 <p><b>s t a r t Date:</b> 16 <input type=" t e x t " name="date1 " id ="date1 " s i z e ="20" maxlength ="32" value =" '. $date. '"> 17 <img s r c ="./ i n c l u d e s / c a l. g i f " o n c l i c k =" j a v a s c r i p t : NewCssCal ( \ ' date1 \ ', \ 'yyyymmdd\ ' ) " s t y l e =" c u r s o r : p o i n t e r "/></p> 18 </td> 19 </tr> 20 <tr> 21 <td> 22 <p><b>end Date:</b> 23 <input type=" t e x t " name="date2 " id ="date2 " s i z e ="20" maxlength ="32" value =" '. $date. '"> 24 <img s r c ="./ i n c l u d e s / c a l. g i f " o n c l i c k =" j a v a s c r i p t : NewCssCal ( \ ' date2 \ ', \ 'yyyymmdd\ ' ) " s t y l e =" c u r s o r : p o i n t e r "/></p> 25 </td> 26 </tr> 27 <tr> 28 <td> 29 <input type="submit " name="web " value ="Get Data"> 30 </td> 31 </tr> 32 </form> 28
29 6.1 Download Fitbit Data Info Profile Get-User-Info Body Get-Body-Measurements Get Body Weight Get-Body-Fat Get-Body-Weight-Goal Get-Body-Fat-Goal Activities Get-Activities Get-Activity-Daily-Goals Get-Activity-Weekly-Goals Foods Get-Foods Get-Water Get-Food-Goals Sleep Get-Sleep Heart Get-Heart-Rate BP Get-Blood-Pressure Glucose API-Get-Glucose <moreinformation> user/<user-id>/profile body/date/<date> body/log/weight/date/<date> body/log/weight/date/<basedate>/<period> body/log/weight/date/<base-date> body/log/fat/date/<date> body/log/fat/date/<base-date>/<period> body/log/fat/date/<base-date>/<end-date> body/log/weight/goal body/log/fat/goal activities/date/<date> activities/goals/daily activities/goals/weekly foods/log/date/<date> foods/log/water/date/<date> foods/log/goal sleep/date/<date> heart/date/<date> bp/date/<date> glucose/date/<date> Table 6.1: The most important GET-functions for the wildcard <moreinformation> 29
30 6 Data Analysis 33 </table > 34 </body> 35 </html> ' ; 36 echo $content ; 37?> Listing 6.2: fitbit.php: Communication to the Fitbit API 1 <?php $content = " " ; 5 // p e c l i n s t a l l oauth // Base URL 8 // API c a l l path to get temporary c r e d e n t i a l s ( r e q u e s t token and s e c r e t ) : 9 $baseurl = ' http : / / api. f i t b i t. com ' ; // Request token path 12 // Base path o f URL where the user w i l l a u t h o r i z e t h i s a p p l i c a t i o n : 13 $req_url = $baseurl. ' / oauth / request_token ' ; 14 // Authorization path 15 // API c a l l path to get token c r e d e n t i a l s ( a c c e s s token and s e c r e t ) : 16 $authurl = $baseurl. ' / oauth / a u t h o r i z e ' ; 17 // Access token path 18 $acc_url = $baseurl. ' / oauth / access_token ' ; 19 // Consumer key 20 $ c o n s k e y = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ; 21 // Consumer s e c r e t 22 $ c o n s s e c = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ; 23 // F i t b i t API c a l l ( get a c t i v i t i e s f o r s p e c i f i e d date ) // S t a r t s e s s i o n to s t o r e the i n f o r m a t i o n between c a l l s 26 s e s s i o n _ s t a r t ( ) ; 27 // In s t a t e=1 the next r e q u e s t should i n c l u d e an oauth_token. 28 // I f i t doesn ' t go back to i f ( i s s e t ($_POST[ ' date1 ' ] ) and i s s e t ($_POST[ ' date2 ' ] ) ) 30
31 6.1 Download Fitbit Data 32 { 33 $_SESSION [ ' date_from ' ] = $_POST[ " date1 " ] ; 34 $_SESSION [ ' date_to ' ] = $_POST[ " date2 " ] ; 35 } i f ( i s s e t ($_SESSION [ ' date_from ' ] ) && i s s e t ($_SESSION [ ' date_to ' ] ) ) { 38 i f (! i s s e t ($_GET[ ' oauth_token ' ] ) && $_SESSION [ ' s t a t e ' ]==1 ) 39 { 40 $_SESSION [ ' s t a t e ' ] = 0 ; 41 } 42 try 43 { 44 // Create OAuth o b j e c t 45 $oauth = new OAuth( $conskey, $conssec, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION) ; 46 // Enable ouath debug ( should be d i s a b l e d in production ) 47 $oauth >enabledebug ( ) ; 48 i f ( $_SESSION [ ' s t a t e ' ] == 0 ) 49 { 50 // Getting r e q u e s t token. Callback URL i s the Absolute URL to which the s e r v e r provder w i l l r e d i r e c t the User back when the o b t a i n i n g user a u t h o r i z a t i o n step i s completed. 51 $request_token_info = $oauth >getrequesttoken ( $req_url, $ c a l l b a c k U r l ) ; 52 // S t o r i n g key and s t a t e in a s e s s i o n. 53 $_SESSION [ ' s e c r e t ' ] = $request_token_info [ ' oauth_token_secret ' ] ; 54 $_SESSION [ ' s t a t e ' ] = 1 ; 55 // Redirect to the a u t h o r i z a t i o n. 56 header ( ' Location : '. $authurl. '? oauth_token='. $request_token_info [ ' oauth_token ' ] ) ; 57 e x i t ; 58 } 59 e l s e i f ( $_SESSION [ ' s t a t e ']==1 ) 60 { 61 // Authorized. Getting a c c e s s token and s e c r e t 62 $oauth >settoken ($_GET[ ' oauth_token ' ], $_SESSION [ ' s e c r e t ' ] ) ; 63 $access_token_info = $oauth >getaccesstoken ( 31
32 6 Data Analysis $acc_url ) ; 64 // S t o r i n g key and s t a t e in a s e s s i o n. 65 $_SESSION [ ' token ' ] = $access_token_info [ ' oauth_token ' ] ; 66 $_SESSION [ ' s e c r e t ' ] = $access_token_info [ ' oauth_token_secret ' ] ; 67 } $oauth >settoken ($_SESSION [ ' token ' ], $_SESSION [ ' s e c r e t ' ] ) ; 70 $alldata = array ( ) ; while ( s t r t o t i m e ($_SESSION [ ' date_from ' ] ) <= s t r t o t i m e ($_SESSION [ ' date_to ' ] ) ) { 73 $ a p i C a l l = " http : / / api. f i t b i t. com/1/ user/ / s l e e p / date / ". $_SESSION [ ' date_from ' ]. ". j s o n " ; 74 $oauth >f e t c h ( $ a p i C a l l ) ; 75 $response = $oauth >getlastresponse ( ) ; 76 $jsondata = json_decode ( $response, true ) ; 77 $Data = array ( ' date ' => $_SESSION [ ' date_from ' ], 78 ' data ' => $jsondata ) ; 79 array_push ( $alldata, $Data ) ; 80 $_SESSION [ ' date_from ' ] = date ( "Y m d ", s t r t o t i m e ( "+1 day ", s t r t o t i m e ($_SESSION [ ' date_from ' ] ) ) ) ; 81 } 82 $content = json_encode ( $alldata ) ; 83 } 84 catch ( OAuthException $E ) 85 { 86 print_r ($E) ; 87 } header ( ' Content Type : x type / octtype ' ) ; 90 header ( ' Content Length : '. s t r l e n ( $content ) ) ; 91 header ( ' Content D i s p o s i t i o n : attachment ; f i l e n a m e =" t e s t. txt " ' ) ; p r i n t $content ; 94 } e l s e 97 { 98 d i e ( " Error " ) ; 32
33 6.2 Download Phone Data 99 } ?> 6.2 Download Phone Data The download of this data was no problem, we were able to download all data via FTP. Here was working up the data from the far greater part of the work. 6.3 Preparing the Data For the analysis it is necessary to divide the data into sections of 24 hours. Since each sensor individually available in a file and includes just a minute, it was necessary to wrote an extra analysis tool. We wanted to create output as csv files include each 24 hours. To be included telephone and data Fitbit data. The whole should run automatically, for any number of users and any number of sensors. Since the app has to be already developed in JAVA, I would not take the new language and thus the analystool is written in JAVA. We will now explain how a record of all user is analyzed. It starts with the function call analysistofile, see listing 6.3. We must specify the parameter f. Here, a file must be specified, this must be the folder where the data is located. Thus, it is of type File but linked to a folder. In the loop in this function, each user is then individually processed sequentially. Read, revise and then save. For each record, the function analysis, listing 6.4, is triggered. The parameter to this function is the folder which contains the data of individual users. This function determines how the data are processed. The data from a sensor are transmitted to the extractonesensor function. The extractonesensor function is the only function with exciting content so we will describe this in more detail. See listing 6.5 for this function. First of all, this function calculates the correct times to the result values. This is the code of the bigger part but unspectacular. Much more interesting is the line 16, analysisonemin(). Here it is decided what happens to the value. What information we have rated as Important. This is then shown in listing 6.6 on. 1 public void analysistofile(file f) { 2 File[] list = f.listfiles(); 3 for (int i = 0; i < list.length; i++) { 4 if (list[i].isdirectory()) 5 { 6 Log.d(TAG, list[i].getabsolutepath()); 7 AnalysisOneUser a = new AnalysisOneUser(Log); 8 AllDaysOfOneUser d = a.analysis(list[i]); 9 writecsv writer = new writecsv(log, list[i].getabsolutepath()); 33
34 6 Data Analysis 10 writer.writedata(d); 11 } 12 } 13 } Listing 6.3: This function opens the files 1 public AllDaysOfOneUser analysis(file pohnedir) 2 { 3 AllDaysOfOneUser alldata = new AllDaysOfOneUser(pohneDir.getName()); 4 File[] phonesensor = pohnedir.listfiles(); 5 if (phonesensor.length > 0) 6 { 7 for (int j = 0; j < phonesensor.length; j++) { 8 if (phonesensor[j].isdirectory()) 9 { 10 try 11 { 12 STATE state = STATE.valueOf(phoneSensor[j].getName()); 13 if (STATE.accelerometer.equals(state) 14 STATE.light.equals(state) 15 STATE.magneticField.equals(state) 16 STATE.noise.equals(state) 17 STATE.proximity.equals(state)) 18 { 19 alldata.adddata(state, extractonesensor(state, phonesensor[j])); 20 } 21 else if (STATE.batteryChanged.equals(state)) 22 { 23 alldata.adddata(state, extractoneblooeansensor(phonesensor[j]) ); 24 } 25 else if (STATE.app.equals(state)) 26 { 27 alldata.adddata(state, extractapp(phonesensor[j])); 28 } 29 else 30 { 31 alldata.adddata(state, extractoneblooeansensor(phonesensor[j]) ); 32 } 33 } catch (IllegalArgumentException e){ 34 Log.d(TAG, "Fail to parse dir:" + phonesensor[j].getabsolutepath() ); 34
35 6.3 Preparing the Data 35 } 36 } 37 else if (phonesensor[j].getname().equals("fitbit.txt") 38 phonesensor[j].getname().equals("fitbit.json")) 39 { 40 FitbitParser p = new FitbitParser(Log); 41 alldata.adddata(state.fitbit, p.parse(phonesensor[j])); 42 } 43 else 44 { 45 Log.d(TAG, "Fail to parse file:" + phonesensor[j].getabsolutepath()); 46 } 47 } 48 } 49 return alldata; 50 } Listing 6.4: This function pare the different data types 1 private List<AnalysisData> extractonesensor(state name, File dir) { 2 List<AnalysisData> data = new ArrayList<AnalysisData>(); 3 File[] file = dir.listfiles(); 4 Log.d(TAG, name + " has " + file.length + " Files"); 5 for (int i = 0; i < file.length; i++) { 6 if (file[i].getname().endswith(".csv")) { 7 8 Long timestamp = Long.valueOf(file[i].getName().substring(0, file[i]. getname().indexof(".csv"))); 9 long starttimestamp = timestamp (timestamp % ( )); extractfile ext = new extractfile(log, dir.getpath() + "\\" + file[i]. getname(), Long.valueOf(file[i].getName().substring(0, file[i].getname ().indexof(".csv")))); 13 List<EventObj> l = ext.getvalues(); 14 if (l!= null && l.size() > 0) 15 { 16 double value = analysisonemin(name, l); 17 data.add(new AnalysisData(startTimeStamp, value)); 18 } 19 } 20 } 21 return data; 22 } 35
36 6 Data Analysis Listing 6.5: This function extract one sensor 1 public double analysisonemin(state event, List<EventObj> l){ 2 if (STATE.accelerometer.equals(event)) 3 { 4 return standartabweichung (l); 5 } 6 else if (STATE.light.equals(event)) 7 { 8 return maximum (l); 9 } 10 else if (STATE.magneticField.equals(event)) 11 { 12 return standartabweichung (l); 13 } else if (STATE.proximity.equals(event)) 16 { 17 return maximum (l); 18 } 19 else if (STATE.noise.equals(event)) 20 { 21 return maximum (l); 22 } 23 return Double.MIN_VALUE; 24 } Listing 6.6: This function analysis one minute of one sensor 6.4 Data Analysis As defined by the already problem in this project, we will just represent the feasibility of the Idea here. Therefore, we will present the data at only one example of example. In figure 6.1 a record is illustrated. This time exactly 24 quarter hours of a subject. Starting at 12 am and ends at 12 am the following day. Thus, the graph shows a full night. All values are normalized based on the clarity to 1. This means that all values in a sensor is divided by the maximum of the same sensor. What we can see is that is a lot of activity during the day. Towards evening the activity are clear. At about 11:30 you see received is also the Fitbit data now, this is the sleep mode was activated. However, there is still something crucial by the Fitbit sensor. This even goes down to 1 high which means that the person is still awake. Also, the light sensor tells us that the light was identified shortly after 12 clock. Then it will 36
37 6.4 Data Analysis go through various hours away very quietly in the rashes. Therefore, we would that event the "light off", identified as beginning of sleep. The sleep lasts for several hours then without interruption. Up to about 9 clock we can see again a clear movement to be detected in the morning. The move takes about 10 minutes. From 5 minutes of exercise we would be identify a security. Minor phases can be scored as a short-term sleep disruption. Thus would be clearly identified on the growing point. Similarly, we see that at this time the light sensor to swing back. This theory is confirmed by the accounts of the Fitbit signal. Then from the first activity decreases again about an hour. In this cell phone is obviously not worn on the body. Since we do not take our phone with the shower, we think that this will be quite normal. Then will see the same activities as strong at the beginning of the diagram. As we just stated, it is very possible to find out the sleep time using the phone data. Certainly, we have made a very large division of the data. However, one must keep in mind that we have served two sensors alone. On the other charts I have analyzed, has issued the lord for me these two sensors usually are enough for an acceptable to good result. This finding makes the burden on the battery and CPU can be significantly reduced. As well as the resulting data flow. With 3 sensors,we decided for the maximum. During acceleration and magnetic field sensor but we were looking for the standard deviation. So we could map the three axes to a value. And was able to circumvent the problem of the acceleration of gravity. Which permanently with about 9.81m/s 2 acting on the sensor. But this does not refer to a axle but distributed on all three axes More Data If one has more available sensors as there is some evidence certain sensors may be used. The sensor network gives us a little more improvement to make a statement if someone is sleeping. Since most people have wireless home and sleep mostly home, tantamount increases the chance that someone is sleeping. As already described, the signal can be picked up if the phone is charging. As a Plugged phone is not very mobile this is usually done during sleep. So here increases the chance that the person sleeps when it is plugged. This behaves the same way with the airplane mode. To Vedas not disturbed at night activate a part of the people s airplane mode. So here increases the chance that sleeps the person. That can be taken even further. Because this also applies to mobile phones switched off completely. This is usefully made over several hours if you do not want to be bothered or just want to sleep in peace. 37
38 6 Data Analysis 38 (a) Figure 6.1: Recording over 24 hours of a mobile phone
39 6.4 Data Analysis (b) 39
40
41 7 Conclusion Finally we can say that in this area is still much work to make. Through the research we have done, we have not really found much information. Information is visible in the maximum result of some products. This, however, give out no information about their calculations, understandably. So we am assuming that here a lot of potential is far from exhausted. For we find out when someone is sleeping only scratches the surface of what these data tell us everything. We also have the GPS sensor for privacy reasons completely left out. This would increase the possibilities of the use of the data by a multiple. But here is a caution to permanently get GPS signal is almost impossible. Through GPS, the battery life to about 1/5th. If somebody try s to make a similar project with more success. It s necessary to fix this bit gap problem at the recording time. 41
42
43 Bibliography [1] andorid.com system nanotime. lang/system.html. [2] Android 4.2 r1. java/ext/com.google.android/android/4.2.2_r1/. [3] android.com intent. content/intent.h. [4] Fitbit api. 59FE43DB386815A07B23FC002B7CF45F. [5] Fitbit resource access api. Resource+Access+API. [6] Jawbone up api. [7] Withings api. 43
44
45 Bibliography Decleration I hereby declare that the work presented in this thesis is entirely my own and that I did not use any other sources and references than the listed ones. I have marked all direct or indirect statements from other sources contained therein as quotations. Neither this work nor significant parts of it were part of another examination procedure. I have not published this work in whole or in part before. The electronic copy is consistent with all submitted copies. place, date, signature 45
Android Sensors. XI Jornadas SLCENT de Actualización Informática y Electrónica
Android Sensors XI Jornadas SLCENT de Actualización Informática y Electrónica About me José Juan Sánchez Hernández Android Developer (In my spare time :) Member and collaborator of: - Android Almería Developer
Android Sensors. CPRE 388 Fall 2015 Iowa State University
Android Sensors CPRE 388 Fall 2015 Iowa State University What are sensors? Sense and measure physical and ambient conditions of the device and/or environment Measure motion, touch pressure, orientation,
ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II)
Sensor Overview ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II) Lecture 5: Sensor and Game Development Most Android-powered devices have built-in sensors that measure motion, orientation,
Using the Android Sensor API
Using the Android Sensor API Juan José Marrón Department of Computer Science & Engineering [email protected] # Outline Sensors description: - Motion Sensors - Environmental Sensors - Positioning Sensors
CS 403X Mobile and Ubiquitous Computing Lecture 6: Maps, Sensors, Widget Catalog and Presentations Emmanuel Agu
CS 403X Mobile and Ubiquitous Computing Lecture 6: Maps, Sensors, Widget Catalog and Presentations Emmanuel Agu Using Maps Introducing MapView and Map Activity MapView: UI widget that displays maps MapActivity:
Sensors & Motion Sensors in Android platform. Minh H Dang CS286 Spring 2013
Sensors & Motion Sensors in Android platform Minh H Dang CS286 Spring 2013 Sensors The Android platform supports three categories of sensors: Motion sensors: measure acceleration forces and rotational
06 Team Project: Android Development Crash Course; Project Introduction
M. Kranz, P. Lindemann, A. Riener 340.301 UE Principles of Interaction, 2014S 06 Team Project: Android Development Crash Course; Project Introduction April 11, 2014 Priv.-Doz. Dipl.-Ing. Dr. Andreas Riener
Getting Started... 1. What s included... 1. Setting up Fitbit One on a computer... 2. Mac & PC Requirements... 2
User Manual Table of Contents Getting Started... 1 What s included... 1 Setting up Fitbit One on a computer... 2 Mac & PC Requirements... 2 Installing Fitbit Connect on a computer... 2 Installing Fitbit
E0-245: ASP. Lecture 16+17: Physical Sensors. Dipanjan Gope
E0-245: ASP Lecture 16+17: Physical Sensors Module 2: Android Sensor Applications Location Sensors - Theory of location sensing - Package android.location Physical Sensors - Sensor Manager - Accelerometer
Objective. Android Sensors. Sensor Manager Sensor Types Examples. Page 2
Android Sensors Objective Android Sensors Sensor Manager Sensor Types Examples Page 2 Android.hardware Support for Hardware classes with some interfaces Camera: used to set image capture settings, start/stop
! Sensors in Android devices. ! Motion sensors. ! Accelerometer. ! Gyroscope. ! Supports various sensor related tasks
CSC 472 / 372 Mobile Application Development for Android Prof. Xiaoping Jia School of Computing, CDM DePaul University [email protected] @DePaulSWEng Outline Sensors in Android devices Motion sensors
INSTRUCTION MANUAL Neo Coolcam IP Camera
INSTRUCTION MANUAL Neo Coolcam IP Camera Revised: June 28, 2013 Thank you for purchasing from SafetyBasement.com! We appreciate your business. We made this simple manual to help you enjoy your new product
User's Guide. [Home Network] app. Model No.
User's Guide [Home Network] app Model No. Table of Contents Table of Contents 1 Welcome to the Panasonic Home Network System!...5 1.1 What is the Panasonic Home Network System?...5 1.2 What can I use it
Troubleshooting / FAQ
Troubleshooting / FAQ Routers / Firewalls I can't connect to my server from outside of my internal network. The server's IP is 10.0.1.23, but I can't use that IP from a friend's computer. How do I get
CHAPTER 2: USING THE CAMERA WITH THE APP
TABLE OF CONTENTS OVERVIEW... 1 Front of your camera... 1 Back of your camera... 2 ACCESSORIES... 3 CHAPTER 1: Navigating the Mobile Application... 4 Device List: How to Use this Page... 4 My Messages:
Precise innovation presents: USer manual
Precise innovation presents: USer manual Let the FUn Begin! The goal of Caref is simple to give parents greater peace of mind and children a greater sense of freedom when they should be focusing as much
Obsoleted chapter from The Busy Coder's Guide to Advanced Android Development
CHAPTER 13 "" is Android's overall term for ways that Android can detect elements of the physical world around it, from magnetic flux to the movement of the device. Not all devices will have all possible
Android Geek Night. Application framework
Android Geek Night Application framework Agenda 1. Presentation 1. Trifork 2. JAOO 2010 2. Google Android headlines 3. Introduction to an Android application 4. New project using ADT 5. Main building blocks
Point of View ProTab 3XXL IPS - Android 4.0 Tablet PC. Contents... 1 General notices for use... 2 Disclaimer... 2 Box Contents...
Point of View ProTab 3XXL IPS - Android 4.0 Tablet PC English Contents Contents... 1 General notices for use... 2 Disclaimer... 2 Box Contents... 2 1.0 Product basics... 3 1.1 Buttons and connections...
Using Sensors on the Android Platform. Andreas Terzis Android N00b
Using Sensors on the Android Platform Andreas Terzis Android N00b Hardware-oriented Features Feature Camera Sensor SensorManager SensorEventListener SensorEvent GeoMagneticField Description A class that
Android Sensor Programming. Weihong Yu
Android Sensor Programming Weihong Yu Sensors Overview The Android platform is ideal for creating innovative applications through the use of sensors. These built-in sensors measure motion, orientation,
How To Backup Your Computer With A Remote Drive Client On A Pc Or Macbook Or Macintosh (For Macintosh) On A Macbook (For Pc Or Ipa) On An Uniden (For Ipa Or Mac Macbook) On
Remote Drive PC Client software User Guide -Page 1 of 27- PRIVACY, SECURITY AND PROPRIETARY RIGHTS NOTICE: The Remote Drive PC Client software is third party software that you can use to upload your files
USB Edition TM-STD30 User Guide
USB Edition TM-STD30 User Guide 1 Rev 4.0.8 http://www.temperaturealert.com/ 2012 Temperature@lert User Guide Thank you for choosing Temperature@lert. The USB Edition monitors the ambient temperature and
ELET4133: Embedded Systems. Topic 15 Sensors
ELET4133: Embedded Systems Topic 15 Sensors Agenda What is a sensor? Different types of sensors Detecting sensors Example application of the accelerometer 2 What is a sensor? Piece of hardware that collects
WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide
WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide Version 2.1, 4/2010 Disclaimer While every effort has been made to ensure that the information in this guide is accurate
GS-SL2X00 Series. GS-WTX00 Series. Enterprise Android Barcode Device. User Manual
GS-SL2X00 Series GS-WTX00 Series Enterprise Android Barcode Device User Manual Version:1.0 1 / 50 2 / 50 1. Introduction GS-SL2000 Enterprise Android Barcode Sled is designed for Samsung Galaxy Trend Duos
DETERMINATION OF THE PERFORMANCE
DETERMINATION OF THE PERFORMANCE OF ANDROID ANTI-MALWARE SCANNERS AV-TEST GmbH Klewitzstr. 7 39112 Magdeburg Germany www.av-test.org 1 CONTENT Determination of the Performance of Android Anti-Malware Scanners...
mysensors mysensors Wireless Sensors and Ethernet Gateway Quick Start Guide Information to Users Inside the Box mysensors Ethernet Gateway Quick Start
mysensors Information to Users mysensors Wireless Sensors and Ethernet Gateway Quick Start Guide This equipment has been tested and found to comply with the limits for a Class B digital devices, pursuant
StruxureWare Data Center Expert 7.2.4 Release Notes
StruxureWare Data Center Expert 7.2.4 Release Notes Table of Contents Page # Part Numbers Affected...... 1 Minimum System Requirements... 1 New Features........ 1 Issues Fixed....3 Known Issues...3 Upgrade
SYSTEM COMPONENTS. Gateway. Sensors. Repeater. 1-701-475-2361 1-888-475-2361 www.bekspyder.com. Figure 1
Welcome to BEK SpyderProtect! This quick start guide is designed to give you a basic overview of the system, and help you get the most out of your home automation, monitoring, and alerts experience. For
How to Use Motion Detection in ACTi Cameras
ACTi Knowledge Base Category: Installation & Configuration Note Sub-category: Application Model: All Firmware: N/A Software: N/A Author: Ando.Meritee Published: 2010/11/19 Reviewed: 2011/03/02 How to Use
How To Use 1Bay 1Bay From Awn.Net On A Pc Or Mac Or Ipad (For Pc Or Ipa) With A Network Box (For Mac) With An Ipad Or Ipod (For Ipad) With The
1-bay NAS User Guide INDEX Index... 1 Log in... 2 Basic - Quick Setup... 3 Wizard... 3 Add User... 6 Add Group... 7 Add Share... 9 Control Panel... 11 Control Panel - User and groups... 12 Group Management...
Mobility with Eye-Fi Scanning Guide
Mobility with Eye-Fi Scanning Guide Scan and Transfer Images Wirelessly with Eye-Fi This document is to be used in addition to the scanner s user guide located on the installation disc. The instructions
ON-GUARD. Guard Management System. Table of contents : Introduction Page 2. Programming Guide Page 5. Frequently asked questions Page 25 - 1 -
ON-GUARD Guard Management System Table of contents : Introduction Page 2 Programming Guide Page 5 Frequently asked questions Page 25-1 - Introduction On Guard tm is designed to exceed all the requirements
WEARIT DEVELOPER DOCUMENTATION 0.2 preliminary release July 20 th, 2013
WEARIT DEVELOPER DOCUMENTATION 0.2 preliminary release July 20 th, 2013 The informations contained in this document are subject to change without notice and should not be construed as a commitment by Si14
How To Test The Bandwidth Meter For Hyperv On Windows V2.4.2.2 (Windows) On A Hyperv Server (Windows V2) On An Uniden V2 (Amd64) Or V2A (Windows 2
BANDWIDTH METER FOR HYPER-V NEW FEATURES OF 2.0 The Bandwidth Meter is an active application now, not just a passive observer. It can send email notifications if some bandwidth threshold reached, run scripts
Module 1: Sensor Data Acquisition and Processing in Android
Module 1: Sensor Data Acquisition and Processing in Android 1 Summary This module s goal is to familiarize students with acquiring data from sensors in Android, and processing it to filter noise and to
mysensors mysensors Wireless Sensors and and Cellular Gateway Quick Start Guide Information to Users Inside the Box
mysensors mysensors Wireless Sensors and and Cellular Gateway Quick Start Guide Information to Users The mysensors wireless products referenced in this Quick Start Guide have been tested to comply with
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
The easy way to accept EFTPOS, Visa and MasterCard payments on the spot. Mobile Users... 2. Charging your PayClip. 2. Downloading the PayClip app.
PayClip User Guide The easy way to accept EFTPOS, Visa and MasterCard payments on the spot. Contents Getting started made easy 2 Information for Merchants....................................................2
Names of Parts. English 1. Mic. Record Button. Status Indicator Micro SD Card Slot Speaker Micro USB Port Strap Hook
User Manual Names of Parts Record Button Mic Status Indicator Micro SD Card Slot Speaker Micro USB Port Strap Hook Video Mode Photo Mode Local Mode Cloud Mode Mode Button Power Button Tripod Mount Clip
Fitness Motion Recognition
Fitness Motion Recognition with Android Wear Edward Dale Freeletics Edward Dale, 2015 1 http://www.someecards.com/usercards/viewcard/mjaxmy1hmjiwmwuzmtc4ndgyota1 Edward Dale, 2015 2 Agenda Define scope
MobileLite Wireless G2 5-in-1 Mobile Companion User Manual
MobileLite Wireless G2 5-in-1 Mobile Companion User Manual Document No. 480-MLWG2-021315.A00 Kingston MobileLite Wireless Page 1 of 21 Table of Contents Introduction... 3 What s Included:... 3 Getting
StruxureWare Data Center Expert 7.2.1 Release Notes
StruxureWare Data Center Expert 7.2.1 Release Notes Table of Contents Page # Part Numbers Affected...... 1 Minimum System Requirements... 1 New Features........ 1 Issues Fixed....2 Known Issues...2 Upgrade
How to develop your own app
How to develop your own app It s important that everything on the hardware side and also on the software side of our Android-to-serial converter should be as simple as possible. We have the advantage that
Super Manager User Manual. English v1.0.3 2011/06/15 Copyright by GPC Http://gpc.myweb.hinet.net
Super Manager User Manual English v1.0.3 2011/06/15 Copyright by GPC Http://gpc.myweb.hinet.net How to launch Super Manager? Click the Super Manager in Launcher or add a widget into your Launcher (Home
Interactive Reporting Emailer Manual
Brief Overview of the IR Emailer The Interactive Reporting Emailer allows a user to schedule their favorites to be emailed to them on a regular basis. It accomplishes this by running once per day and sending
WAMLocal. Wireless Asset Monitoring - Local Food Safety Software. Software Installation and User Guide BA/WAM-L-F
Wireless Asset Monitoring - Local Food Safety Software BA/WAM-L-F Software Installation and User Guide System Overview The BAPI Wireless Asset Monitoring Local (WAM Local) Software receives temperature
Firmware version: 1.10 Issue: 7 AUTODIALER GD30.2. Instruction Manual
Firmware version: 1.10 Issue: 7 AUTODIALER GD30.2 Instruction Manual Firmware version: 2.0.1 Issue: 0.6 Version of the GPRS transmitters configurator: 1.3.6.3 Date of issue: 07.03.2012 TABLE OF CONTENTS
4310/4320 Wireless Position Monitor Burst Configuration and Diagnostics
Instruction Manual Supplement 4310/4320 Wireless Position Monitor 4310/4320 Wireless Position Monitor Burst Configuration and Diagnostics This document applies to: Fisher 4320 Device Type 1308 (hex) 4872
Semester Thesis Traffic Monitoring in Sensor Networks
Semester Thesis Traffic Monitoring in Sensor Networks Raphael Schmid Departments of Computer Science and Information Technology and Electrical Engineering, ETH Zurich Summer Term 2006 Supervisors: Nicolas
Monitoring Network DMN
Monitoring Network DMN User Manual Table of contents Table of contents... 2 1. Product features and capabilities... 3 2. System requirements... 5 3. Getting started with the software... 5 3-1 Installation...
TestNav 8 User Guide for PARCC
TestNav 8 User Guide for PARCC Copyright 2014, Pearson Education, Inc. Published March 6, 2014 TestNav 8 User Guide for PARCC 1 TestNav 8 User Guide for PARCC Revision History What is TestNav? Technical
SE05: Getting Started with Cognex DataMan Bar Code Readers - Hands On Lab Werner Solution Expo April 8 & 9
SE05: Getting Started with Cognex DataMan Bar Code Readers - Hands On Lab Werner Solution Expo April 8 & 9 Learning Goals: At the end of this lab, the student should have basic familiarity with the DataMan
Use the 12 digit serial numbers on your Ethernet Tag Manager to create a login. Keep the serial number in a safe place.
Web/Android App User Manual For Android devices, install our Android app from Google Play by searching "WirelessTag", follow this direct link, or download the APK file directly. For web access on PC/Mac,
Sensors and Cellphones
Sensors and Cellphones What is a sensor? A converter that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument What are some sensors we use every
tattletale User Guide Consumer unit version 2.48 1 P a g e
tattletale User Guide Consumer unit version 2.48 1 P a g e Contents Basic 1... 4 Base Unit Features... 4 Initial Setup... 4 Arming... 5 Disarming... 5 Quiet Button... 5 Settings... 5 Settings 2... 6 Quick
Introduction. How does FTP work?
Introduction The µtasker supports an optional single user FTP. This operates always in active FTP mode and optionally in passive FTP mode. The basic idea of using FTP is not as a data server where a multitude
Android Programming Lecture 18: Menus Sensors 11/11/2011
Android Programming Lecture 18: Menus Sensors 11/11/2011 Simple Menu Example Submenu Example Sensors and Actuators Sensors Sensors provide information about the device and its environment Will ignore camera
Android OS Mobile Dialer Application Manual. Make low cost Internet calls from Android Smartphone or Tablet
Android OS Mobile Dialer Application Manual Make low cost Internet calls from Android Smartphone or Tablet Android Mobile Dialer Application 1. Introduction... 2 2. Signup... 3 3. Download & Setup... 5
Table of Contents. OpenDrive Drive 2. Installation 4 Standard Installation Unattended Installation
User Guide for OpenDrive Application v1.6.0.4 for MS Windows Platform 20150430 April 2015 Table of Contents Installation 4 Standard Installation Unattended Installation Installation (cont.) 5 Unattended
LICENSE4J FLOATING LICENSE SERVER USER GUIDE
LICENSE4J FLOATING LICENSE SERVER USER GUIDE VERSION 4.5.5 LICENSE4J www.license4j.com Table of Contents Getting Started... 2 Floating License Usage... 2 Installation... 4 Windows Installation... 4 Linux
Tool for Automated Provisioning System (TAPS) Version 1.2 (1027)
Tool for Automated Provisioning System (TAPS) Version 1.2 (1027) 2015 VoIP Integration Rev. July 24, 2015 Table of Contents Product Overview... 3 Application Requirements... 3 Cisco Unified Communications
This section will focus on basic operation of the interface including pan/tilt, video, audio, etc.
Catalogue Basic Operation... 2 For Internet Explorer... 2 For Other Non-IE Web Browsers... 5 Camera Settings... 6 System... 6 About... 6 PT Setting... 7 Backup and Restore Setup... 8 NTP Setting... 8 System
The Power Loader GUI
The Power Loader GUI (212) 405.1010 [email protected] Follow: @1010data www.1010data.com The Power Loader GUI Contents 2 Contents Pre-Load To-Do List... 3 Login to Power Loader... 4 Upload Data Files to
Shipbeat Magento Module. Installation and user guide
Shipbeat Magento Module Installation and user guide This guide explains how the Shipbeat Magento Module is installed, used and uninstalled from your Magento Community Store. If you have questions or need
Advanced User s Guide
Advanced User s Guide MFC-8950DW MFC-8950DWT Not all models are available in all countries. Version 0 USA/CAN User's Guides and where do I find them? Which Guide? What's in it? Where is it? Product Safety
ViewPower. User s Manual. Management Software for Uninterruptible Power Supply Systems
ViewPower User s Manual Management Software for Uninterruptible Power Supply Systems Table of Contents 1. ViewPower Overview... 2 1.1. Introduction...2 1.2. Structure...2 1.3. Applications...2 1.4. Features...2
Final Year Project Interim Report
2013 Final Year Project Interim Report FYP12016 AirCrypt The Secure File Sharing Platform for Everyone Supervisors: Dr. L.C.K. Hui Dr. H.Y. Chung Students: Fong Chun Sing (2010170994) Leung Sui Lun (2010580058)
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown GO!Enterprise MDM for Android, Version 3.x GO!Enterprise MDM for Android with TouchDown 1 Table
Point of View Mobii 925 - Android 4.2 Tablet PC. General notices for use... 2 Disclaimer... 2 Box Contents... 2
Table of Contents General notices for use... 2 Disclaimer... 2 Box Contents... 2 1.0 Product basics... 3 1.1 Buttons and connections... 3 1.2 Start up and shut down... 3 2.0 Introduction to Google Android
Call Recorder Oygo Manual. Version 1.001.11
Call Recorder Oygo Manual Version 1.001.11 Contents 1 Introduction...4 2 Getting started...5 2.1 Hardware installation...5 2.2 Software installation...6 2.2.1 Software configuration... 7 3 Options menu...8
Google Cloud Print Administrator Configuration Guide
Google Cloud Print Administrator Configuration Guide 1 December, 2014 Advanced Customer Technologies Ricoh AMERICAS Holdings, Inc. Table of Contents Scope and Purpose... 4 Overview... 4 System Requirements...
UM8000 MAIL USER GUIDE
UM8000 MAIL USER GUIDE INT-2076 (UNIV) Issue 1.0 INTRODUCTION Welcome to UM8000 Mail User Guide. The UM8000 Mail is a simple yet powerful voice messaging system that can greet your callers and record your
SwannEye HD Plug & Play Wi-Fi Security Camera Quick Start Guide Welcome! Lets get started.
EN SwannEye HD Plug & Play Wi-Fi Security Camera Quick Start Guide Welcome! Lets get started. QHADS453080414E Swann 2014 1 1 Introduction Congratulations on your purchase of this SwannEye HD Plug & Play
User Guide. Version 3.0 April 2006
User Guide Version 3.0 April 2006 2006 Obvious Solutions Inc. All rights reserved. Dabra and Dabra Network are trademarks of Obvious Solutions Inc. All other trademarks owned by their respective trademark
TouchBase Pro. Users Guide
TouchBase Pro Automated Emailing System Users Guide Z-Micro Technologies, Inc. Copyright 2005. Z-Micro Technologies, Inc. All Rights Reserved 2 Table of Contents Chapter 1: Overview & Installation Features
ImagineWorldClient Client Management Software. User s Manual. (Revision-2)
ImagineWorldClient Client Management Software User s Manual (Revision-2) (888) 379-2666 US Toll Free (905) 336-9665 Phone (905) 336-9662 Fax www.videotransmitters.com 1 Contents 1. CMS SOFTWARE FEATURES...4
Konica Minolta s Optimised Print Services (OPS)
Konica Minolta s Optimised Print Services (OPS) Document Collection Agent (DCA) Detailed Installation Guide V1.6 Page 1 of 43 Table of Contents Notes... 4 Requirements... 5 Network requirements... 5 System
Background Deployment 3.1 (1003) Installation and Administration Guide
Background Deployment 3.1 (1003) Installation and Administration Guide 2010 VoIP Integration March 14, 2011 Table of Contents Product Overview... 3 Personalization... 3 Key Press... 3 Requirements... 4
Mobile credit & debit card acceptance for your Smart Phone or Tablet. MobilePAY Shuttle
Mobile credit & debit card acceptance for your Smart Phone or Tablet MobilePAY Shuttle User Information Record your Merchant Account and other useful information here. From time to time, you may need quick
Operating Instructions. Telephone System tiptel 1/8 fax clip tiptel 2/8 clip. (Release 2) tiptel
Operating Instructions (UK) Telephone System tiptel 1/8 fax clip tiptel 2/8 clip (Release 2) tiptel Table of Contents Connection of 8 extensions..........3 Connection of 7 extensions and 1 door intercom................4
IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016. Integration Guide IBM
IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016 Integration Guide IBM Note Before using this information and the product it supports, read the information
1. Introduction... 3. 2.Fixture exterior view... 3. 3. Connecting the Robe Universal Interface... 4. 3.1 Software update of the fixture...
1 Table of contests 1. Introduction... 3 2.Fixture exterior view... 3 3. Connecting the Robe Universal Interface... 4 3.1 Software update of the fixture... 4 3.2 Connecting a DMX console to the Media Fusion...
Hosted VoIP Phone System. Admin Portal User Guide for. Call Center Administration
Hosted VoIP Phone System Admin Portal User Guide for Call Center Administration Contents Table of Figures... 4 1 About this Guide... 6 2 Accessing the Hosted VoIP Phone System Administration Portal...
PART 1 CONFIGURATION 1.1 Installing Dashboard Software Dashboardxxx.exe Administration Rights Prerequisite Wizard
Omega Dashboard 1 PART 1 CONFIGURATION 1.1 Installing Dashboard Software Find the Dashboardxxx.exe in the accompanying CD or on the web. Double click that to install it. The setup process is typical to
Grid-In-Hand Mobile Grid Revised 1/27/15
Grid-In-Hand Mobile Grid Revised 1/27/15 Grid-In-Hand provides a mobile solution framework by coupling your mobile scanner to your ios or Android device. Use Mobile Grid for inventory, asset management,
Watch Your Garden Grow
Watch Your Garden Grow The Brinno GardenWatchCam is a low cost, light weight, weather resistant, battery operated time-lapse camera that captures the entire lifecycle of any garden season by taking photos
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul [email protected] Overview Brief introduction to Body Sensor Networks BSN Hardware
The following pages will help you to solve issues linked to the installation and first use of the Wintech Manager software and Wintech USB computer.
WINTECH MANAGER FAQ The purpose of this document is not to replace the complete user guide delivered on the Wintech Manager s CD. Most of the common question you may have about the use of the Wintech Manager
The Social Accelerator Setup Guide
The Social Accelerator Setup Guide Welcome! Welcome to the Social Accelerator setup guide. This guide covers 2 ways to setup SA. Most likely, you will want to use the easy setup wizard. In that case, you
Advanced User s Guide
Advanced User s Guide FAX-2840 FAX-2940 MFC-7240 Not all models are available in all countries. Version 0 USA/CAN User s Guides and where do I find them? Which Guide? What s in it? Where is it? Product
Cofred Automated Payments Interface (API) Guide
Cofred Automated Payments Interface (API) Guide For use by Cofred Merchants. This guide describes how to connect to the Automated Payments Interface (API) www.cofred.com Version 1.0 Copyright 2015. Cofred.
Android Development Tutorial. Nikhil Yadav CSE40816/60816 - Pervasive Health Fall 2011
Android Development Tutorial Nikhil Yadav CSE40816/60816 - Pervasive Health Fall 2011 Database connections Local SQLite and remote access Outline Setting up the Android Development Environment (Windows)
Lizard Standalone Mode Guide Version 1.0:
Lizard Standalone Mode Guide Version 1.0: SECTION 1. DESCRIPTION The standalone Mode in Lizard will allow you go totally on the road, without having to carry a computer with you. The wiring for it its
How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip
Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided
