bbqgophers / qpid

BBQ PID controller written in Go for Raspberry PI
MIT License
78 stars 4 forks source link

adding some base domain types #1

Closed bketelsen closed 8 years ago

bketelsen commented 8 years ago

@freeformz @wmadisonDev @kpurdon take a look at the first pass of types and interfaces, please?

SharonAllsup commented 8 years ago

To continue the earlier convo from slack -

Centigrade vs Farenheit I see as:

(1) A property of the probe - "What unit does this probe report?" - So, it goes with Location. We can default this to F for now. If someone is using a Centigrade-reporting probe, then an override of the default F can be added to wherever the user defines the probe / sets the location. Then it becomes something checked in the event a conversion is needed for target-temp comparison.

(2) A property of the target temperature - For v1, can just be F. But if we want to allow mixed-use, where the probes report in C and the user specifies targets F, or vice versa, we should look at supporting this. It would be used for display, and compared against the probe to see if conversion is needed before the results are interpreted.

SharonAllsup commented 8 years ago

Do we want to add this to our target temperatures? 1) Target/Variance Floor 2) Target/Variance Ceiling

We'll default these to the target temperature, then let the user override if they want to convert the target point temperature into a target range.

This would be different from the floor and ceiling for blower control. A target point temperature would definitely want blower floor and ceilings. A target range can simply use its floor and ceiling as the blower, although I wouldn't recommend that if the range is under 10F. It's probably a bit premature to bring action values up, but I will do it here anyhow to avoid confusion with the Target variances above:

Blower Control / Action temp targets - To keep the blower from constant cycling, most units wait until the air temp has dropped a few degrees below the target, then kick on the blower until the air temp is slightly higher than the target. Blower Floor = Activate/Increase Blower at this temperature BlowerCeiling = DeActivate/Reduce Blower at this temperature

Note to self: Brian bought a steppable blower

freeformz commented 8 years ago

Re: C/F .. We could also just record everything internally in C (and fractional C i.e. 30.25) and convert to F for display/purposes (or vice versa). That probably simplifies things. But it depends on what a Probe is. In my mind it's a temp sensor cabled into a DAC that I'm polling every 30s. But that's just an assumption I'm making atm.

webRat commented 8 years ago

Is FoodController the correct name? It looks like it's a read only implementation, getting the temperature of the meat. Can food really ever be controlled? ;)

bketelsen commented 8 years ago

OK I think all comments are addressed and things are clarified a bit more.