김유현

Modify

1 +# Generated by Django 3.1.2 on 2020-11-18 19:55
2 +
3 +from django.db import migrations, models
4 +
5 +
6 +class Migration(migrations.Migration):
7 +
8 + dependencies = [
9 + ('api', '0001_initial'),
10 + ]
11 +
12 + operations = [
13 + migrations.CreateModel(
14 + name='AddDevice',
15 + fields=[
16 + ('id', models.IntegerField(primary_key=True, serialize=False)),
17 + ('add', models.BooleanField(default=False)),
18 + ],
19 + ),
20 + ]
...@@ -7,8 +7,8 @@ from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist ...@@ -7,8 +7,8 @@ from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist
7 from django.shortcuts import render 7 from django.shortcuts import render
8 8
9 from api.videorecord import record 9 from api.videorecord import record
10 -from api.models import Video, Device, RemoteHistory, Lock, Record, Door 10 +from api.models import Video, Device, RemoteHistory, Lock, Record, Door, AddDevice
11 -from api.serializers import VideoSerializer, DeviceSerializer, RemoteHistorySerializer, RecordSerializer, LockSerializer 11 +from api.serializers import VideoSerializer, DeviceSerializer, RemoteHistorySerializer, RecordSerializer, LockSerializer, AddDeviceSerializer
12 12
13 13
14 from rest_framework import status 14 from rest_framework import status
...@@ -68,6 +68,13 @@ class Devices(APIView) : ...@@ -68,6 +68,13 @@ class Devices(APIView) :
68 try : 68 try :
69 print(request.body) 69 print(request.body)
70 data = json.loads(request.body) 70 data = json.loads(request.body)
71 + target = AddDevice.objects.get(id=1)
72 + serializer = AddDeviceSerializer(target, many=False)
73 + state = serializer.data['state']
74 + if state == False:
75 + print(">> 기기추가 요청이 들어옴")
76 + target.state = True
77 + target.save()
71 rfid_id = data.get('rfid_id', None) 78 rfid_id = data.get('rfid_id', None)
72 res = { 79 res = {
73 'rfid_id': rfid_id 80 'rfid_id': rfid_id
......
...@@ -81,9 +81,10 @@ def RFIDProcess(signalQueue): ...@@ -81,9 +81,10 @@ def RFIDProcess(signalQueue):
81 if response.status_code == 200: 81 if response.status_code == 200:
82 deviceList = (response.json()['deviceList']) 82 deviceList = (response.json()['deviceList'])
83 83
84 - # state = getFromIPC(원격 잠금해제 여부) 84 + # state = getFromIPC(기기추가여부)
85 - target = Lock.objects.get(id=1) # 장고 모델에서 잠금 상태 모델(Lock) 객체 가져옴 85 +
86 - serializer = LockSerializer(target, many=False) # python 데이터타입으로 변환 86 + target = AddDevice.objects.get(id=1) # 장고 모델에서 잠금 상태 모델(Lock) 객체 가져옴
87 + serializer = AddDeviceSerializer(target, many=False) # python 데이터타입으로 변환
87 state = serializer.data['state'] # state에 저장(boolean) 88 state = serializer.data['state'] # state에 저장(boolean)
88 89
89 findDevice = False # 기기 등록 여부 90 findDevice = False # 기기 등록 여부
...@@ -91,7 +92,7 @@ def RFIDProcess(signalQueue): ...@@ -91,7 +92,7 @@ def RFIDProcess(signalQueue):
91 if deviceId in i["rfid"]: 92 if deviceId in i["rfid"]:
92 findDevice = True 93 findDevice = True
93 94
94 - if state == False: # if state == 원격 잠금해제: 95 + if state == True: # if state == 기기추가:
95 try: 96 try:
96 if findDevice: # if devices.find(deviceId): 97 if findDevice: # if devices.find(deviceId):
97 print("이미 등록된 RFID 장치") # raise 98 print("이미 등록된 RFID 장치") # raise
...@@ -104,10 +105,10 @@ def RFIDProcess(signalQueue): ...@@ -104,10 +105,10 @@ def RFIDProcess(signalQueue):
104 except: 105 except:
105 print("경고음 삑 -!") 106 print("경고음 삑 -!")
106 pass 107 pass
107 - finally: # setToIPC(원격 잠금해제 여부, 원격 잠금해제 아님) 108 + finally: # setToIPC(기기 추가 여부, 기기 추가 아님)
108 - target.state = True 109 + target.state = False
109 target.save() 110 target.save()
110 - else: # 원격 잠금해제 상태가 아님 = 도어락 해제 프로세스 111 + else: # 기기 추가 상태가 아님 = 도어락 해제 프로세스
111 try: 112 try:
112 if not findDevice: # if not devices.find(deviceId) 113 if not findDevice: # if not devices.find(deviceId)
113 print("등록되지 않은 RFID 장치") # raise 114 print("등록되지 않은 RFID 장치") # raise
......