Exemple #1
0
def fertilization(request):
    request_result = __checkUser(request)
    if request_result == HTTP_RESULT_SUCCESS:
        fertilization_config = config.get_fertilization_config()
        if request.method == 'POST':
            if config.KEY_IS_AUTO_CONTROL in request.POST:
                fertilization_config.isAutoControl = request.POST.get(config.KEY_IS_AUTO_CONTROL,
                                                                      config.DEFAULT_AUTO_CONTROL)
                print('自动施肥被设置为', fertilization_config.isAutoControl)
            if config.KEY_REPEAT_TYPE in request.POST:
                fertilization_config.repeatType = request.POST.get(config.KEY_REPEAT_TYPE, config.DEFAULT_REPEAT_TYPE)
                print('自动施肥重复类型被设置为', fertilization_config.repeatType)
            if config.KEY_REPEAT_CIRCLE in request.POST:
                fertilization_config.repeatCircle = request.POST.get(config.KEY_REPEAT_CIRCLE,
                                                                     config.DEFAULT_REPEAT_CIRCLE)
                print('自动施肥周期被设置为', fertilization_config.repeatCircle)
            if config.KEY_HOUR in request.POST:
                fertilization_config.hour = request.POST.get(config.KEY_HOUR, config.DEFAULT_REPEAT_HOUR)
                print('自动施肥周期小时被设置为', fertilization_config.hour)
            if config.KEY_MINUTE in request.POST:
                fertilization_config.minute = request.POST.get(config.KEY_MINUTE, config.DEFAULT_REPEAT_MINUTE)
                print('自动施肥周期分钟被设置为', fertilization_config.minute)
            config.set_fertilization_config_obj(fertilization_config)
        json_obj = {
            KEY_RESULT: HTTP_RESULT_SUCCESS,
            KEY_TYPE: TYPE_FERTILIZATION,
            config.KEY_IS_AUTO_CONTROL: fertilization_config.isAutoControl,
            config.KEY_REPEAT_TYPE: fertilization_config.repeatType,
            config.KEY_REPEAT_CIRCLE: fertilization_config.repeatCircle,
            config.KEY_HOUR: fertilization_config.hour,
            config.KEY_MINUTE: fertilization_config.minute
        }
        return HttpResponse(json.dumps(json_obj))
    else:
        return HttpResponse(DICT_RESULT_CODE.get(request_result, JSON_UNKNOWN_ERROR))
Exemple #2
0
 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()
Exemple #3
0
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('真的执行定时操作 ')
Exemple #4
0
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)
Exemple #5
0
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':'自动浇水周期',
        })