已合并
【91d4841547e5da861526eed9a16695c4】单转子未乘风扇系数 #1424
byosoft_wuyanda创建于 8月10日
【91d4841547e5da861526eed9a16695c4】单转子未乘风扇系数 #1424
已合并
共 3 个文件变更+30-8
| @@ -364,13 +364,21 @@ local function get_fan_reading(sensor_name, fan_obj) | |||
| 364 | if fan_obj.FrontPresence == 0 then | 364 | if fan_obj.FrontPresence == 0 then |
| 365 | return cjson.null | 365 | return cjson.null |
| 366 | else | 366 | else |
| 367 | - return fan_obj.FrontSpeed | 367 | + if not fan_obj.FrontSpeed or not fan_obj.Coefficient then |
| 368 | + return cjson.null | ||
| 369 | + else | ||
| 370 | + return fan_obj.FrontSpeed * fan_obj.Coefficient | ||
| 371 | + end | ||
| 368 | end | 372 | end |
| 369 | else | 373 | else |
| 370 | if fan_obj.RearPresence == 0 then | 374 | if fan_obj.RearPresence == 0 then |
| 371 | return cjson.null | 375 | return cjson.null |
| 372 | else | 376 | else |
| 373 | - return fan_obj.RearSpeed | 377 | + if not fan_obj.RearSpeed or not fan_obj.Coefficient then |
| 378 | + return cjson.null | ||
| 379 | + else | ||
| 380 | + return fan_obj.RearSpeed * fan_obj.Coefficient | ||
| 381 | + end | ||
| 374 | end | 382 | end |
| 375 | end | 383 | end |
| 376 | end | 384 | end |
| @@ -26,6 +26,13 @@ local function get_fan_presence(presence) | |||
| 26 | return presence + 1 | 26 | return presence + 1 |
| 27 | end | 27 | end |
| 28 | 28 | ||
| 29 | +local function get_fan_speed(speed, coefficient) | ||
| 30 | + if not speed or not coefficient then | ||
| 31 | + return nil | ||
| 32 | + end | ||
| 33 | + return speed * coefficient | ||
| 34 | +end | ||
| 35 | + | ||
| 29 | -- 获取风扇状态 | 36 | -- 获取风扇状态 |
| 30 | local function get_fan_status(presence, status) | 37 | local function get_fan_status(presence, status) |
| 31 | if presence ~= 1 then | 38 | if presence ~= 1 then |
| @@ -48,7 +55,7 @@ for _, value in pairs(fans) do | |||
| 48 | speed_ratio = speed_ratio > FAN_SPEED_RATIO_MAX and FAN_SPEED_RATIO_MAX or speed_ratio | 55 | speed_ratio = speed_ratio > FAN_SPEED_RATIO_MAX and FAN_SPEED_RATIO_MAX or speed_ratio |
| 49 | fan_list[#fan_list + 1] = { | 56 | fan_list[#fan_list + 1] = { |
| 50 | fanIndex = index, | 57 | fanIndex = index, |
| 51 | - fanSpeed = value.FrontSpeed, | 58 | + fanSpeed = get_fan_speed(value.FrontSpeed, value.Coefficient), |
| 52 | fanPresence = get_fan_presence(value.FrontPresence), | 59 | fanPresence = get_fan_presence(value.FrontPresence), |
| 53 | fanStatus = get_fan_status(value.FrontPresence, value.FrontStatus), | 60 | fanStatus = get_fan_status(value.FrontPresence, value.FrontStatus), |
| 54 | fanLocation = value.Position, | 61 | fanLocation = value.Position, |
| @@ -61,7 +68,7 @@ for _, value in pairs(fans) do | |||
| 61 | speed_ratio = speed_ratio > FAN_SPEED_RATIO_MAX and FAN_SPEED_RATIO_MAX or speed_ratio | 68 | speed_ratio = speed_ratio > FAN_SPEED_RATIO_MAX and FAN_SPEED_RATIO_MAX or speed_ratio |
| 62 | fan_list[#fan_list + 1] = { | 69 | fan_list[#fan_list + 1] = { |
| 63 | fanIndex = index, | 70 | fanIndex = index, |
| 64 | - fanSpeed = value.RearSpeed, | 71 | + fanSpeed = get_fan_speed(value.RearSpeed, value.Coefficient), |
| 65 | fanPresence = get_fan_presence(value.RearPresence), | 72 | fanPresence = get_fan_presence(value.RearPresence), |
| 66 | fanStatus = get_fan_status(value.RearPresence, value.RearStatus), | 73 | fanStatus = get_fan_status(value.RearPresence, value.RearStatus), |
| 67 | fanLocation = value.Position, | 74 | fanLocation = value.Position, |
| @@ -74,7 +81,7 @@ for _, value in pairs(fans) do | |||
| 74 | speed_ratio = speed_ratio > FAN_SPEED_RATIO_MAX and FAN_SPEED_RATIO_MAX or speed_ratio | 81 | speed_ratio = speed_ratio > FAN_SPEED_RATIO_MAX and FAN_SPEED_RATIO_MAX or speed_ratio |
| 75 | fan_list[#fan_list + 1] = { | 82 | fan_list[#fan_list + 1] = { |
| 76 | fanIndex = index, | 83 | fanIndex = index, |
| 77 | - fanSpeed = value.RearSpeed, | 84 | + fanSpeed = get_fan_speed(value.RearSpeed, value.Coefficient), |
| 78 | fanPresence = get_fan_presence(value.RearPresence), | 85 | fanPresence = get_fan_presence(value.RearPresence), |
| 79 | fanStatus = get_fan_status(value.RearPresence, value.RearStatus), | 86 | fanStatus = get_fan_status(value.RearPresence, value.RearStatus), |
| 80 | fanLocation = value.Position, | 87 | fanLocation = value.Position, |
| @@ -119,6 +119,13 @@ function m.get_speed(front_speed, rear_speed) | |||
| 119 | return 0 | 119 | return 0 |
| 120 | end | 120 | end |
| 121 | 121 | ||
| 122 | +function m.get_fan_speed(speed, coefficient) | ||
| 123 | + if not speed or not coefficient then | ||
| 124 | + return nil | ||
| 125 | + end | ||
| 126 | + return speed * coefficient | ||
| 127 | +end | ||
| 128 | + | ||
| 122 | function m.get_speed_ratio(obj_info) | 129 | function m.get_speed_ratio(obj_info) |
| 123 | local front_rpm = obj_info.FrontSpeed | 130 | local front_rpm = obj_info.FrontSpeed |
| 124 | local rear_rpm = obj_info.RearSpeed | 131 | local rear_rpm = obj_info.RearSpeed |
| @@ -168,7 +175,7 @@ function m.get_sort_fans_info(input) | |||
| 168 | -- 先添加前转子对象 | 175 | -- 先添加前转子对象 |
| 169 | fan_obj.Name = 'Fan' .. temp_obj.FanId .. ' Front' | 176 | fan_obj.Name = 'Fan' .. temp_obj.FanId .. ' Front' |
| 170 | fan_obj.Model = temp_obj.Model | 177 | fan_obj.Model = temp_obj.Model |
| 171 | - fan_obj.Speed = temp_obj.FrontSpeed * temp_obj.Coefficient | 178 | + fan_obj.Speed = m.get_fan_speed(temp_obj.FrontSpeed, temp_obj.Coefficient) |
| 172 | fan_obj.SpeedRatio = m.get_single_speed_ratio(temp_obj.FrontSpeed, temp_obj.FrontMaxSpeed) | 179 | fan_obj.SpeedRatio = m.get_single_speed_ratio(temp_obj.FrontSpeed, temp_obj.FrontMaxSpeed) |
| 173 | fan_obj.PartNumber = temp_obj.PartNumber | 180 | fan_obj.PartNumber = temp_obj.PartNumber |
| 174 | fan_obj.Presence = temp_obj.FrontPresence | 181 | fan_obj.Presence = temp_obj.FrontPresence |
| @@ -182,7 +189,7 @@ function m.get_sort_fans_info(input) | |||
| 182 | fan_obj = {} | 189 | fan_obj = {} |
| 183 | fan_obj.Name = 'Fan' .. temp_obj.FanId .. ' Rear' | 190 | fan_obj.Name = 'Fan' .. temp_obj.FanId .. ' Rear' |
| 184 | fan_obj.Model = temp_obj.Model | 191 | fan_obj.Model = temp_obj.Model |
| 185 | - fan_obj.Speed = temp_obj.RearSpeed * temp_obj.Coefficient | 192 | + fan_obj.Speed = m.get_fan_speed(temp_obj.RearSpeed, temp_obj.Coefficient) |
| 186 | fan_obj.SpeedRatio = m.get_single_speed_ratio(temp_obj.RearSpeed, temp_obj.RearMaxSpeed) | 193 | fan_obj.SpeedRatio = m.get_single_speed_ratio(temp_obj.RearSpeed, temp_obj.RearMaxSpeed) |
| 187 | fan_obj.PartNumber = temp_obj.PartNumber | 194 | fan_obj.PartNumber = temp_obj.PartNumber |
| 188 | fan_obj.Presence = temp_obj.RearPresence | 195 | fan_obj.Presence = temp_obj.RearPresence |
| @@ -197,7 +204,7 @@ function m.get_sort_fans_info(input) | |||
| 197 | else | 204 | else |
| 198 | fan_obj.Name = 'Fan' .. temp_obj.FanId | 205 | fan_obj.Name = 'Fan' .. temp_obj.FanId |
| 199 | fan_obj.Model = temp_obj.Model | 206 | fan_obj.Model = temp_obj.Model |
| 200 | - fan_obj.Speed = m.get_speed(temp_obj.FrontSpeed, temp_obj.RearSpeed) | 207 | + fan_obj.Speed = m.get_fan_speed(m.get_speed(temp_obj.FrontSpeed, temp_obj.RearSpeed), temp_obj.Coefficient) |
| 201 | fan_obj.SpeedRatio = m.get_speed_ratio(temp_obj) | 208 | fan_obj.SpeedRatio = m.get_speed_ratio(temp_obj) |
| 202 | fan_obj.PartNumber = temp_obj.PartNumber | 209 | fan_obj.PartNumber = temp_obj.PartNumber |
| 203 | fan_obj.Presence = temp_obj.RearPresence | 210 | fan_obj.Presence = temp_obj.RearPresence |