#45 burn rate ramping is optional now

This commit is contained in:
Mikayla Fischler
2022-05-05 16:00:49 -04:00
parent 89be79192f
commit 83fa41bbd0
5 changed files with 64 additions and 40 deletions

View File

@@ -614,22 +614,27 @@ plc.comms = function (id, modem, local_port, server_port, reactor, rps)
log.debug("sent out structure again, did supervisor miss it?")
elseif packet.type == RPLC_TYPES.MEK_BURN_RATE then
-- set the burn rate
if packet.length == 1 then
if packet.length == 2 then
local success = false
local burn_rate = packet.data[1]
local max_burn_rate = self.max_burn_rate
local ramp = packet.data[2]
-- if no known max burn rate, check again
if max_burn_rate == nil then
max_burn_rate = self.reactor.getMaxBurnRate()
self.max_burn_rate = max_burn_rate
if self.max_burn_rate == nil then
self.max_burn_rate = self.reactor.getMaxBurnRate()
end
-- if we know our max burn rate, update current burn rate setpoint if in range
if max_burn_rate ~= ppm.ACCESS_FAULT then
if burn_rate > 0 and burn_rate <= max_burn_rate then
setpoints.burn_rate = burn_rate
success = true
if self.max_burn_rate ~= ppm.ACCESS_FAULT then
if burn_rate > 0 and burn_rate <= self.max_burn_rate then
if ramp then
setpoints.burn_rate_en = true
setpoints.burn_rate = burn_rate
success = true
else
self.reactor.setBurnRate(burn_rate)
success = not self.reactor.__p_is_faulted()
end
end
end