Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
fpbuilder_ble
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jaehyu
fpbuilder_ble
Commits
37b9dc06
Commit
37b9dc06
authored
Dec 04, 2016
by
jaehyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
many improvements .
parent
a491953f
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
104 additions
and
58 deletions
+104
-58
src/main/java/com/skt/ehs/mbs/db/maria/dao/FPBLEBuildDAO.java
...main/java/com/skt/ehs/mbs/db/maria/dao/FPBLEBuildDAO.java
+3
-1
src/main/java/com/skt/ehs/mbs/fpbuilder/BLEFPBuilder.java
src/main/java/com/skt/ehs/mbs/fpbuilder/BLEFPBuilder.java
+69
-47
src/main/java/com/skt/ehs/mbs/fpbuilder/Floor.java
src/main/java/com/skt/ehs/mbs/fpbuilder/Floor.java
+2
-0
src/main/java/com/skt/ehs/mbs/fpbuilder/_ble_indicator.java
src/main/java/com/skt/ehs/mbs/fpbuilder/_ble_indicator.java
+10
-2
src/main/resources/db/maria/mapper/FPBLEBuildMapper.xml
src/main/resources/db/maria/mapper/FPBLEBuildMapper.xml
+20
-8
No files found.
src/main/java/com/skt/ehs/mbs/db/maria/dao/FPBLEBuildDAO.java
View file @
37b9dc06
...
@@ -16,6 +16,8 @@ public interface FPBLEBuildDAO {
...
@@ -16,6 +16,8 @@ public interface FPBLEBuildDAO {
public
double
selectScalePixel
(
HashMap
<
String
,
Integer
>
params
);
public
double
selectScalePixel
(
HashMap
<
String
,
Integer
>
params
);
// List<_ble_indicator> selectAPinCoordiwDir(@Param("lower_rssi_dir")int lower_rssi_dir, @Param("upper_rssi_dir")int upper_rssi_dir, @Param("position_x1")int position_x1 , @Param("position_y1")int position_y1, @Param("position_x2")int position_x2, @Param("position_y2")int position_y2);
// List<_ble_indicator> selectAPinCoordiwDir(@Param("lower_rssi_dir")int lower_rssi_dir, @Param("upper_rssi_dir")int upper_rssi_dir, @Param("position_x1")int position_x1 , @Param("position_y1")int position_y1, @Param("position_x2")int position_x2, @Param("position_y2")int position_y2);
// below is for binding-test
// below is for binding-test
List
<
_ble_indicator
>
selectAPinCoordiwDir
(
@Param
(
"lower_rssi_dir"
)
int
lower_rssi_dir
,
@Param
(
"upper_rssi_dir"
)
int
upper_rssi_dir
);
List
<
_ble_indicator
>
selectAPinCoordiwDir
(
@Param
(
"lower_rssi_dir"
)
int
lower_rssi_dir
,
@Param
(
"upper_rssi_dir"
)
int
upper_rssi_dir
,
@Param
(
"ble_cell_coordi_x1"
)
int
ble_cell_coordi_x1
,
@Param
(
"ble_cell_coordi_y1"
)
int
ble_cell_coordi_y1
,
@Param
(
"ble_cell_coordi_x2"
)
int
ble_cell_coordi_x2
,
@Param
(
"ble_cell_coordi_y2"
)
int
ble_cell_coordi_y2
);
}
}
\ No newline at end of file
src/main/java/com/skt/ehs/mbs/fpbuilder/BLEFPBuilder.java
View file @
37b9dc06
...
@@ -3,12 +3,10 @@ package com.skt.ehs.mbs.fpbuilder;
...
@@ -3,12 +3,10 @@ package com.skt.ehs.mbs.fpbuilder;
import
com.skt.ehs.mbs.db.maria.DBManager
;
import
com.skt.ehs.mbs.db.maria.DBManager
;
import
com.skt.ehs.mbs.db.maria.MariaConnectionManager
;
import
com.skt.ehs.mbs.db.maria.MariaConnectionManager
;
import
com.skt.ehs.mbs.db.maria.dao.FPBLEBuildDAO
;
import
com.skt.ehs.mbs.db.maria.dao.FPBLEBuildDAO
;
import
com.sun.java.swing.plaf.windows.WindowsTreeUI
;
import
org.apache.ibatis.session.SqlSession
;
import
org.apache.ibatis.session.SqlSession
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
public
class
BLEFPBuilder
{
public
class
BLEFPBuilder
{
...
@@ -75,30 +73,43 @@ public class BLEFPBuilder {
...
@@ -75,30 +73,43 @@ public class BLEFPBuilder {
MariaConnectionManager
mngr
=
MariaConnectionManager
.
getInstance
();
MariaConnectionManager
mngr
=
MariaConnectionManager
.
getInstance
();
List
<
_ble_indicator
>
ret
=
Collections
.
emptyList
();
List
<
_ble_indicator
>
ret
=
Collections
.
emptyList
();
System
.
out
.
printf
(
"( d1, d2, x1, y1, x2, y2)=( %10d, %10d, %10d, %10d, %10d, %10d )"
,
d1
,
d2
,
x1
,
y1
,
x2
,
y2
);
System
.
out
.
println
();
try
(
SqlSession
session
=
mngr
.
getSqlSessionFactory
().
openSession
())
{
try
(
SqlSession
session
=
mngr
.
getSqlSessionFactory
().
openSession
())
{
FPBLEBuildDAO
mapper
=
session
.
getMapper
(
FPBLEBuildDAO
.
class
);
FPBLEBuildDAO
mapper
=
session
.
getMapper
(
FPBLEBuildDAO
.
class
);
ret
=
mapper
.
selectAPinCoordiwDir
(
d1
,
d2
,
x1
,
y1
,
x2
,
y2
);
// Todo regarding to given rssi_dir & cell_coordi, select <tagid, seq, time> records
// Todo select AP regarding to above <tagid, seq, time> records as per A record.
// below is for binding-test
int
lower_rssi_dir
=
d1
;
int
upper_rssi_dir
=
d2
;
ret
=
mapper
.
selectAPinCoordiwDir
(
lower_rssi_dir
,
upper_rssi_dir
);
//ret = mapper.selectAPinCoordiwDir(d1,d2,x1,y1,x2, y2);
}
}
ret
.
forEach
(
System
.
out
::
println
);
ret
.
forEach
(
System
.
out
::
println
);
return
ret
;
return
ret
;
}
}
private
class
_fp_elem
{
String
_ap_id
;
int
_rssi_collect_cnt
;
double
_rssi_min
;
double
_rssi_max
;
double
_rssi_avg
;
double
_rssi_std_dev
;
public
_fp_elem
(
String
ap_id
,
int
count
,
double
min
,
double
max
,
double
average
,
double
stddev
)
{
this
.
_ap_id
=
ap_id
;
this
.
_rssi_collect_cnt
=
count
;
this
.
_rssi_min
=
min
;
this
.
_rssi_max
=
max
;
this
.
_rssi_avg
=
average
;
this
.
_rssi_std_dev
=
stddev
;
}
@Override
public
String
toString
()
{
return
"_fp_elem{"
+
"_ap_id='"
+
_ap_id
+
'\''
+
", _rssi_collect_cnt="
+
_rssi_collect_cnt
+
", _rssi_min="
+
_rssi_min
+
", _rssi_max="
+
_rssi_max
+
", _rssi_avg="
+
_rssi_avg
+
", _rssi_std_dev="
+
_rssi_std_dev
+
'}'
;
}
}
public
boolean
build
()
{
public
boolean
build
()
{
double
scale_pixel
=
readMapScale
();
double
scale_pixel
=
readMapScale
();
...
@@ -129,40 +140,51 @@ public class BLEFPBuilder {
...
@@ -129,40 +140,51 @@ public class BLEFPBuilder {
System
.
out
.
println
();
System
.
out
.
println
();
List
<
_ble_indicator
>
ble_list
=
get_aplist_in_coordinate_per_rssidir
(
rssi_dir
,
rssi_dir
,
coordinate_pixel_x1
,
coordinate_pixel_y1
,
coordinate_pixel_x2
,
coordinate_pixel_y2
);
List
<
_ble_indicator
>
ble_list
=
get_aplist_in_coordinate_per_rssidir
(
rssi_dir
,
rssi_dir
,
coordinate_pixel_x1
,
coordinate_pixel_y1
,
coordinate_pixel_x2
,
coordinate_pixel_y2
);
ble_list
.
forEach
(
System
.
out
::
println
);
// sample ble_list
// sample ble_list
List
<
_ble_indicator
>
sample
=
new
ArrayList
<>();
List
<
_ble_indicator
>
sample2
=
Arrays
.
asList
(
_ble_indicator
a
=
new
_ble_indicator
(
"aaaaa"
,
1111
);
new
_ble_indicator
(
"aaaaa"
,
1111
),
sample
.
add
(
a
);
new
_ble_indicator
(
"bbbb"
,
2222
),
_ble_indicator
b
=
new
_ble_indicator
(
"bbbb"
,
2222
);
new
_ble_indicator
(
"aaaaa"
,
3333
),
sample
.
add
(
b
);
new
_ble_indicator
(
"ccccc"
,
4444
),
_ble_indicator
c
=
new
_ble_indicator
(
"aaaaa"
,
3333
);
new
_ble_indicator
(
"aaaaa"
,
5555
),
sample
.
add
(
c
);
new
_ble_indicator
(
"cccc"
,
6666
),
_ble_indicator
d
=
new
_ble_indicator
(
"ccccc"
,
4444
);
new
_ble_indicator
(
"bbbb"
,
7777
));
sample
.
add
(
d
);
_ble_indicator
e
=
new
_ble_indicator
(
"aaaaa"
,
5555
);
sample
.
add
(
e
);
Map
<
String
,
List
<
Integer
>>
transform
=
sample2
.
stream
().
collect
(
Collectors
.
groupingBy
(
_ble_indicator:
:
get_ap_id
,
_ble_indicator
f
=
new
_ble_indicator
(
"cccc"
,
6666
);
Collectors
.
mapping
(
_ble_indicator:
:
get_rssi
,
Collectors
.
toList
())));
sample
.
add
(
f
);
_ble_indicator
g
=
new
_ble_indicator
(
"bbbb"
,
7777
);
// prepare for insert value for storing
sample
.
add
(
g
);
List
<
_fp_elem
>
fp_per_cell
=
new
ArrayList
<>();
// using collection.stream()
// calculate rssi_min, rssi_max, rssi_avg, rssi_std_dev, count per ap_id
Set
<
Map
.
Entry
<
String
,
List
<
Integer
>>>
entries
=
transform
.
entrySet
();
for
(
Map
.
Entry
<
String
,
List
<
Integer
>>
entry
:
entries
)
{
// rssi_avg per ap_id
List
<
Integer
>
rssi_list
=
entry
.
getValue
();
sample
.
stream
().
collect
(
Collectors
.
groupingBy
(
ble
->
ble
.
m_ap_id
,
final
int
count
=
rssi_list
.
size
();
final
double
rssi_min
=
rssi_list
.
stream
().
mapToDouble
(
Integer:
:
doubleValue
).
summaryStatistics
().
getMin
();
Collectors
.
counting
()))
final
double
rssi_max
=
rssi_list
.
stream
().
mapToDouble
(
Integer:
:
doubleValue
).
summaryStatistics
().
getMax
();
.
forEach
(
(
x
,
y
)
->
System
.
out
.
println
(
x
+
"\t"
+
y
));
final
double
rssi_avg
=
rssi_list
.
stream
().
mapToDouble
(
Integer:
:
doubleValue
).
summaryStatistics
().
getAverage
();
final
double
sum_of_dev
=
rssi_list
.
stream
().
mapToDouble
(
x
->
Math
.
pow
(
x
.
doubleValue
()
-
rssi_avg
,
2.0
)).
sum
();
final
double
rssi_std_dev
=
Math
.
sqrt
(
sum_of_dev
/(
count
-
1
));
// Bessel correction for sample stdev
// populate insert value
_fp_elem
cell_elem
=
new
_fp_elem
(
entry
.
getKey
(),
count
,
rssi_min
,
rssi_max
,
rssi_avg
,
rssi_std_dev
);
fp_per_cell
.
add
(
cell_elem
);
}
for
(
_fp_elem
print_elem
:
fp_per_cell
)
{
System
.
out
.
println
(
print_elem
);
}
// calculate mag_angle - 해당 cell의 각 수집방향에 대하여 수집된 지자기방향의 평균값으로 대표
// calculate mag_angle - 해당 cell의 각 수집방향에 대하여 수집된 지자기방향의 평균값으로 대표
// then insert into fp_ble_data table
// then insert into fp_ble_data table
// Loop here ..*********************************************************************/
// Loop here ..*********************************************************************/
return
true
;
return
true
;
}
}
...
...
src/main/java/com/skt/ehs/mbs/fpbuilder/Floor.java
View file @
37b9dc06
package
com.skt.ehs.mbs.fpbuilder
;
package
com.skt.ehs.mbs.fpbuilder
;
import
java.util.Arrays
;
/**
/**
* Created by user on 2016-12-01.
* Created by user on 2016-12-01.
* 층을 가상 Matrix 로 구성하고,
* 층을 가상 Matrix 로 구성하고,
...
...
src/main/java/com/skt/ehs/mbs/fpbuilder/_ble_indicator.java
View file @
37b9dc06
...
@@ -5,12 +5,20 @@ package com.skt.ehs.mbs.fpbuilder;
...
@@ -5,12 +5,20 @@ package com.skt.ehs.mbs.fpbuilder;
*/
*/
public
class
_ble_indicator
{
public
class
_ble_indicator
{
String
m_ap_id
;
String
m_ap_id
;
Integer
m_rssi
;
int
m_rssi
;
_ble_indicator
(
String
ap_id
,
Integer
rssi
)
{
_ble_indicator
(
String
ap_id
,
int
rssi
)
{
m_ap_id
=
ap_id
;
m_ap_id
=
ap_id
;
m_rssi
=
rssi
;
m_rssi
=
rssi
;
}
}
public
String
get_ap_id
()
{
return
m_ap_id
;
}
public
int
get_rssi
()
{
return
m_rssi
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
String
.
format
(
"%s : %9d"
,
m_ap_id
,
m_rssi
);
return
String
.
format
(
"%s : %9d"
,
m_ap_id
,
m_rssi
);
...
...
src/main/resources/db/maria/mapper/FPBLEBuildMapper.xml
View file @
37b9dc06
...
@@ -12,16 +12,28 @@
...
@@ -12,16 +12,28 @@
<!--
<!--
Todo compose complex SQL here...
Todo compose complex SQL here...
List<_ble_indicator> selectAPinCoordiwDir(@Param("rssi_dir1")int rssi_dir1, @Param("rssi_dir2")int rssi_dir2, @Param("position_x1")int position_x1 , @Param("position_y1")int position_y1, @Param("position_x2")int position_x2, @Param("position_y2")int position_y2);
List<_ble_indicator> selectAPinCoordiwDir(
@Param("lower_rssi_dir")int lower_rssi_dir,
<select id="selectAPinCoordiwDir" parameterType="map" resultType="_ble_indicator">
@Param("upper_rssi_dir")int upper_rssi_dir,
SELECT DISTINCT ap_id, rssi FROM raw_data_ap WHERE rssi_dir > #{lower_rssi_dir} and rssi_dir < #{upper_rssi_dir}
@Param("ble_cell_coordi_x1")int ble_cell_coordi_x1,
</select>
@Param("ble_cell_coordi_y1")int ble_cell_coordi_y1,
// below is for binding-test
@Param("ble_cell_coordi_x2")int ble_cell_coordi_x2,
List<_ble_indicator> selectAPinCoordiwDir(@Param("lower_rssi_dir")int lower_rssi_dir, @Param("upper_rssi_dir")int upper_rssi_dir
);
@Param("ble_cell_coordi_y2")int ble_cell_coordi_y2
);
-->
-->
<select
id=
"selectAPinCoordiwDir"
parameterType=
"map"
resultType=
"_ble_indicator"
>
<select
id=
"selectAPinCoordiwDir"
parameterType=
"map"
resultType=
"_ble_indicator"
>
SELECT DISTINCT ap_id, rssi FROM raw_data_ap WHERE rssi_dir
>
#{lower_rssi_dir} and rssi_dir
<
#{upper_rssi_dir}
SELECT
a.AP_ID, a.RSSI
FROM
( SELECT TAG_ID, COLLECTED_TIME, SEQUENCE_NUM
FROM raw_data_tag
WHERE POSITION_X
>
#{ble_cell_coordi_x1} and POSITION_X
<
#{ble_cell_coordi_x2}
AND POSITION_Y
>
#{ble_cell_coordi_y1} and POSITION_Y
<
#{ble_cell_coordi_y2}
AND RSSI_DIR
>
#{lower_rssi_dir} and RSSI_DIR
<
#{upper_rssi_dir}
) t
INNER JOIN raw_data_ap AS a
ON t.tag_id = a.tag_id
AND t.collected_time = a.collected_time
AND t.sequence_num = a.sequence_num
</select>
</select>
</mapper>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment