Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F60557629
Monitor.java
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, May 1, 02:17
Size
4 KB
Mime Type
text/x-java
Expires
Fri, May 3, 02:17 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
17373742
Attached To
R9555 Android app for multimodal data acquisition from wearables
Monitor.java
View Options
package
ch.epfl.esl.elevatedmonitor
;
import
android.app.Service
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.ServiceConnection
;
import
android.graphics.Color
;
import
android.os.Handler
;
import
android.os.IBinder
;
import
com.jjoe64.graphview.series.DataPoint
;
import
com.jjoe64.graphview.series.LineGraphSeries
;
import
java.util.ArrayList
;
import
ch.epfl.esl.elevatedmonitor.SuperClasses.Data
;
import
ch.epfl.esl.elevatedmonitor.SuperClasses.Device
;
import
ch.epfl.esl.elevatedmonitor.SuperClasses.SensorDevice
;
public
class
Monitor
{
private
final
int
WINDOW_TIME
=
10
;
private
Runnable
mTimer
;
private
Double
time
=
0.0
;
private
long
delay
=
0
;
private
int
maxDataPoints
=
0
;
private
final
Handler
mHandler
=
new
Handler
();
private
Device
monitoredDevice
=
null
;
private
SensorDevice
monitoredSensor
=
null
;
private
Context
mContext
;
private
Boolean
bound
;
private
ArrayList
<
LineGraphSeries
<
DataPoint
>>
series
=
new
ArrayList
<>();
Service
sensorService
=
null
;
public
Monitor
(
Device
monitoredDevice
,
SensorDevice
monitoredSensor
,
Context
mContext
)
{
setContext
(
mContext
);
setMonitoredDevice
(
monitoredDevice
);
setMonitoredSensor
(
monitoredSensor
);
setDelay
((
long
)
100.0
);
setMaxDataPoints
();
setSeries
();
//--- Set timer
time
=
0.0
;
mTimer
=
new
Runnable
()
{
@Override
public
void
run
()
{
updateSeries
();
time
+=
((
double
)
delay
/
1000.0
);
mHandler
.
postDelayed
(
this
,
delay
);
}
};
mHandler
.
postDelayed
(
mTimer
,
delay
);
}
private
void
setMaxDataPoints
()
{
this
.
maxDataPoints
=
(
int
)
((
WINDOW_TIME
*
1000
)
/
delay
);
}
private
void
setDelay
(
long
delay
)
{
this
.
delay
=
delay
;
}
private
void
setSeries
()
{
int
position
=
0
;
series
.
clear
();
for
(
Data
data
:
monitoredSensor
.
getAllData
())
{
series
.
add
(
new
LineGraphSeries
<>());
series
.
get
(
position
).
setColor
(
getColor
(
position
));
position
++;
}
updateSeries
();
}
private
int
getColor
(
int
position
)
{
int
color
;
position
=
position
%
7
;
switch
(
position
)
{
case
0
:
color
=
Color
.
BLUE
;
break
;
case
1
:
color
=
Color
.
RED
;
break
;
case
2
:
color
=
Color
.
GREEN
;
break
;
case
3
:
color
=
Color
.
YELLOW
;
break
;
case
4
:
color
=
Color
.
CYAN
;
break
;
case
5
:
color
=
Color
.
MAGENTA
;
break
;
case
6
:
color
=
Color
.
GRAY
;
break
;
default
:
color
=
Color
.
BLUE
;
}
return
color
;
}
private
void
updateSeries
()
{
int
position
=
0
;
for
(
Data
data
:
monitoredSensor
.
getAllData
())
{
LineGraphSeries
<
DataPoint
>
serie
=
series
.
get
(
position
);
serie
.
appendData
(
new
DataPoint
(
this
.
time
,
data
.
alwaysGet
()),
true
,
maxDataPoints
);
position
++;
}
}
private
void
setContext
(
Context
context
)
{
this
.
mContext
=
context
;
}
private
void
setMonitoredSensor
(
SensorDevice
monitoredSensor
)
{
this
.
monitoredSensor
=
monitoredSensor
;
}
private
void
setMonitoredDevice
(
Device
monitoredDevice
)
{
this
.
monitoredDevice
=
monitoredDevice
;
}
Device
getMonitoredDevice
()
{
return
this
.
monitoredDevice
;
}
SensorDevice
getMonitoredSensor
()
{
// mContext.bindService(intent, DeviceServiceConnection , Context.BIND_AUTO_CREATE);
return
this
.
monitoredSensor
;
}
public
ArrayList
<
LineGraphSeries
<
DataPoint
>>
getSeries
()
{
return
this
.
series
;
}
private
class
DeviceServiceConnection
implements
ServiceConnection
{
@Override
public
void
onServiceConnected
(
ComponentName
className
,
IBinder
service
)
{
// We've bound to LocalService, cast the IBinder and get LocalService instance
//sensorService = service.getService();
bound
=
true
;
}
@Override
public
void
onServiceDisconnected
(
ComponentName
arg0
)
{
bound
=
false
;
}
}
}
Event Timeline
Log In to Comment