Skip to content
Snippets Groups Projects
Commit a702ff4e authored by Server (Shared Users)'s avatar Server (Shared Users)
Browse files

revise

parent 7bfdb2fd
No related branches found
No related tags found
No related merge requests found
...@@ -173,7 +173,7 @@ class CoapClient(): ...@@ -173,7 +173,7 @@ class CoapClient():
client.stop() client.stop()
def mkJsonbeaconInfo(self, info): # complete def mkJsonbeaconInfo(self, info): # complete
n = 4 n = 2.05
distance = math.pow(10, (float(info[4]) - float(info[5])) / (10 * n)) distance = math.pow(10, (float(info[4]) - float(info[5])) / (10 * n))
payload = { payload = {
'rpuuid' : self.myuuid, 'rpuuid' : self.myuuid,
...@@ -207,7 +207,7 @@ class CoapClient(): ...@@ -207,7 +207,7 @@ class CoapClient():
client.stop() client.stop()
def mkJsonRpgraphInfo(self, info): # complete def mkJsonRpgraphInfo(self, info): # complete
n = 2.2 n = 2.05
distance = math.pow(10, ((float(info[4]) - float(info[5])) / (10 * n))) distance = math.pow(10, ((float(info[4]) - float(info[5])) / (10 * n)))
payload = { payload = {
'v1' : self.myuuid, 'v1' : self.myuuid,
......
...@@ -17,8 +17,7 @@ bct_IBEACONPROFIX = "1E 02 01 1A 1A FF 4C 00 02 15" ...@@ -17,8 +17,7 @@ bct_IBEACONPROFIX = "1E 02 01 1A 1A FF 4C 00 02 15"
bct_UUID = " 00 00 00 AC E8 B4 E0 C2 7D 20 B6 11 B6 11 C7 74" bct_UUID = " 00 00 00 AC E8 B4 E0 C2 7D 20 B6 11 B6 11 C7 74"
bct_MAJOR = "00 01" bct_MAJOR = "00 01"
bct_MINOR = "00 02" bct_MINOR = "00 02"
bct_POWER = "C4 00" bct_POWER = "C8 00"
class BeaconEmit(): class BeaconEmit():
def __init__(self): def __init__(self):
self.beacon_TX_config("up") self.beacon_TX_config("up")
...@@ -50,16 +49,16 @@ class BeaconEmit(): ...@@ -50,16 +49,16 @@ class BeaconEmit():
_bct_ogf = bct_OGF + " " _bct_ogf = bct_OGF + " "
_ocf = _ocf + " " _ocf = _ocf + " "
result = subprocess.check_output("sudo hcitool -i " + bct_BLUETOOTHDEVICE + " cmd " + _bct_ogf + _ocf + _param, shell=True) result = subprocess.check_output("sudo hcitool -i " + bct_BLUETOOTHDEVICE + " cmd " + _bct_ogf + _ocf + _param, shell=True)
time.sleep(0.1)
def beacon_TX_DevTrigger(self, _str): def beacon_TX_DevTrigger(self, _str):
_bct_uuid = _str _bct_uuid = _str
self.beacon_TX_cmd_format(bct_OCF_format, bct_IBEACONPROFIX, _bct_uuid, bct_MAJOR, bct_MINOR, bct_POWER) self.beacon_TX_cmd_format(bct_OCF_format, bct_IBEACONPROFIX, _bct_uuid, bct_MAJOR, bct_MINOR, bct_POWER)
sleep(0.3)
def beacon_Start(self, _str): def beacon_Start(self, _str):
try: try:
startTime = time.time() startTime = time.time()
repeatTime = 10 repeatTime = 15
print ("BLE EMIT START") print ("BLE EMIT START")
while True: while True:
if time.time() - startTime > repeatTime: if time.time() - startTime > repeatTime:
......
...@@ -76,21 +76,26 @@ class CoAPServer(CoAP): ...@@ -76,21 +76,26 @@ class CoAPServer(CoAP):
for u in userLocationData: for u in userLocationData:
print(userLocationData) print(userLocationData)
if len(userLocationData) == 0:
print("userLocationData == 0")
return
rp1uuid = userLocationData[0]['rpuuid'] rp1uuid = userLocationData[0]['rpuuid']
rp1 = self.rpNodeInfoPath.find({'rpuuid' : rp1}) rp1 = self.piNodeCollection.find({'rpuuid' : rp1uuid})
if len(userLocationData) < 3: if len(userLocationData) < 3:
print("userLoicationData < 3") print("userLocationData < 3")
dd = datetime.datetime.now() dd = datetime.datetime.now()
dd = dd.replace(hour=dd.hour + 9) dd = dd.replace(hour=dd.hour + 9)
userNodeData = { userNodeData = {
'rp1': {'rpuuid' : userLocationData[0]['rpuuid'], 'distance': userLocationData[0]['distance']}, 'rp1': {'rpuuid' : userLocationData[0]['rpuuid'], 'distance': userLocationData[0]['distance']},
'useruuid': useruuid, 'useruuid': useruuid,
'x' : rp1[0]['x'], 'x' : rp1[0]['x'],
'y' : rp1[0]['y'] 'y' : rp1[0]['y'],
'updateTime': str(dd) 'updateTime': str(dd)
} }
print(userNodeData) print(userNodeData)
self.userNodeCollection.insert_one(userNodeData)
return return
else : else :
...@@ -117,6 +122,7 @@ class CoAPServer(CoAP): ...@@ -117,6 +122,7 @@ class CoAPServer(CoAP):
'updateTime': str(dd) 'updateTime': str(dd)
} }
print(userNodeData) print(userNodeData)
self.userNodeCollection.insert_one(userNodeData)
return return
dd = datetime.datetime.now() dd = datetime.datetime.now()
......
...@@ -2,8 +2,8 @@ var mongoose = require('mongoose'); ...@@ -2,8 +2,8 @@ var mongoose = require('mongoose');
const Schema = mongoose.Schema; const Schema = mongoose.Schema;
const trackingSchema = new Schema({ const trackingSchema = new Schema({
rasbpID: { type: String, default: "" }, rpuuid: { type: String, default: "" },
uuid: { type: String, default: "" }, useruuid: { type: String, default: "" },
distance: { type: Number, default: 0 }, distance: { type: Number, default: 0 },
updateTime : { type: Number, default: 0 } updateTime : { type: Number, default: 0 }
}, { collection : 'TrackingData', // 컬렉션명 지정 }, { collection : 'TrackingData', // 컬렉션명 지정
......
...@@ -141,6 +141,63 @@ router.get('/users', function(req, res, next) { ...@@ -141,6 +141,63 @@ router.get('/users', function(req, res, next) {
}); });
router.get('/rpis', function(req, res, next) {
// User.find((err,output) =>{
// console.log(output);
// res.render('users', { data: output });
// })
Tracking.aggregate([
{
'$group': {
'_id': '$rpuuid'
}
}
],function(rr,ra){
if(ra){
console.log(ra);
res.render('rpis',{data:ra});
}
});
});
router.get('/aggregateByRPUUID/:id', function(req, res, next) {
// User.find((err,output) =>{
// console.log(output);
// res.render('users', { data: output });
// })
Tracking.findOne({rpuuid: req.params.id},(err, output) => {
console.log(output);
const lastUpdateTime = output.updateTime;
const lastUpdateTimeObject = new Date(Date(output.updateTime));
console.log(Date(lastUpdateTime));
console.log(output.distance)
Tracking.aggregate([
{
'$match': {
'rpuuid': output.rpuuid,
'updateTime': {
'$gt': lastUpdateTime - 600
},
distance: {'$lt': 1}
}
}, {
'$group': {
'_id': '$useruuid'
}
}
],function(rr,ra){
if(ra){
console.log(ra);
res.json({Date : lastUpdateTimeObject.toLocaleString('ko-KR', {
timeZone: 'Asia/Seoul'
}),count : ra.length,result: ra});
}
})
})
//res.json({});
});
router.post('/', function(req, res, next) { router.post('/', function(req, res, next) {
console.log(req.body) console.log(req.body)
res.render('index', { title: 'Express' }); res.render('index', { title: 'Express' });
......
extends layout
block content
hr(size='3px')
p
- let i=0;
for i in data
a(href='/api/aggregateByRPUUID/'+i._id) #{i.name} , uuid:#{i._id}
br
-i++
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment