From b0e3479c82bd7468c7e9fccfe580fdad5af398a6 Mon Sep 17 00:00:00 2001
From: "Server (Shared Users)" <shmd01.iptime.org>
Date: Tue, 10 Dec 2019 11:07:19 +0000
Subject: [PATCH] delete testfile

---
 Server_CoAP/CoAPthon3/testresource.py | 265 --------------------------
 Server_CoAP/CoAPthon3/testserver.py   | 175 -----------------
 2 files changed, 440 deletions(-)
 delete mode 100644 Server_CoAP/CoAPthon3/testresource.py
 delete mode 100644 Server_CoAP/CoAPthon3/testserver.py

diff --git a/Server_CoAP/CoAPthon3/testresource.py b/Server_CoAP/CoAPthon3/testresource.py
deleted file mode 100644
index 16e8d64..0000000
--- a/Server_CoAP/CoAPthon3/testresource.py
+++ /dev/null
@@ -1,265 +0,0 @@
-import json
-import uuid
-import math
-import triangulation
-from pymongo import MongoClient
-from coapthon import defines
-from coapthon.resources.resource import Resource
-
-class RpNodeInfoResource(Resource):
-    def __init__(self, name="RpNodeInfo"):
-        super(RpNodeInfoResource, self).__init__(name)
-        self.payload = "RpNodeInfo resource"
-        try:
-            self.conn = MongoClient('mongodb://iotuser:iotsystem@localhost/IoT_System', 27017)
-            self.db = self.conn.IoT_System
-            self.collection = self.db.testNode
-        except:
-            print("Could not connect to MongoDB")
-
-    def render_POST_advanced(self, request, response):
-        self.payload = request.payload
-        from coapthon.messages.response import Response
-        assert(isinstance(response, Response))
-        self.payload = json.loads(self.payload)
-        if self.payload['option'] == -1:
-            self.deleteNodeData(self.payload)
-        elif self.payload['option'] == 1:
-            response.payload = self.calculateNodePosition(self.payload)
-        else : 
-            response.payload = self.postRpNodeInfoInDB(self.payload)
-        response.code = defines.Codes.CREATED.number
-        return self, response
-
-    def render_PUT_advanced(self, request, response):
-        self.payload = request.payload
-        from coapthon.messages.response import Response
-        assert(isinstance(response, Response))
-        self.payload = json.loads(self.payload)
-        if self.payload['option'] == -1:
-            # coapclient.py에서 clearMyData()가 호출된 경우
-            self.deleteNodeData(self.payload)
-        elif self.payload['option'] == 1:
-            # coapclient.py에서 calculateNodePositionAtServer()이 호출된 경우
-            response.payload = self.calculateNodePosition(self.payload)
-        else :
-            # coapclient.py에서 obtainMyID()가 호출된 경우
-            response.payload = self.postRpNodeInfoInDB(self.payload)
-        response.code = defines.Codes.CHANGED.number
-        return self, response
-
-    def deleteNodeData(self, info): # complete
-        info = info['rpMAC']
-        graphColletion = self.db.testGraph
-        if  self.collection.find({'rpMAC' : info}).count() != 0:
-            rpuuid = self.collection.find({'rpMAC' : info})[0]['rpuuid']
-            graphColletion.remove({'v2' : rpuuid})
-            self.collection.remove({'rpMAC' : info})
-
-    def postRpNodeInfoInDB(self, info): # complete
-        info = info['rpMAC']
-        rpuuid = "52528282"+str(uuid.uuid4())[8:]
-        rpuuid = rpuuid.replace("-","")
-        if self.collection.count() == 0: # 첫번째 rpNode인 경우
-            payload = {
-                'rpMAC' : info,
-                'rpuuid' : rpuuid
-            }
-            self.collection.insert_one(payload)
-
-            response = json.dumps({
-                'rpuuid' : rpuuid,
-                'operate' : 0 # advertise할 필요가 없다.
-            })
-        else:
-            payload = {
-                'rpMAC' : info,
-                'rpuuid' : rpuuid
-            }
-            self.collection.insert_one(payload)
-
-            response = json.dumps({
-                'rpuuid' : rpuuid,
-                'operate' : 1 # advertise를 해야한다.
-            })
-        return response
-
-    def calculateNodePosition(self, info): # complete , need to check 4-th case.
-        print("Start calculateNodePosition")
-        info = info['rpuuid']
-        graphColletion = self.db.testGraph
-        mydoc = self.collection.find({'rpuuid': info})
-        response = {
-            'operate' : 1
-        }
-        if mydoc.count() == 1: # 자기 자신이 RpNodeData에 있는 경우
-            if self.collection.count() == 1: # 자신이 첫번째 RpNode인 경우
-                self.collection.update_one({'rpuuid' : info}, {'$set':{'x': 0.0, 'y': 0.0}}, False)
-            elif self.collection.count() == 2: # 자신이 두번째 RpNode인 경우
-                graphB = graphColletion.find({'v2': info})
-                x = graphB[0]['distance']
-                self.collection.update_one({'rpuuid' : info}, {'$set':{'x': x, 'y': 0.0}}, False)
-            elif self.collection.count() == 3: # 자신이 세번째 RpNode인 경우
-                graphC = graphColletion.find({'v2': info})
-                for doc in graphC:
-                    tempdoc = self.collection.find({'rpuuid': doc['v1']})
-                    if tempdoc[0]['x'] == 0 and tempdoc[0]['y'] == 0: # 첫번째 RpNode 즉, (0,0)
-                        vertexA = tempdoc[0]# 첫번째 RpNode를 vertexA라 한다.
-                    elif tempdoc[0]['y'] == 0:    
-                        vertexB = tempdoc[0]#두번째 RpNode를 vertexB라  한다.
-
-                dis = {
-                    'a': graphColletion.find({'v1': vertexB['rpuuid'], 'v2': info})[0]['distance'],
-                    'b': graphColletion.find({'v1': vertexA['rpuuid'], 'v2': info})[0]['distance'],
-                    'c': vertexB['x']
-                }
-                if ((dis['a'] + dis['b']) <= dis['c']) or dis['a'] == 0 or dis['b'] == 0 or dis['c'] == 0:
-                    # 3번째 rpNode를 만들 수 없는 경우
-                    print("3번째 rpNode를 만들 수 없습니다.(no triangle)")
-                    response['operate'] = 0
-                    return json.dumps(response)
-                
-                cosA = (math.pow(dis['b'], 2) + math.pow(dis['c'], 2) - math.pow(dis['a'], 2)) / (2 * dis['b'] * dis['c'])
-                if cosA >= 1 or cosA <= -1 :
-                    # 3번째 rpNode를 만들 수 없는 경우
-                    print("3번째 rpNode를 만들 수 없습니다.(impossible cosA)",cosA) 
-                    response['operate'] = 0
-                    return json.dumps(response)
-
-                sinA = math.sqrt((1 - math.pow(cosA,2)))
-                x = dis['b'] * cosA
-                y = dis['b'] * sinA
-                self.collection.update_one({'rpuuid' : info}, {'$set':{'x': x, 'y': y}}, False)
-            else:
-                graphD = graphColletion.find({'v2' : info})
-                nodeLocationData = []
-
-                for g in graphD:
-                    nodeLocationData.append({
-                    'rpuuid': g['v1'],
-                    'distance': g['distance']
-                })
-
-                nodeLocationData = sorted(nodeLocationData, key=lambda k: k['distance'], reverse = False)
-
-                if len(nodeLocationData) < 3:
-                    # 4번째 이상의 rpNode를 만들 수 없는 경우
-                    print("4번째 이상의 rpNode를 만들 수 없습니다.")
-                    response['operate'] = 0
-                    return json.dumps(response)
-
-                nodeList = []
-               
-                for i in range(3):
-                    print(self.collection.find({'rpuuid': nodeLocationData[i]['rpuuid']})[0])
-                    nodeList.append({
-                        'x': self.collection.find({'rpuuid': nodeLocationData[i]['rpuuid']})[0]['x'],
-                        'y': self.collection.find({'rpuuid': nodeLocationData[i]['rpuuid']})[0]['y'],
-                        'distance': nodeLocationData[i]['distance']
-                    })
-
-                triangulationInst = triangulation.Triangulation(nodeList[:3])
-                print("test : ", nodeList[:3])
-                x, y = triangulationInst.doTriangulation()
-                print("x: ",x,"y : ",y)
-                if x == None:
-                    # 4번째 이상의 rpNode를 만들 수 없는 경우
-                    print("4번째 이상의 rpNode를 만들 수 없습니다.")
-                    response['operate'] = 0
-                    return json.dumps(response)
-
-                self.collection.update_one({'rpuuid' : info}, {'$set':{'x': x, 'y': y}}, False)
-
-            return json.dumps(response)
-        else:
-            response['operate'] = 0
-            return json.dumps(response)
-                
-class RpGraphInfoResource(Resource): # complete
-    def __init__(self, name="RpGraphInfo"):
-        super(RpGraphInfoResource, self).__init__(name)
-        self.payload = "RpGraphInfo resource"
-        try:
-            self.conn = MongoClient('mongodb://iotuser:iotsystem@localhost/IoT_System', 27017)
-        except:
-            print("Could not connect to MongoDB")
-        self.db = self.conn.IoT_System
-        self.collection = self.db.testGraph
-        
-    def render_GET_advanced(self, request, response):
-        response.payload = self.payload
-        response.max_age = 20
-        response.code = defines.Codes.CONTENT.number
-        return self, response
-
-    def render_POST_advanced(self, request, response):
-        self.payload = request.payload
-        from coapthon.messages.response import Response
-        assert(isinstance(response, Response))
-        response.payload = self.postRpGraphInfoInDB(self.payload)
-        response.code = defines.Codes.CREATED.number
-        return self, response
-
-    def render_PUT_advanced(self, request, response):
-        self.payload = request.payload
-        from coapthon.messages.response import Response
-        assert(isinstance(response, Response))
-        response.payload = self.postRpGraphInfoInDB(self.payload)
-        response.code = defines.Codes.CHANGED.number
-        return self, response
-
-    def render_DELETE_advanced(self, request, response):
-        response.payload = "Response deleted"
-        response.code = defines.Codes.DELETED.number
-        return True, response
-
-    def postRpGraphInfoInDB(self, info): # complete
-        info = json.loads(info)
-        self.collection.insert_one({
-            'v1':info['v1'], 
-            'v2': info['v2'],
-            'rssi' : float(info['rssi']),
-            })
-
-class BleInfoResource(Resource): # complete
-    def __init__(self, name="BleInfo"):
-        super(BleInfoResource, self).__init__(name)
-        self.payload = "BleInfo resource"
-        try:
-            self.conn = MongoClient('mongodb://iotuser:iotsystem@localhost/IoT_System', 27017)
-            self.db = self.conn.IoT_System
-            self.collection = self.db.testTracking
-        except:
-            print("Could not connect to MongoDB")
-
-    def render_GET_advanced(self, request, response):
-        response.payload = self.payload
-        response.max_age = 20
-        response.code = defines.Codes.CONTENT.number
-        return self, response
-
-    def render_POST_advanced(self, request, response):
-        self.payload = request.payload
-        self.postBLEInfoInDB(self.payload)
-        from coapthon.messages.response import Response
-        assert isinstance(response, Response)
-        response.payload = "Response changed through POST"
-        response.code = defines.Codes.CREATED.number
-        return self, response
-
-    def render_PUT_advanced(self, request, response):
-        self.payload = request.payload
-        self.postBLEInfoInDB(self.payload)
-        from coapthon.messages.response import Response
-        assert isinstance(response, Response)
-        response.payload = "Response changed through PUT"
-        response.code = defines.Codes.CHANGED.number
-        return self, response
-
-    def render_DELETE_advanced(self, request, response):
-        response.payload = "Response deleted"
-        response.code = defines.Codes.DELETED.number
-        return True, response
-
-    def postBLEInfoInDB(self, payload):
-        self.collection.insert_many(json.loads(payload))
\ No newline at end of file
diff --git a/Server_CoAP/CoAPthon3/testserver.py b/Server_CoAP/CoAPthon3/testserver.py
deleted file mode 100644
index c56150d..0000000
--- a/Server_CoAP/CoAPthon3/testserver.py
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/usr/bin/env python
-import getopt
-import sys
-import threading
-import _thread
-import time
-import datetime
-import json
-import triangulation
-from coapthon.server.coap import CoAP
-from testresource import BleInfoResource, RpNodeInfoResource, RpGraphInfoResource
-from pymongo import MongoClient
-
-class CoAPServer(CoAP):
-    def __init__(self, host, port, multicast=False): # complete
-        CoAP.__init__(self, (host, port), multicast)
-        self.add_resource('bleInfoPath/', BleInfoResource())
-        self.add_resource('rpNodeInfoPath/', RpNodeInfoResource())
-        self.add_resource('rpGraphInfoPath/', RpGraphInfoResource())
-
-        print(("CoAP Server start on " + host + ":" + str(port)))
-        print((self.root.dump()))
-
-        try:
-            self.conn = MongoClient('mongodb://iotuser:iotsystem@localhost/IoT_System', 27017)
-            self.db = self.conn.IoT_System
-            self.piNodeCollection = self.db.RpNodeData
-            self.userNodeCollection = self.db.UserNodeData
-            self.trackingCollection = self.db.TrackingData
-            self.usersCollection = self.db.users
-            self.updatePeriod = 10
-            self.limitDistance = 40
-        except:
-            print("Could not connect to MongoDB")
-
-    def updateUserLocation(self): # complete
-        try:
-            while True:
-                cursor = self.usersCollection.find()
-                for c in cursor:
-                    positionCalculationThread = threading.Thread(target = self.positionCalculation, args=([c['uuid']]))
-                    positionCalculationThread.start()
-                time.sleep(self.updatePeriod)
-                #trackingCursor = self.trackingCollection.remove({'updateTime': {'$lte' : currentTime - self.updatePeriod}})
-        except KeyboardInterrupt:
-            print("existing updateUserLocation")
-    
-    def positionCalculation(self, useruuid): # complete but need to check triangulation.py
-        print(useruuid)
-        currentTime = time.time()
-        trackingCursor = self.trackingCollection.find({'$and':[{'useruuid': useruuid},
-        {'updateTime':{'$gt' : currentTime - self.updatePeriod}},{'distance': {'$lt' : self.limitDistance}}]})
-        #trackingCursor = self.trackingCollection.find({'$and':[{'useruuid':{'$eq' : useruuid}}]})
-        userLocationData =[]
-
-        flag = 0
-        for c in trackingCursor:
-            for i in userLocationData:
-                if i['rpuuid'] == c['rpuuid']:
-                    i['sum']+= c['distance']
-                    i['count']+=1
-                    i['distance'] = i['sum']/i['count']
-                    flag = 1
-                    break
-            if flag == 0:
-                userLocationData.append({
-                    'rpuuid': c['rpuuid'],
-                    'distance': c['distance'],
-                    'sum': c['distance'],
-                    'count':1
-                })
-            flag = 0
-
-        userLocationData = sorted(userLocationData, key=lambda k: k['distance'], reverse = False)
-        for u in userLocationData:
-            print(userLocationData)
-        
-        if len(userLocationData) == 0:
-            print("userLocationData == 0")
-            return
-        
-        rp1uuid = userLocationData[0]['rpuuid']
-        rp1 = self.piNodeCollection.find({'rpuuid' : rp1uuid})
-
-        if len(userLocationData) < 3:
-            print("userLocationData < 3")
-            dd = datetime.datetime.utcnow()
-            userNodeData = {
-                'rp1': {'rpuuid' : userLocationData[0]['rpuuid'], 'distance': userLocationData[0]['distance']},
-                'useruuid': useruuid,
-                'x' : rp1[0]['x'],
-                'y' : rp1[0]['y'],
-                'updateTime': str(dd)
-            }
-            print(userNodeData)
-            self.userNodeCollection.insert_one(userNodeData)
-            return
-
-        else :
-            nodeList = []
-            for i in range(3):
-                nodeList.append({
-                    'x': self.piNodeCollection.find({'rpuuid': userLocationData[i]['rpuuid']})[0]['x'],
-                    'y': self.piNodeCollection.find({'rpuuid': userLocationData[i]['rpuuid']})[0]['y'],
-                    'distance': userLocationData[i]['distance']
-                })
-
-            triangulationInst = triangulation.Triangulation(nodeList[:3])
-            x, y = triangulationInst.doTriangulation()
-
-            if x == None:
-                print("no solution")
-                dd = datetime.datetime.utcnow()
-                userNodeData = {
-                    'rp1': {'rpuuid' : userLocationData[0]['rpuuid'], 'distance': userLocationData[0]['distance']},
-                    'useruuid': useruuid,
-                    'x': rp1[0]['x'],
-                    'y': rp1[0]['y'],
-                    'updateTime': str(dd)
-                }
-                print(userNodeData)
-                self.userNodeCollection.insert_one(userNodeData)
-                return
-
-            dd = datetime.datetime.utcnow()
-            userNodeData = {
-                'rp1': {'rpuuid' : userLocationData[0]['rpuuid'], 'distance': userLocationData[0]['distance']},
-                'rp2': {'rpuuid' : userLocationData[1]['rpuuid'], 'distance' : userLocationData[1]['distance']},
-                'rp3': {'rpuuid' : userLocationData[2]['rpuuid'], 'distance' : userLocationData[2]['distance']},
-                'useruuid': useruuid,
-                'x': x,
-                'y': y,
-                'updateTime': str(dd)
-            }
-            print(userNodeData)
-        self.userNodeCollection.insert_one(userNodeData)
-
-def usage():  # pragma: no cover
-    print("coapserver.py -i <ip address> -p <port>")
-
-
-def main(argv):  # pragma: no cover
-    ip = "0.0.0.0"
-    port = 5683
-    multicast = False
-    try:
-        opts, args = getopt.getopt(argv, "hi:p:m", ["ip=", "port=", "multicast"])
-    except getopt.GetoptError:
-        usage()
-        sys.exit(2)
-    for opt, arg in opts:
-        if opt == '-h':
-            usage()
-            sys.exit()
-        elif opt in ("-i", "--ip"):
-            ip = arg
-        elif opt in ("-p", "--port"):
-            port = int(arg)
-        elif opt in ("-m", "--multicast"):
-            multicast = True
-
-    server = CoAPServer(ip, port, multicast)
-    try:
-        #updateUserLocationThread = threading.Thread(target = server.updateUserLocation)
-        #updateUserLocationThread.start()
-        server.listen(10)
-
-    except KeyboardInterrupt:
-        print("Server Shutdown")
-        server.close()
-        print("Exiting...")
-
-
-if __name__ == "__main__":  # pragma: no cover
-    main(sys.argv[1:])
-- 
GitLab