Loading…

方法名称: Method_Read_Trend_All_LIGHT

方法ID: 0x4843

方法标签: Read trend curves

方法描述:


  • {
  • int nDataReadCount;
  • int select;
  • int count_retries;
  • int tabnState[2];
  • int nState;
  • int x1;
  • int nb_trend;
  • int position;
  • int nb_points;
  • int sel_1;
  • int sel_2;
  • int sel_3;
  • int sel_4;
  • int MasterLength;
  • int nTransaction;
  • int reduce_points;
  • long intput_tmp;
  • long i;
  • long varid[2];
  • long nBCT;
  • unsigned int compareDW[29];
  • unsigned int compareVal;
  • long max_trend_entries;
  • float max_y;
  • float min_y;
  • float max_y_2;
  • float min_y_2;
  • float max_y_3;
  • float min_y_3;
  • float max_y_4;
  • float min_y_4;
  • float flt_y;
  • float max_1;
  • float max_2;
  • float max_3;
  • float max_4;
  • float min_1;
  • float min_2;
  • float min_3;
  • float min_4;
  • nb_trend = 0;
  • position = 0;
  • reduce_points = 0;
  • x1 = 0;
  • sel_1 = 0;
  • sel_2 = 0;
  • sel_3 = 0;
  • sel_4 = 0;
  • max_y = -1000000;
  • min_y = 100000;
  • max_y_2 = -1000000;
  • min_y_2 = 100000;
  • max_y_3 = -1000000;
  • min_y_3 = 100000;
  • max_y_4 = -1000000;
  • min_y_4 = 100000;
  • max_1 = 100000;
  • max_2 = 100000;
  • max_3 = 100000;
  • max_4 = 100000;
  • min_1 = 100000;
  • min_2 = 100000;
  • min_3 = 100000;
  • min_4 = 100000;
  • _set_all_resp_code(0);
  • _set_device_status(0xFF,0);
  • i = 0;
  • send_command_trans(143,10);
  • nBCT = _ivar_value(17634);
  • if (nBCT == 0 || nBCT == 107)
  • {
  • compareDW[0] = 0x3a7d6d3d;
  • compareDW[1] = 0x513e2d2d;
  • compareDW[2] = 0x717a2f6a;
  • compareDW[3] = 0x43755f46;
  • compareDW[4] = 0x41247658;
  • compareDW[5] = 0x6b3d3734;
  • compareDW[6] = 0x76737076;
  • compareDW[7] = 0x6137416f;
  • compareDW[8] = 0x435b515d;
  • compareDW[9] = 0x2b50534a;
  • compareDW[10] = 0x26766a33;
  • compareDW[11] = 0x626f235e;
  • compareDW[12] = 0x61aa7347;
  • compareDW[13] = 0x6e735477;
  • compareDW[14] = 0x264c4c34;
  • compareDW[15] = 0x3462787d;
  • compareDW[16] = 0x3a7d6d3d;
  • compareDW[17] = 0x513e2d2d;
  • compareDW[18] = 0x717a2f6a;
  • compareDW[19] = 0x43755f46;
  • compareDW[20] = 0x41247658;
  • compareDW[21] = 0x6b3d3734;
  • compareDW[22] = 0x76737076;
  • compareDW[23] = 0x6137416f;
  • compareDW[24] = 0x435b515d;
  • compareDW[25] = 0x2b50534a;
  • compareDW[26] = 0x26766a33;
  • _iassign(17634,107);
  • send_command_trans(143,0);
  • for (i = 0; i < 25; i++)
  • {
  • compareVal = _ivar_value(resolve_array_ref(17731,i));
  • if (compareDW[i] != compareVal)
  • {
  • break;
  • }
  • }
  • remove_all_abort();
  • }
  • if (i == 25)
  • {
  • _iassign(17634,60);
  • nTransaction = 70;
  • MasterLength = 60;
  • }
  • else
  • {
  • _iassign(17634,16);
  • nTransaction = 71;
  • MasterLength = 16;
  • }
  • intput_tmp = _lvar_value(17440);
  • if (intput_tmp != 33004)
  • {
  • nb_trend = nb_trend + 1;
  • sel_1 = 1;
  • save_values();
  • }
  • intput_tmp = _lvar_value(17441);
  • if (intput_tmp != 33004)
  • {
  • nb_trend = nb_trend + 1;
  • sel_2 = 1;
  • save_values();
  • }
  • intput_tmp = _lvar_value(17442);
  • if (intput_tmp != 33004)
  • {
  • nb_trend = nb_trend + 1;
  • sel_3 = 1;
  • save_values();
  • }
  • intput_tmp = _lvar_value(17443);
  • if (intput_tmp != 33004)
  • {
  • nb_trend = nb_trend + 1;
  • sel_4 = 1;
  • save_values();
  • }
  • if (nb_trend != 0)
  • {
  • max_trend_entries = _ivar_value(17445);
  • _iassign(17456,max_trend_entries);
  • send_command_trans(178,1411);
  • send_command_trans(173,287);
  • _iassign(17750,0);
  • _iassign(18718,nb_trend);
  • _iassign(17732,132);
  • _iassign(17748,1);
  • i = _ivar_value(17457);
  • _iassign(17439,5);
  • send_command_trans(178,1410);
  • send_command_trans(146,2);
  • count_retries = 1;
  • while (count_retries <= 15 && nState != 100)
  • {
  • DELAY(2,literal_string(2833));
  • count_retries = count_retries + 1;
  • send_command_trans(147,2);
  • tabnState[0] = 17451;
  • nState = _ivar_value(17451);
  • }
  • if (nState != 100)
  • {
  • ACKNOWLEDGE(literal_string(2834));
  • abort();
  • }
  • nDataReadCount = 0;
  • if (nb_trend == 1)
  • {
  • nb_points = max_trend_entries;
  • reduce_points = max_trend_entries - nb_points * 1;
  • }
  • if (nb_trend == 2)
  • {
  • nb_points = max_trend_entries / 2;
  • reduce_points = max_trend_entries - nb_points * 2;
  • }
  • if (nb_trend == 3)
  • {
  • nb_points = max_trend_entries / 3;
  • reduce_points = max_trend_entries - nb_points * 3;
  • }
  • if (nb_trend == 4)
  • {
  • nb_points = max_trend_entries / 4;
  • reduce_points = max_trend_entries - nb_points * 4;
  • }
  • _iassign(18719,-HB_TrendInterval_1 * nb_points);
  • _iassign(17732,132);
  • _iassign(17748,1);
  • send_command_trans(211,0);
  • while (nDataReadCount <= max_trend_entries - 1 - reduce_points)
  • {
  • if (MasterLength == 60)
  • {
  • if (max_trend_entries - nDataReadCount >= 15)
  • {
  • _iassign(17794,(nDataReadCount + MasterLength / 4) * 100 / max_trend_entries);
  • }
  • else


请登录以获得完整内容