def water(request): request_result = __checkUser(request) if request_result == HTTP_RESULT_SUCCESS: water_config = config.get_water_config() if request.method == 'POST': if config.KEY_IS_AUTO_CONTROL in request.POST: water_config.isAutoControl = request.POST.get(config.KEY_IS_AUTO_CONTROL, config.DEFAULT_AUTO_CONTROL) print('自动浇水被设置为', water_config.isAutoControl) if config.KEY_REPEAT_TYPE in request.POST: water_config.repeatType = request.POST.get(config.KEY_REPEAT_TYPE, config.DEFAULT_REPEAT_TYPE) print('自动浇水重复类型被设置为', water_config.repeatType) if config.KEY_REPEAT_CIRCLE in request.POST: water_config.repeatCircle = request.POST.get(config.KEY_REPEAT_CIRCLE, config.DEFAULT_REPEAT_CIRCLE) print('自动浇水周期被设置为', water_config.repeatCircle) if config.KEY_HOUR in request.POST: water_config.hour = request.POST.get(config.KEY_HOUR, config.DEFAULT_REPEAT_HOUR) print('自动浇水周期小时被设置为', water_config.hour) if config.KEY_MINUTE in request.POST: water_config.minute = request.POST.get(config.KEY_MINUTE, config.DEFAULT_REPEAT_MINUTE) print('自动浇水周期分钟被设置为', water_config.minute) config.set_water_config_obj(water_config) json_obj = { KEY_RESULT: HTTP_RESULT_SUCCESS, KEY_TYPE: TYPE_WATER, config.KEY_IS_AUTO_CONTROL: water_config.isAutoControl, config.KEY_REPEAT_TYPE: water_config.repeatType, config.KEY_REPEAT_CIRCLE: water_config.repeatCircle, config.KEY_HOUR: water_config.hour, config.KEY_MINUTE: water_config.minute } return HttpResponse(json.dumps(json_obj)) else: return HttpResponse(DICT_RESULT_CODE.get(request_result, JSON_UNKNOWN_ERROR))
def actionLimit(self, actions): # print(actions) print('执行任务') print(actions) for tempAction in json.loads(actions): print('循环') tempTarget = tempAction['target'] tempOperation = tempAction['operation'] if tempTarget == 0: # 温度自动控制 tempperatureConfig = config.get_temperature_config() tempperatureConfig.isAutoControl = int(tempOperation) config.set_temperature_config_obj(tempperatureConfig) elif tempTarget == 1: # 空气适度自动控制 humidityConfig = config.get_humidity_config() humidityConfig.isAutoControl = int(tempOperation) config.set_dumidity_config_obj(humidityConfig) pass elif tempTarget == 2: # 土壤适度自动控制 dirtHumidity = config.get_dirt_humidity_config() dirtHumidity.isAutoControl = int(tempOperation) config.set_dirt_humidity_config_obj(dirtHumidity) pass elif tempTarget == 3: # 自动施肥 fertilizationConfig = config.get_fertilization_config() config.set_fertilization_config(tempOperation, fertilizationConfig.repeatType, fertilizationConfig.repeatCircle, fertilizationConfig.hour, fertilizationConfig.minute) elif tempTarget == 4: # 自动浇水 waterConfig = config.get_water_config() config.set_water_config(tempOperation, waterConfig.repeatType, waterConfig.repeatCircle, waterConfig.hour, waterConfig.minute) elif tempTarget == 5: # 施肥 sendCmd('06',self.intToHex(tempOperation)) elif tempTarget == 6: # 浇水 sendCmd('07',self.intToHex(tempOperation)) elif tempTarget == 7: # 风扇 sendCmd('04',self.intToHex(tempOperation)) elif tempTarget == 8: # 电热膜 sendCmd('05',self.intToHex(tempOperation)) elif tempTarget == 9: # 自定义设备1 sendCmd('00',self.intToHex(tempOperation)) elif tempTarget == 10: # 自定义设备2 sendCmd('01',self.intToHex(tempOperation)) elif tempTarget == 11: # 自定义设备3 sendCmd('02',self.intToHex(tempOperation)) elif tempTarget == 12: # 自定义设备4 sendCmd('03',self.intToHex(tempOperation)) elif tempTarget == 13: # 环境光控制 sendCmd('08',self.intToHex(tempOperation)) elif tempTarget == 14: # 环境光颜色 sendCmd('09',self.intToHex(tempOperation)) elif tempTarget == 15: # 环境光亮度 sendCmd('0a',self.intToHex(tempOperation)) print(self.intToHex(tempTarget),' -- ',self.intToHex(tempOperation)) # sendCmd(self.intToHex(tempTarget), self.intToHex(tempOperation)) # sendCmd('00','01') # time.sleep(0.05) # if tempTarget # print('target => ' + str(tempAction['target']) + ' operation => ' + str(tempAction['operation'])) time.sleep(0.05) sendCmdReset()
def operation(schedule): tempTarget = int(schedule['target']) tempOperation = int(schedule['value']) print('命令', tempTarget, '值', tempOperation) if tempTarget == 0: # 温度自动控制 tempperatureConfig = config.get_temperature_config() tempperatureConfig.isAutoControl = int(tempOperation) config.set_temperature_config_obj(tempperatureConfig) elif tempTarget == 1: # 空气适度自动控制 humidityConfig = config.get_humidity_config() humidityConfig.isAutoControl = int(tempOperation) config.set_dumidity_config_obj(humidityConfig) elif tempTarget == 2: # 土壤适度自动控制 dirtHumidity = config.get_dirt_humidity_config() dirtHumidity.isAutoControl = int(tempOperation) config.set_dirt_humidity_config_obj(dirtHumidity) elif tempTarget == 3: # 自动施肥 fertilizationConfig = config.get_fertilization_config() config.set_fertilization_config(tempOperation, fertilizationConfig.repeatType, fertilizationConfig.repeatCircle, fertilizationConfig.hour, fertilizationConfig.minute) elif tempTarget == 4: # 自动浇水 waterConfig = config.get_water_config() config.set_water_config(tempOperation, waterConfig.repeatType, waterConfig.repeatCircle, waterConfig.hour, waterConfig.minute) elif tempTarget == 5: # 施肥 conn.sendCmd('06', intToHex(tempOperation)) elif tempTarget == 6: # 浇水 conn.sendCmd('07', intToHex(tempOperation)) elif tempTarget == 7: # 风扇 conn.sendCmd('04', intToHex(tempOperation)) elif tempTarget == 8: # 电热膜 conn.sendCmd('05', intToHex(tempOperation)) elif tempTarget == 9: # 自定义设备1 conn.sendCmd('00', intToHex(tempOperation)) elif tempTarget == 10: # 自定义设备2 conn.sendCmd('01', intToHex(tempOperation)) elif tempTarget == 11: # 自定义设备3 conn.sendCmd('02', intToHex(tempOperation)) elif tempTarget == 12: # 自定义设备4 conn.sendCmd('03', intToHex(tempOperation)) elif tempTarget == 13: # 环境光控制 conn.sendCmd('08', intToHex(tempOperation)) elif tempTarget == 14: # 环境光颜色 conn.sendCmd('09', intToHex(tempOperation)) elif tempTarget == 15: # 环境光亮度 conn.sendCmd('0a', intToHex(tempOperation)) print('真的执行定时操作 ')
def mobile_setting(request): getUserList = authorization.get_user(request) if getUserList[0] == authorization.RESULT_SUCCESS: if (getUserList[2].is_staff and getUserList[2].is_active) or getUserList[2].is_superuser: temperature_config = config.get_temperature_config() humidity_config = config.get_humidity_config() dirt_humidity_config = config.get_dirt_humidity_config() fertilization_config = config.get_fertilization_config() watering_config = config.get_water_config() return HttpResponse(json.dumps({ 'temperature_state': temperature_config.isAutoControl, 'temperature_upper_limit': temperature_config.upperLimit, 'temperature_lower_limit': temperature_config.lowerLimit, 'temperature_upper_actions': temperature_config.upperActions, 'temperature_lower_actions': temperature_config.lowerActions, 'himidity_state': humidity_config.isAutoControl, 'himidity_upper_limit': humidity_config.upperLimit, 'himidity_lower_limit': humidity_config.lowerLimit, 'himidity_upper_actions': humidity_config.upperActions, 'himidity_lower_actions': humidity_config.lowerActions, 'dirt_himidity_state': dirt_humidity_config.isAutoControl, 'dirt_himidity_upper_limit': dirt_humidity_config.upperLimit, 'dirt_himidity_lower_limit': dirt_humidity_config.lowerLimit, 'dirt_himidity_upper_actions': dirt_humidity_config.upperActions, 'dirt_himidity_lower_actions': dirt_humidity_config.lowerActions, 'fertilization_state': fertilization_config.isAutoControl, 'fertilization_repeat_type': fertilization_config.repeatType, 'fertilization_hour': fertilization_config.hour, 'fertilization_minute': fertilization_config.minute, 'fertilization_repeat_circle': fertilization_config.repeatCircle, 'fertilization_hint_text': '自动施肥周期', 'watering_state': watering_config.isAutoControl, 'watering_repeat_type': watering_config.repeatType, 'watering_hour': watering_config.hour, 'watering_minute': watering_config.minute, 'watering_repeat_circle': watering_config.repeatCircle, 'watering_hint_text': '自动浇水周期', },ensure_ascii=False)) return HttpResponse(JSON_PERMISSION_DENIED) elif getUserList[0] == authorization.RESULT_TOKEN_NOT_EXIST: return HttpResponse(JSON_LOGIN_REQUIRE) else: return HttpResponse(JSON_OPPERATION_FAIL)
def setting(request): if not checkHasPermissionModifyConfig(request.user): return forbidden(request) temperature_config = config.get_temperature_config() humidity_config = config.get_humidity_config() dirt_humidity_config = config.get_dirt_humidity_config() fertilization_config = config.get_fertilization_config() watering_config = config.get_water_config() print('获取到的温度上限动作为 : '+str(temperature_config.upperActions)) return render(request,'farm/setting.html',context={ 'temperature_state':temperature_config.isAutoControl, 'temperature_upper_limit':temperature_config.upperLimit, 'temperature_lower_limit':temperature_config.lowerLimit, 'temperature_upper_actions':temperature_config.upperActions, 'temperature_lower_actions':temperature_config.lowerActions, 'himidity_state':humidity_config.isAutoControl, 'himidity_upper_limit':humidity_config.upperLimit, 'himidity_lower_limit':humidity_config.lowerLimit, 'himidity_upper_actions':humidity_config.upperActions, 'himidity_lower_actions':humidity_config.lowerActions, 'dirt_himidity_state':dirt_humidity_config.isAutoControl, 'dirt_himidity_upper_limit':dirt_humidity_config.upperLimit, 'dirt_himidity_lower_limit':dirt_humidity_config.lowerLimit, 'dirt_himidity_upper_actions':dirt_humidity_config.upperActions, 'dirt_himidity_lower_actions':dirt_humidity_config.lowerActions, 'fertilization_state':fertilization_config.isAutoControl, 'fertilization_repeat_type':fertilization_config.repeatType, 'fertilization_hour':fertilization_config.hour, 'fertilization_minute':fertilization_config.minute, 'fertilization_repeat_circle':fertilization_config.repeatCircle, 'fertilization_hint_text':'自动施肥周期', 'watering_state':watering_config.isAutoControl, 'watering_repeat_type':watering_config.repeatType, 'watering_hour':watering_config.hour, 'watering_minute':watering_config.minute, 'watering_repeat_circle':watering_config.repeatCircle, 'watering_hint_text':'自动浇水周期', })