已合并
【91d4841547e5da861526eed9a16695c4】单转子未乘风扇系数 #1424
byosoft_wuyanda创建于 8月10日
【91d4841547e5da861526eed9a16695c4】单转子未乘风扇系数 #1424
已合并
byosoft_wuyanda创建于 8月10日
3 个文件变更+30-8
@@ -364,13 +364,21 @@ local function get_fan_reading(sensor_name, fan_obj)
364 if fan_obj.FrontPresence == 0 then364 if fan_obj.FrontPresence == 0 then
365 return cjson.null365 return cjson.null
366 else366 else
367- return fan_obj.FrontSpeed367+ 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 end372 end
369 else373 else
370 if fan_obj.RearPresence == 0 then374 if fan_obj.RearPresence == 0 then
371 return cjson.null375 return cjson.null
372 else376 else
373- return fan_obj.RearSpeed377+ 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 end382 end
375 end383 end
376end384end
@@ -26,6 +26,13 @@ local function get_fan_presence(presence)
26 return presence + 126 return presence + 1
27end27end
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-- 获取风扇状态
30local function get_fan_status(presence, status)37local function get_fan_status(presence, status)
31 if presence ~= 1 then38 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_ratio55 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_ratio68 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_ratio81 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 0119 return 0
120end120end
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+ 
122function m.get_speed_ratio(obj_info)129function m.get_speed_ratio(obj_info)
123 local front_rpm = obj_info.FrontSpeed130 local front_rpm = obj_info.FrontSpeed
124 local rear_rpm = obj_info.RearSpeed131 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.Model177 fan_obj.Model = temp_obj.Model
171- fan_obj.Speed = temp_obj.FrontSpeed * temp_obj.Coefficient178+ 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.PartNumber180 fan_obj.PartNumber = temp_obj.PartNumber
174 fan_obj.Presence = temp_obj.FrontPresence181 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.Model191 fan_obj.Model = temp_obj.Model
185- fan_obj.Speed = temp_obj.RearSpeed * temp_obj.Coefficient192+ 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.PartNumber194 fan_obj.PartNumber = temp_obj.PartNumber
188 fan_obj.Presence = temp_obj.RearPresence195 fan_obj.Presence = temp_obj.RearPresence
@@ -197,7 +204,7 @@ function m.get_sort_fans_info(input)
197 else204 else
198 fan_obj.Name = 'Fan' .. temp_obj.FanId205 fan_obj.Name = 'Fan' .. temp_obj.FanId
199 fan_obj.Model = temp_obj.Model206 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.PartNumber209 fan_obj.PartNumber = temp_obj.PartNumber
203 fan_obj.Presence = temp_obj.RearPresence210 fan_obj.Presence = temp_obj.RearPresence