|
@@ -292,7 +292,7 @@ static int get_key(power_handle_t *h, uint8_t addr, board_key_t *key)
|
|
|
int i,r;
|
|
int i,r;
|
|
|
uint16_t tmp[2];
|
|
uint16_t tmp[2];
|
|
|
|
|
|
|
|
- if(h->prod->type==PDU_AC_I1O1 || h->prod->type==PDU_AC_I3O1_H) {
|
|
|
|
|
|
|
+ if(h->prod->type==PDU_AC_I1O1 || h->prod->type==PDU_AC_I3O1_H || h->prod->type==PDU_AC_I3O1) {
|
|
|
r = read_reg(h, addr, POWER_AC_GET_INFO, tmp, 1);
|
|
r = read_reg(h, addr, POWER_AC_GET_INFO, tmp, 1);
|
|
|
if(r==0) {
|
|
if(r==0) {
|
|
|
key->type = (tmp[0]>>8)&0xFF;
|
|
key->type = (tmp[0]>>8)&0xFF;
|
|
@@ -510,8 +510,97 @@ static int total_proc(power_handle_t *h)
|
|
|
lock_on(h->lck);
|
|
lock_on(h->lck);
|
|
|
if(h->prod->type==PDU_AC_I3O3) times = 3;
|
|
if(h->prod->type==PDU_AC_I3O3) times = 3;
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // calculate
|
|
|
|
|
+
|
|
|
|
|
+ if(h->prod->type==PDU_AC_I3O1 || h->prod->type==PDU_AC_I3O1_H)
|
|
|
|
|
+ {
|
|
|
|
|
+ float chn_total_p = 0.0;
|
|
|
|
|
+ for(int i = 1; i < h->chs;i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ int k = h->pch[i]->info.ph_id - 1;
|
|
|
|
|
+ chn_total_p = ( h->pch[i]->power[k].factor == 0 ? 0 : ( h->pch[i]->power[k].power/100.0 / h->pch[i]->power[k].factor * 100.0));
|
|
|
|
|
+ tmp[k].consump += (h->pch[i]->power[k].consump/100.0);
|
|
|
|
|
+ tmp[k].voltage = (tmp[k].voltage > h->pch[i]->power[k].voltage/100.0 ) ? tmp[k].voltage : h->pch[i]->power[k].voltage/100.0;
|
|
|
|
|
+ tmp[k].current += ( h->pch[i]->power[k].current/100.0);
|
|
|
|
|
+ tmp[k].power += h->pch[i]->power[k].power/100.0;
|
|
|
|
|
+ tmp[k].reactive += chn_total_p;
|
|
|
|
|
+ tmp[k].active +=(chn_total_p-(h->pch[i]->power[k].power/100.0));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else if(h->prod->type==PDU_AC_I3O3)
|
|
|
|
|
+ {
|
|
|
|
|
+ for(int i = 1 ;i < h->chs;i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ float chn_total_p = 0.0;
|
|
|
|
|
+ for(k=0; k<3; k++) {
|
|
|
|
|
+ chn_total_p = ( h->pch[i]->power[k].factor == 0 ? 0 : ( h->pch[i]->power[k].power/100.0 / h->pch[i]->power[k].factor * 100.0));
|
|
|
|
|
+ tmp[k].consump += (h->pch[i]->power[k].consump/100.0);
|
|
|
|
|
+ tmp[k].voltage = (tmp[k].voltage > h->pch[i]->power[k].voltage/100.0 ) ? tmp[k].voltage : h->pch[i]->power[k].voltage/100.0;
|
|
|
|
|
+ tmp[k].current += ( h->pch[i]->power[k].current/100.0);
|
|
|
|
|
+ tmp[k].power += h->pch[i]->power[k].power/100.0;
|
|
|
|
|
+ tmp[k].reactive += chn_total_p;
|
|
|
|
|
+ tmp[k].active +=(chn_total_p-(h->pch[i]->power[k].power/100.0));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else if(h->prod->type==PDU_AC_I3O2)
|
|
|
|
|
+ {
|
|
|
|
|
+ float chn_total_p = 0.0;
|
|
|
|
|
+ float chn_total_p_1 = 0.0;
|
|
|
|
|
+ int left = h->pch[i]->info.ph_id -1;
|
|
|
|
|
+ int right = h->pch[i]->info.ph_val -1;
|
|
|
|
|
+
|
|
|
|
|
+ for(int i = 1 ;i < h->chs;i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ int left = h->pch[i]->info.ph_id -1;
|
|
|
|
|
+ int right = h->pch[i]->info.ph_val -1;
|
|
|
|
|
+ chn_total_p = ( h->pch[i]->power[left].factor == 0 ? 0 : ( h->pch[i]->power[left].power/100.0 / h->pch[i]->power[left].factor * 100.0));
|
|
|
|
|
+ tmp[left].consump += (h->pch[i]->power[left].consump/100.0);
|
|
|
|
|
+ tmp[left].voltage = (tmp[k].voltage > h->pch[i]->power[left].voltage/100.0 ) ? tmp[k].voltage : h->pch[i]->power[left].voltage/100.0;
|
|
|
|
|
+ tmp[left].current += ( h->pch[i]->power[left].current/100.0);
|
|
|
|
|
+ tmp[left].power += h->pch[i]->power[left].power/100.0;
|
|
|
|
|
+ tmp[left].reactive += chn_total_p;
|
|
|
|
|
+ tmp[left].active +=(chn_total_p-(h->pch[i]->power[left].power/100.0));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ chn_total_p = ( h->pch[i]->power[right].factor == 0 ? 0 : ( h->pch[i]->power[right].power/100.0 / h->pch[i]->power[right].factor * 100.0));
|
|
|
|
|
+ tmp[right].consump += (h->pch[i]->power[right].consump/100.0);
|
|
|
|
|
+ tmp[right].voltage = (tmp[k].voltage > h->pch[i]->power[right].voltage/100.0 ) ? tmp[k].voltage : h->pch[i]->power[right].voltage/100.0;
|
|
|
|
|
+ tmp[right].current += ( h->pch[i]->power[right].current/100.0);
|
|
|
|
|
+ tmp[right].power += h->pch[i]->power[right].power/100.0;
|
|
|
|
|
+ tmp[right].reactive += chn_total_p;
|
|
|
|
|
+ tmp[right].active +=(chn_total_p-(h->pch[i]->power[right].power/100.0));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else if(PDU_AC_I1O1 == h->prod->type)
|
|
|
|
|
+ {
|
|
|
|
|
+ float chn_total_p = 0.0;
|
|
|
|
|
+ for(int i = 1; i < h->chs;i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ chn_total_p = ( h->pch[i]->power[0].factor == 0 ? 0 : ( h->pch[i]->power[0].power/100.0 / h->pch[i]->power[0].factor * 100.0));
|
|
|
|
|
+ tmp[0].consump += (h->pch[i]->power[0].consump/100.0);
|
|
|
|
|
+ tmp[0].voltage = (tmp[0].voltage > h->pch[i]->power[0].voltage/100.0 ) ? tmp[0].voltage : h->pch[i]->power[0].voltage/100.0;
|
|
|
|
|
+ tmp[0].current += ( h->pch[i]->power[0].current/100.0);
|
|
|
|
|
+ tmp[0].reactive += chn_total_p;
|
|
|
|
|
+ tmp[0].power += h->pch[i]->power[0].power/100.0;
|
|
|
|
|
+ tmp[0].active +=(chn_total_p-(h->pch[i]->power[0].power/100.0));
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if(PDU_DC_I1O1 == h->prod->type)
|
|
|
|
|
+ {
|
|
|
|
|
+ for(int i = 1; i < h->chs;i++)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ tmp[0].consump += (h->pch[i]->power[0].consump/100.0);
|
|
|
|
|
+ tmp[0].voltage = (tmp[k].voltage > h->pch[i]->power[0].voltage/100.0 ) ? tmp[k].voltage : h->pch[i]->power[0].voltage/100.0;
|
|
|
|
|
+ tmp[0].current += ( h->pch[i]->power[0].current/100.0);
|
|
|
|
|
+ tmp[0].power += h->pch[i]->power[0].power/100.0;
|
|
|
|
|
+ tmp[0].reactive += h->pch[i]->power[0].power/100.0;
|
|
|
|
|
+ tmp[0].active += 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+#if 0
|
|
|
for(int i = 1 ;i < h->chs;i++)
|
|
for(int i = 1 ;i < h->chs;i++)
|
|
|
{
|
|
{
|
|
|
float chn_total_p = 0.0;
|
|
float chn_total_p = 0.0;
|
|
@@ -526,7 +615,7 @@ static int total_proc(power_handle_t *h)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+#endif
|
|
|
// for(i=0; i<h->brd_max; i++) {
|
|
// for(i=0; i<h->brd_max; i++) {
|
|
|
// if(h->pbrd[i]) {
|
|
// if(h->pbrd[i]) {
|
|
|
// for (j=0; i<h->pbrd[i]->chs; i++) {
|
|
// for (j=0; i<h->pbrd[i]->chs; i++) {
|
|
@@ -550,7 +639,7 @@ static int total_proc(power_handle_t *h)
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
h->ttl.type = h->prod->type;
|
|
h->ttl.type = h->prod->type;
|
|
|
- for(k=0; k<times; k++) {
|
|
|
|
|
|
|
+ for(k=0; k<3; k++) {
|
|
|
h->ttl.total[k].voltage = tmp[k].voltage;
|
|
h->ttl.total[k].voltage = tmp[k].voltage;
|
|
|
h->ttl.total[k].current = tmp[k].current;
|
|
h->ttl.total[k].current = tmp[k].current;
|
|
|
h->ttl.total[k].power = tmp[k].power;
|
|
h->ttl.total[k].power = tmp[k].power;
|
|
@@ -697,7 +786,13 @@ static int board_read(power_handle_t *h, board_data_t *pbrd,uint8_t flag)
|
|
|
|
|
|
|
|
for (i=0; i<pbrd->chs; i++) {
|
|
for (i=0; i<pbrd->chs; i++) {
|
|
|
int idx = i * 12;
|
|
int idx = i * 12;
|
|
|
- pwr = &pbrd->pch[i].power[0];
|
|
|
|
|
|
|
+ if(h->prod->type == PDU_AC_I3O1 || h->prod->type == PDU_AC_I3O1_H)
|
|
|
|
|
+ {
|
|
|
|
|
+ uint8_t _id = pbrd->pch[i].info.ph_id - 1;
|
|
|
|
|
+ pwr = &pbrd->pch[i].power[_id];
|
|
|
|
|
+
|
|
|
|
|
+ }else
|
|
|
|
|
+ pwr = &pbrd->pch[i].power[0];
|
|
|
|
|
|
|
|
val = (tmp[1 + idx] << 16) | tmp[0 + idx];
|
|
val = (tmp[1 + idx] << 16) | tmp[0 + idx];
|
|
|
pwr->voltage = val / 10;
|
|
pwr->voltage = val / 10;
|
|
@@ -732,17 +827,73 @@ static int board_read(power_handle_t *h, board_data_t *pbrd,uint8_t flag)
|
|
|
pch = &pbrd->pch[i];
|
|
pch = &pbrd->pch[i];
|
|
|
//pch->power[0].status = tmp[i] & (0x01);
|
|
//pch->power[0].status = tmp[i] & (0x01);
|
|
|
pch->status = tmp[i] & (0x01);
|
|
pch->status = tmp[i] & (0x01);
|
|
|
- old_l1_v_upper = pch->alarm.l1_v_upper;
|
|
|
|
|
- old_l1_v_lower = pch->alarm.l1_v_lower;
|
|
|
|
|
- old_l1_c_upper = pch->alarm.l1_c_upper;
|
|
|
|
|
- old_l1_p_upper = pch->alarm.l1_p_upper;
|
|
|
|
|
- old_l1_w_upper = pch->alarm.l1_w_upper;
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
- pch->alarm.l1_v_upper = (tmp[i] & BIT(2))?1:0;
|
|
|
|
|
- pch->alarm.l1_v_lower = (tmp[i] & BIT(4))?1:0;
|
|
|
|
|
- pch->alarm.l1_c_upper = (tmp[i] & BIT(6))?1:0;
|
|
|
|
|
- pch->alarm.l1_p_upper = (tmp[i] & BIT(8))?1:0;
|
|
|
|
|
- pch->alarm.l1_w_upper = (tmp[i] & BIT(10))?1:0;
|
|
|
|
|
|
|
+ if(h->prod->type == PDU_AC_I3O1 || h->prod->type == PDU_AC_I3O1_H)
|
|
|
|
|
+ {
|
|
|
|
|
+ uint8_t _id = pch->info.ph_id -1;
|
|
|
|
|
+ switch(_id)
|
|
|
|
|
+ {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ {
|
|
|
|
|
+ old_l1_v_upper = pch->alarm.l1_v_upper;
|
|
|
|
|
+ old_l1_v_lower = pch->alarm.l1_v_lower;
|
|
|
|
|
+ old_l1_c_upper = pch->alarm.l1_c_upper;
|
|
|
|
|
+ old_l1_p_upper = pch->alarm.l1_p_upper;
|
|
|
|
|
+ old_l1_w_upper = pch->alarm.l1_w_upper;
|
|
|
|
|
+ pch->alarm.l1_v_upper = (tmp[i] & BIT(2))?1:0;
|
|
|
|
|
+ pch->alarm.l1_v_lower = (tmp[i] & BIT(4))?1:0;
|
|
|
|
|
+ pch->alarm.l1_c_upper = (tmp[i] & BIT(6))?1:0;
|
|
|
|
|
+ pch->alarm.l1_p_upper = (tmp[i] & BIT(8))?1:0;
|
|
|
|
|
+ pch->alarm.l1_w_upper = (tmp[i] & BIT(10))?1:0;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ {
|
|
|
|
|
+ old_l2_v_upper = pch->alarm.l2_v_upper;
|
|
|
|
|
+ old_l2_v_lower = pch->alarm.l2_v_lower;
|
|
|
|
|
+ old_l2_c_upper = pch->alarm.l2_c_upper;
|
|
|
|
|
+ old_l2_p_upper = pch->alarm.l2_p_upper;
|
|
|
|
|
+ old_l2_w_upper = pch->alarm.l2_w_upper;
|
|
|
|
|
+ pch->alarm.l2_v_upper = (tmp[i] & BIT(2))?1:0;
|
|
|
|
|
+ pch->alarm.l2_v_lower = (tmp[i] & BIT(4))?1:0;
|
|
|
|
|
+ pch->alarm.l2_c_upper = (tmp[i] & BIT(6))?1:0;
|
|
|
|
|
+ pch->alarm.l2_p_upper = (tmp[i] & BIT(8))?1:0;
|
|
|
|
|
+ pch->alarm.l2_w_upper = (tmp[i] & BIT(10))?1:0;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ {
|
|
|
|
|
+ old_l3_v_upper = pch->alarm.l3_v_upper;
|
|
|
|
|
+ old_l3_v_lower = pch->alarm.l3_v_lower;
|
|
|
|
|
+ old_l3_c_upper = pch->alarm.l3_c_upper;
|
|
|
|
|
+ old_l3_p_upper = pch->alarm.l3_p_upper;
|
|
|
|
|
+ old_l3_w_upper = pch->alarm.l3_w_upper;
|
|
|
|
|
+ pch->alarm.l3_v_upper = (tmp[i] & BIT(2))?1:0;
|
|
|
|
|
+ pch->alarm.l3_v_lower = (tmp[i] & BIT(4))?1:0;
|
|
|
|
|
+ pch->alarm.l3_c_upper = (tmp[i] & BIT(6))?1:0;
|
|
|
|
|
+ pch->alarm.l3_p_upper = (tmp[i] & BIT(8))?1:0;
|
|
|
|
|
+ pch->alarm.l3_w_upper = (tmp[i] & BIT(10))?1:0;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }else
|
|
|
|
|
+ {
|
|
|
|
|
+ old_l1_v_upper = pch->alarm.l1_v_upper;
|
|
|
|
|
+ old_l1_v_lower = pch->alarm.l1_v_lower;
|
|
|
|
|
+ old_l1_c_upper = pch->alarm.l1_c_upper;
|
|
|
|
|
+ old_l1_p_upper = pch->alarm.l1_p_upper;
|
|
|
|
|
+ old_l1_w_upper = pch->alarm.l1_w_upper;
|
|
|
|
|
+ pch->alarm.l1_v_upper = (tmp[i] & BIT(2))?1:0;
|
|
|
|
|
+ pch->alarm.l1_v_lower = (tmp[i] & BIT(4))?1:0;
|
|
|
|
|
+ pch->alarm.l1_c_upper = (tmp[i] & BIT(6))?1:0;
|
|
|
|
|
+ pch->alarm.l1_p_upper = (tmp[i] & BIT(8))?1:0;
|
|
|
|
|
+ pch->alarm.l1_w_upper = (tmp[i] & BIT(10))?1:0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
info.id = i;
|
|
info.id = i;
|
|
|
info.wanning_type = ALARM_TYPE_POWER;
|
|
info.wanning_type = ALARM_TYPE_POWER;
|
|
@@ -750,47 +901,185 @@ static int board_read(power_handle_t *h, board_data_t *pbrd,uint8_t flag)
|
|
|
if(h->prod->type == PDU_AC_I3O1 || h->prod->type == PDU_AC_I3O1_H)
|
|
if(h->prod->type == PDU_AC_I3O1 || h->prod->type == PDU_AC_I3O1_H)
|
|
|
{
|
|
{
|
|
|
info.ph_info = pch->info.ph_id;
|
|
info.ph_info = pch->info.ph_id;
|
|
|
- }
|
|
|
|
|
- if(!old_l1_v_upper && pch->alarm.l1_v_upper)
|
|
|
|
|
- {
|
|
|
|
|
- info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
- info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
- info.over = STR_POWER_ID_OVER;
|
|
|
|
|
- wanning_operation(&info,pch->info.name);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(!old_l1_v_lower && pch->alarm.l1_v_lower)
|
|
|
|
|
- {
|
|
|
|
|
- info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
- info.max_min = STR_POWER_ID_MIN;
|
|
|
|
|
- info.over = STR_POWER_ID_LOW;
|
|
|
|
|
- wanning_operation(&info,pch->info.name);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(!old_l1_c_upper && pch->alarm.l1_c_upper)
|
|
|
|
|
- {
|
|
|
|
|
- info.ele_info = STR_POWER_ID_CUR;
|
|
|
|
|
- info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
- info.over = STR_POWER_ID_OVER;
|
|
|
|
|
- wanning_operation(&info,pch->info.name);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(!old_l1_p_upper && pch->alarm.l1_p_upper)
|
|
|
|
|
|
|
+ uint8_t _id = pch->info.ph_id -1;
|
|
|
|
|
+ switch(_id)
|
|
|
|
|
+ {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ {
|
|
|
|
|
+ if(!old_l1_v_upper && pch->alarm.l1_v_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l1_v_lower && pch->alarm.l1_v_lower)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MIN;
|
|
|
|
|
+ info.over = STR_POWER_ID_LOW;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l1_c_upper && pch->alarm.l1_c_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CUR;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l1_p_upper && pch->alarm.l1_p_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_POWER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l1_w_upper && pch->alarm.l1_w_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CONSUMER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ {
|
|
|
|
|
+ if(!old_l2_v_upper && pch->alarm.l2_v_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l2_v_lower && pch->alarm.l2_v_lower)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MIN;
|
|
|
|
|
+ info.over = STR_POWER_ID_LOW;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l2_c_upper && pch->alarm.l2_c_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CUR;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l2_p_upper && pch->alarm.l2_p_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_POWER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l2_w_upper && pch->alarm.l2_w_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CONSUMER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ {
|
|
|
|
|
+ if(!old_l3_v_upper && pch->alarm.l3_v_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l3_v_lower && pch->alarm.l3_v_lower)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MIN;
|
|
|
|
|
+ info.over = STR_POWER_ID_LOW;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l3_c_upper && pch->alarm.l3_c_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CUR;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l3_p_upper && pch->alarm.l3_p_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_POWER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l3_w_upper && pch->alarm.l3_w_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CONSUMER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else
|
|
|
{
|
|
{
|
|
|
- info.ele_info = STR_POWER_ID_POWER;
|
|
|
|
|
- info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
- info.over = STR_POWER_ID_OVER;
|
|
|
|
|
- wanning_operation(&info,pch->info.name);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(!old_l1_v_upper && pch->alarm.l1_v_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l1_v_lower && pch->alarm.l1_v_lower)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_VOL;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MIN;
|
|
|
|
|
+ info.over = STR_POWER_ID_LOW;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!old_l1_c_upper && pch->alarm.l1_c_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CUR;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if(!old_l1_w_upper && pch->alarm.l1_w_upper)
|
|
|
|
|
- {
|
|
|
|
|
- info.ele_info = STR_POWER_ID_CONSUMER;
|
|
|
|
|
- info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
- info.over = STR_POWER_ID_OVER;
|
|
|
|
|
- wanning_operation(&info,pch->info.name);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(!old_l1_p_upper && pch->alarm.l1_p_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_POWER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ if(!old_l1_w_upper && pch->alarm.l1_w_upper)
|
|
|
|
|
+ {
|
|
|
|
|
+ info.ele_info = STR_POWER_ID_CONSUMER;
|
|
|
|
|
+ info.max_min = STR_POWER_ID_MAXS;
|
|
|
|
|
+ info.over = STR_POWER_ID_OVER;
|
|
|
|
|
+ wanning_operation(&info,pch->info.name);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(flag)
|
|
if(flag)
|
|
@@ -2240,14 +2529,14 @@ int power_scan(void)
|
|
|
}else if(h->prod->type == PDU_AC_I3O2)
|
|
}else if(h->prod->type == PDU_AC_I3O2)
|
|
|
{
|
|
{
|
|
|
pch[j].info.ch = ch_idx+j;
|
|
pch[j].info.ch = ch_idx+j;
|
|
|
- pch[j].info.ph_id = p->phase_seq_2.phase_left[ch_idx-1] -'0';
|
|
|
|
|
- pch[j].info.ph_val = p->phase_seq_2.phase_right[ch_idx-1] -'0'; //作为双火线的右边相
|
|
|
|
|
|
|
+ pch[j].info.ph_id = p->phase_seq_2.phase_left[pch[j].info.ch -1] -'0';
|
|
|
|
|
+ pch[j].info.ph_val = p->phase_seq_2.phase_right[pch[j].info.ch -1] -'0'; //作为双火线的右边相
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
pch[j].info.ch = ch_idx+j; //序号从1开始, 发给控制板需从0开始
|
|
pch[j].info.ch = ch_idx+j; //序号从1开始, 发给控制板需从0开始
|
|
|
if(h->prod->type==PDU_AC_I3O1 || h->prod->type == PDU_AC_I3O1_H)
|
|
if(h->prod->type==PDU_AC_I3O1 || h->prod->type == PDU_AC_I3O1_H)
|
|
|
{
|
|
{
|
|
|
- pch[j].info.ph_id = p->phase_seq.phase_seq[ch_idx-1] -'0';
|
|
|
|
|
|
|
+ pch[j].info.ph_id = p->phase_seq.phase_seq[pch[j].info.ch-1] -'0';
|
|
|
} else
|
|
} else
|
|
|
pch[j].info.ph_id = 0;
|
|
pch[j].info.ph_id = 0;
|
|
|
}
|
|
}
|
|
@@ -3085,6 +3374,7 @@ int power_set_ph_cfg(power_ch_t *pch)
|
|
|
switch(h->prod->type)
|
|
switch(h->prod->type)
|
|
|
{
|
|
{
|
|
|
case PDU_AC_I3O1:
|
|
case PDU_AC_I3O1:
|
|
|
|
|
+ case PDU_AC_I3O1_H:
|
|
|
{
|
|
{
|
|
|
h->pbrd[pch->info.addr]->pch[pch->info.sch].info.ph_id = pch->info.ph_id; //ph
|
|
h->pbrd[pch->info.addr]->pch[pch->info.sch].info.ph_id = pch->info.ph_id; //ph
|
|
|
p->phase_seq.phase_seq[pch->info.ch-1] = pch->info.ph_id+'0';
|
|
p->phase_seq.phase_seq[pch->info.ch-1] = pch->info.ph_id+'0';
|