def set_setpoint(request, pk): from device.models import Device setpoint = request.GET.get('setpoint') f = Fermenter.objects.get(pk=pk) Device.serial_cmd(f.component.device.device, "setSetpoint,"+str(f.fid)+','+setpoint) f.setpoint = Device.serial_cmd(f.component.device.device, "getSetpoint,"+str(f.fid)) f.save() return HttpResponse(f.setpoint)
def discover(cls, device): from fermenter.models import Fermenter sn = Device.serial_cmd(device.device, 'getSN') type = Device.serial_cmd(device.device, 'getType') try: c = Component.objects.get(sn=sn) c.device = device c.save() except Component.DoesNotExist: c = Component.objects.create(device=device, sn=sn, type=type) if type == 'FERMENTER': Fermenter.discover(c)
def discover(cls, component): count = int(Device.serial_cmd(component.device.device,'getFermenters')) for fid in range(count): try: f = cls.objects.get(component=component, fid=fid) except Fermenter.DoesNotExist: f = cls.objects.create(component=component, fid=fid) f.mode = Device.serial_cmd(f.component.device.device,'getMode,'+str(f.fid)) f.setpoint = Device.serial_cmd(f.component.device.device,'getSetpoint,'+str(f.fid)) f.save() verbose_name="probe_temperature_"+str(f.id) try: t = Task.objects.get(verbose_name=verbose_name) except Task.DoesNotExist: cls.probe_temperature(f.id, verbose_name=verbose_name, repeat=60)
def get_temperature(request, pk): from device.models import Device from beer.models import Temperature f = Fermenter.objects.get(pk=pk) f.temperature = Device.serial_cmd(f.component.device.device, "getTemperature,"+str(f.fid)) f.datetime = timezone.now() f.save() if hasattr(f, 'beer'): Temperature.objects.create(beer=f.beer, setpoint=f.setpoint, measured=f.temperature, datetime=timezone.now()) return HttpResponse(f.temperature)
def edit(request, pk): from device.models import Device f = Fermenter.objects.get(pk=pk) if request.method == "POST": form = FermenterForm(request.POST) if "save" in request.POST and form.is_valid(): if not f.name == request.POST.get("name"): f.name = request.POST.get("name") if not f.setpoint == Decimal(request.POST.get("setpoint")): Device.serial_cmd(f.component.device.device,"setSetpoint,"+str(f.fid)+","+request.POST.get("setpoint")) f.setpoint = Device.serial_cmd(f.component.device.device,"getSetpoint,"+str(f.fid)) if not f.mode == request.POST.get("mode"): Device.serial_cmd(f.component.device.device,"setMode,"+str(f.fid)+","+request.POST.get("mode")) f.mode = Device.serial_cmd(f.component.device.device,"getMode,"+str(f.fid)) f.save() return redirect('fermenter:detail', pk=f.id) else: form = FermenterForm(instance=f) return render(request, 'fermenter/form.html', {'form': form, 'fermenter': f})