void str_output(FILE *fp, int end) { int state = 1; int cpoint = 0; int ch; while ((ch=fgetc(fp)) != EOF) { if ((state == 1) && (isspace(ch) || ispoint(ch))) { continue; } if (ch == '\n') { state = 0; continue; } if (ispoint(ch)) { state = 1; printf ("%c\n",ch); cpoint++; if (cpoint == end) { break; } } else { state = 0; printf("%c",ch); } } }
char* copy_filename(char *file, size_t lenfile, char *str) { int i, j; int flagPoint = 0; char VAL[] = "_copy"; for(i = 0; i < lenfile; i++) { if(flagPoint == 0) { if(ispoint(file[i]) == 1) { strcat(str, VAL); str[i+SHIFT] = file[i]; flagPoint += 1; } else { str[i] = file[i]; } } else { str[i+SHIFT] = file[i]; } } str[i+SHIFT] = '\0'; return str; }
LRESULT BacnetController::Fresh_Controller_Item(WPARAM wParam,LPARAM lParam) { int cmp_ret ;//compare if match it will 0; int Changed_Item = (int)wParam; int Changed_SubItem = (int)lParam; CString temp_task_info; CString New_CString = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); CString cstemp_value; //先保存 原来的值,等结束的时候来比对,看是否有改变,有改变就进行写动作; memcpy_s(&m_temp_controller_data[Changed_Item],sizeof(Str_controller_point),&m_controller_data.at(Changed_Item),sizeof(Str_controller_point)); if(Changed_SubItem == CONTROLLER_INPUT) { CString cs_temp = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); if(cs_temp.IsEmpty() == false) { cs_temp.MakeUpper(); char cTemp1[255]; char temp_input[250]; char * tempcs=NULL; memset(cTemp1,0,255); WideCharToMultiByte( CP_ACP, 0, cs_temp.GetBuffer(), -1, cTemp1, 255, NULL, NULL ); //Search the input label from the list. int temp_number=-1; byte temp_value_type = -1; byte temp_point_type=-1; int temp_panel = -1; int temp_net = -1; int k=0; //int temp1; tempcs = ispoint(cTemp1,&temp_number,&temp_value_type,&temp_point_type,&temp_panel,&temp_net,0,Station_NUM,&k); if(tempcs!=NULL) { strcpy(temp_input,tempcs); CString temp_des2; temp_des2.Empty(); MultiByteToWideChar( CP_ACP, 0, temp_input, (int)strlen(temp_input)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); m_controller_list.SetItemText(Changed_Item,CONTROLLER_INPUT,temp_des2); if(temp_panel != Station_NUM) { MessageBox(_T("Don't support other panel currently!"),_T("Warning"),MB_OK | MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); return 0; } if(temp_number > 0); //因为Input2 的number 是1; temp_number = temp_number - 1; temp_point_type = temp_point_type + 1; if(2 == temp_point_type) { m_controller_data.at(Changed_Item).input.number = temp_number; m_controller_data.at(Changed_Item).input.panel = temp_panel;//bac_gloab_panel; m_controller_data.at(Changed_Item).input.point_type = temp_point_type;//1 means input point CString temp_des3; if(temp_number < BAC_INPUT_ITEM_COUNT) { //temp_des3.Format(_T("%d"),m_Input_data.at(temp_number - 1).value); CString cstemp_value; float temp_float_value; temp_float_value = ((float)m_Input_data.at(temp_number).value) / 1000; temp_des3.Format(_T("%.1f"),temp_float_value); m_controller_data.at(Changed_Item).input_value = m_Input_data.at(temp_number).value; m_controller_list.SetItemText(Changed_Item,CONTROLLER_INPUTVALUE,temp_des3); } } else if(3 == temp_point_type) { m_controller_data.at(Changed_Item).input.number = temp_number; m_controller_data.at(Changed_Item).input.panel = temp_panel;//bac_gloab_panel; m_controller_data.at(Changed_Item).input.point_type = temp_point_type;//1 means input point CString temp_des3; if(temp_number < BAC_VARIABLE_ITEM_COUNT) { //temp_des3.Format(_T("%d"),m_Input_data.at(temp_number - 1).value); CString cstemp_value; float temp_float_value; temp_float_value = ((float)m_Variable_data.at(temp_number).value) / 1000; temp_des3.Format(_T("%.1f"),temp_float_value); m_controller_data.at(Changed_Item).input_value = m_Variable_data.at(temp_number).value; m_controller_list.SetItemText(Changed_Item,CONTROLLER_INPUTVALUE,temp_des3); } } else { m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); return 0; } } else { CString temp_message; temp_message.Format(_T("%s character not allowed in labels!"),cs_temp.GetString()); MessageBox(temp_message,_T("Information"),MB_OK |MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); return 0; } } } if(Changed_SubItem == CONTROLLER_INPUTVALUE) { //int temp_value = _wtoi(New_CString); int temp_value = (int)(_wtof(New_CString) * 1000); if(m_controller_data.at(Changed_Item).input.number == 0 ) return 0; if((m_controller_data.at(Changed_Item).input.number -1 )< BAC_INPUT_ITEM_COUNT) m_Input_data.at(m_controller_data.at(Changed_Item).input.number - 1).value = temp_value; temp_task_info.Format(_T("Write Controllers List Item%d .Changed the input value to \"%s\" "),Changed_Item + 1,New_CString); Post_Write_Message(g_bac_instance,WRITEINPUT_T3000,Changed_Item,Changed_Item,sizeof(Str_in_point),BacNet_hwd ,temp_task_info); return 0; } if(Changed_SubItem == CONTROLLER_SETVALUE) { // int temp_value = _wtoi(New_CString); int temp_value = (int)(_wtof(New_CString) * 1000); if(m_controller_data.at(Changed_Item).setpoint.number == 0 ) return 0; if((m_controller_data.at(Changed_Item).setpoint.number -1 )< BAC_VARIABLE_ITEM_COUNT) m_Variable_data.at(m_controller_data.at(Changed_Item).setpoint.number - 1).value = temp_value; temp_task_info.Format(_T("Write Controllers List Item%d .Changed the variable value to \"%s\" "),Changed_Item + 1,New_CString); Post_Write_Message(g_bac_instance,WRITEVARIABLE_T3000,Changed_Item,Changed_Item,sizeof(Str_in_point),BacNet_hwd ,temp_task_info); return 0; } if(Changed_SubItem == CONTROLLER_AUTO_MANUAL) { CString temp_cs = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); if(temp_cs.CompareNoCase(_T("Auto"))==0) { m_controller_list.SetCellEnabled(Changed_Item,CONTROLLER_OUTPUT,0); m_controller_data.at(Changed_Item).auto_manual = BAC_AUTO ; } else { m_controller_list.SetCellEnabled(Changed_Item,CONTROLLER_OUTPUT,1); m_controller_data.at(Changed_Item).auto_manual = BAC_MANUAL ; } } if(Changed_SubItem == CONTROLLER_OUTPUT) { CString temp_cs = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); int temp_int = (int)(_wtof(temp_cs) * 1000); m_controller_data.at(Changed_Item).value = temp_int; } if(Changed_SubItem == CONTROLLER_SETPOINT) { CString cs_temp = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); char cTemp1[255]; char temp_setpoint[250]; char * tempcs=NULL; memset(cTemp1,0,255); memset(temp_setpoint,0,250); WideCharToMultiByte( CP_ACP, 0, cs_temp.GetBuffer(), -1, cTemp1, 255, NULL, NULL ); int temp_number=-1; byte temp_value_type = -1; byte temp_point_type=-1; int temp_panel = -1; int temp_net = -1; int k=0; //int temp1; //Change the lable.ex: Change the tempcs = ispoint(cTemp1,&temp_number,&temp_value_type,&temp_point_type,&temp_panel,&temp_net,0,bac_gloab_panel,&k); if(tempcs!=NULL) { memcpy_s(temp_setpoint,250,tempcs,9); //strcpy_s(temp_setpoint,tempcs); //strcpy(temp_setpoint,tempcs); CString temp_des2; temp_des2.Empty(); MultiByteToWideChar( CP_ACP, 0, temp_setpoint, STR_VARIABLE_LABEL+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); m_controller_list.SetItemText(Changed_Item,CONTROLLER_SETPOINT,temp_des2); if(temp_panel != bac_gloab_panel) { MessageBox(_T("Don't support other panel currently!"),_T("Warning"),MB_OK | MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); return 0; } if(temp_number > 0) //Setpoint 也是这样;从0 开始的; temp_number = temp_number - 1; temp_point_type = temp_point_type + 1; //OUTPUT=1, INPUT, VARIABLE 要错位; m_controller_data.at(Changed_Item).setpoint.number = temp_number; m_controller_data.at(Changed_Item).setpoint.panel = temp_panel;//bac_gloab_panel; m_controller_data.at(Changed_Item).setpoint.point_type = temp_point_type;//1 means input point CString temp_des3; if(temp_number < BAC_VARIABLE_ITEM_COUNT) { if(m_Variable_data.at(temp_number).range < VARIABLE_ANALOG_UNITE_COUNT) temp_des3 = Variable_Analog_Units_Array[m_Variable_data.at(temp_number).range]; m_controller_list.SetItemText(Changed_Item,CONTROLLER_SETPOINTUNITS,temp_des3); } char tempAAAA[250]; memset(tempAAAA,0,250); temp_des3.Empty(); if(m_Variable_data.at(temp_number).range == 20 ) { if((m_controller_data.at(Changed_Item).setpoint_value>=0)&&(m_controller_data.at(Changed_Item).setpoint_value<86400)) intervaltotext( tempAAAA, m_controller_data.at(Changed_Item).setpoint_value ,0 , 0); MultiByteToWideChar( CP_ACP, 0, tempAAAA, strlen(tempAAAA) + 1, temp_des3.GetBuffer(MAX_PATH), MAX_PATH ); temp_des3.ReleaseBuffer(); } else { CString cstemp_value; float temp_float_value; temp_float_value = ((float)m_Variable_data.at(m_controller_data.at(Changed_Item).setpoint.number).value) / 1000; temp_des3.Format(_T("%.1f"),temp_float_value); } m_controller_list.SetItemText(Changed_Item,CONTROLLER_SETVALUE,temp_des3); } else { CString temp_show_ret; temp_show_ret = _T("\"") + cs_temp + _T("\"") + _T(" is a invalid label or keyword ."); SetPaneString(BAC_SHOW_MISSION_RESULTS,temp_show_ret); m_controller_list.SetItemText(Changed_Item,CONTROLLER_SETPOINT,_T("")); } } if(Changed_SubItem == CONTROLLER_PROPORTIONAL) { int temp_proportional=0; CString cs_temp = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); if((cs_temp.GetLength()>3) || (_wtoi(cs_temp)>255) ) { MessageBox(_T("Please input a effective value"),_T("Information"),MB_OK |MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); } else { m_controller_data.at(Changed_Item).proportional = _wtoi(cs_temp); } } if(Changed_SubItem == CONTROLLER_RESET) { int temp_reset=0; CString cs_temp = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); if((cs_temp.GetLength()>3) || (_wtoi(cs_temp)>255) ) { MessageBox(_T("Please input a effective value"),_T("Information"),MB_OK |MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); } else { m_controller_data.at(Changed_Item).reset = _wtoi(cs_temp); } } if(Changed_SubItem == CONTROLLER_RATE) { int temp_rate=0; CString cs_temp = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); int i_value = (int)(_wtof(cs_temp) * 100) ; if((i_value > 200) || (i_value < 0)) //if((cs_temp.GetLength()>1) || (_wtoi(cs_temp)>2) ) { MessageBox(_T("Please input a effective value 0.00 - 2.00"),_T("Information"),MB_OK |MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); } else { m_controller_data.at(Changed_Item).rate = i_value; } } if(Changed_SubItem == CONTROLLER_BIAS) { int temp_bias=0; CString cs_temp = m_controller_list.GetItemText(Changed_Item,Changed_SubItem); if((cs_temp.GetLength()>3) || (_wtoi(cs_temp)>100) ) { MessageBox(_T("Please input a effective value"),_T("Information"),MB_OK |MB_ICONINFORMATION); m_controller_list.SetItemText(Changed_Item,Changed_SubItem,_T("")); } else { m_controller_data.at(Changed_Item).bias = _wtoi(cs_temp); } } cmp_ret = memcmp(&m_temp_controller_data[Changed_Item],&m_controller_data.at(Changed_Item),sizeof(Str_controller_point)); if(cmp_ret!=0) { m_controller_list.SetItemBkColor(Changed_Item,Changed_SubItem,LIST_ITEM_CHANGED_BKCOLOR); temp_task_info.Format(_T("Write Controllers List Item%d .Changed to \"%s\" "),Changed_Item + 1,New_CString); Post_Write_Message(g_bac_instance,WRITEPID_T3000,Changed_Item,Changed_Item,sizeof(Str_controller_point),m_controller_dlg_hwnd ,temp_task_info,Changed_Item,Changed_SubItem); } return 0; }
LRESULT BacnetController::Fresh_Controller_List(WPARAM wParam,LPARAM lParam) { CString temp_des2; CString temp_des3; CString temp_in_unit; CString temp_set_unit; int Fresh_Item; int isFreshOne = (int)lParam; if(isFreshOne == REFRESH_ON_ITEM) { Fresh_Item = (int)wParam; } else { #if 1 if(m_controller_list.IsDataNewer((char *)&m_controller_data.at(0),sizeof(Str_controller_point) * BAC_PID_COUNT)) { //避免list 刷新时闪烁;在没有数据变动的情况下不刷新List; m_controller_list.SetListData((char *)&m_controller_data.at(0),sizeof(Str_controller_point) * BAC_PID_COUNT); } else { //return 0; } #endif } for (int i=0;i<(int)m_controller_data.size();i++) { if(i>=controller_item_limit_count) break; if(isFreshOne) { i = Fresh_Item; } temp_des2.Empty(); if(2 == m_controller_data.at(i).input.point_type) { if(m_controller_data.at(i).input.number< BAC_INPUT_ITEM_COUNT) { MultiByteToWideChar( CP_ACP, 0, (char *)m_Input_data.at(m_controller_data.at(i).input.number ).label, (int)strlen((char *)m_Input_data.at(m_controller_data.at(i).input.number ).label)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); if(temp_des2.GetLength()>9) temp_des2.Format(_T("%d-IN%d"),m_controller_data.at(i).input.panel,m_controller_data.at(i).input.number); if(temp_des2.IsEmpty()) temp_des2.Format(_T("%d-IN%d"),m_controller_data.at(i).input.panel,m_controller_data.at(i).input.number); //temp_des3.Format(_T("%d"),m_Input_data.at(m_controller_data.at(i).input.number - 1).value); CString cstemp_value; float temp_float_value; temp_float_value = ((float)m_controller_data.at(i).input_value) / 1000; cstemp_value.Format(_T("%.1f"),temp_float_value); m_controller_list.SetItemText(i,CONTROLLER_INPUTVALUE,cstemp_value); //******************************************************************************************************** // bind the the input units. int x = m_controller_data.at(i).input.number; if(m_Input_data.at(x).digital_analog == BAC_UNITS_ANALOG) { m_controller_list.SetItemText(i,CONTROLLER_INPUTUNITS,Input_List_Analog_Units[m_Input_data.at(x).range]); } } } else if(3 == m_controller_data.at(i).input.point_type) { if(m_controller_data.at(i).input.number< BAC_VARIABLE_ITEM_COUNT) { MultiByteToWideChar( CP_ACP, 0, (char *)m_Variable_data.at(m_controller_data.at(i).input.number ).label, (int)strlen((char *)m_Variable_data.at(m_controller_data.at(i).input.number ).label)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); if(temp_des2.GetLength()>9) temp_des2.Format(_T("%d-VAR%d"),m_controller_data.at(i).input.panel,m_controller_data.at(i).input.number); if(temp_des2.IsEmpty()) temp_des2.Format(_T("%d-VAR%d"),m_controller_data.at(i).input.panel,m_controller_data.at(i).input.number); //temp_des3.Format(_T("%d"),m_Input_data.at(m_controller_data.at(i).input.number - 1).value); CString cstemp_value; float temp_float_value; temp_float_value = ((float)m_controller_data.at(i).input_value) / 1000; cstemp_value.Format(_T("%.1f"),temp_float_value); m_controller_list.SetItemText(i,CONTROLLER_INPUTVALUE,cstemp_value); //******************************************************************************************************** // bind the the input units. int x = m_controller_data.at(i).input.number; if(m_Variable_data.at(x).digital_analog == BAC_UNITS_ANALOG) { if(m_Variable_data.at(x).range <= sizeof(Variable_Analog_Units_Array)/sizeof(Variable_Analog_Units_Array[0])) m_controller_list.SetItemText(i,CONTROLLER_INPUTUNITS,Variable_Analog_Units_Array[m_Variable_data.at(x).range]); } } } else { m_controller_list.SetItemText(i,CONTROLLER_INPUTVALUE,_T("")); m_controller_list.SetItemText(i,CONTROLLER_INPUTUNITS,_T("")); } m_controller_list.SetItemText(i,CONTROLLER_INPUT,temp_des2); float persend_data; persend_data = ((float)m_controller_data.at(i).value)/ 1000; CString temp_output_value; temp_output_value.Format(_T("%.1f%%"),persend_data); m_controller_list.SetItemText(i,CONTROLLER_OUTPUT,temp_output_value); //CString temp_sample_time; //temp_sample_time.Format(_T("%u"),m_controller_data.at(i).sample_time); //m_controller_list.SetItemText(i,CONTROLLER_SAMPLE_TIME,temp_sample_time); //temp_des2.Format(_T("%d"),m_controller_data.at(i).input_value); //m_controller_list.SetItemText(i,CONTROLLER_INPUTVALUE,temp_des2); //if(m_controller_data.at(i).input.number < BAC_INPUT_ITEM_COUNT) //{ // if(m_Input_data.at(m_controller_data.at(i).input.number).range < INPUT_ANOLAG_UNITE_COUNT) // m_controller_list.SetItemText(i,CONTROLLER_INPUTUNITS,Input_List_Analog_Units[m_Input_data.at(m_controller_data.at(i).input.number).range]); // else // m_controller_list.SetItemText(i,CONTROLLER_INPUTUNITS,_T("")); //} temp_des2.Empty(); temp_des3.Empty(); temp_set_unit.Empty(); if(m_controller_data.at(i).setpoint.point_type == 1) { if(m_controller_data.at(i).setpoint.number< BAC_OUTPUT_ITEM_COUNT) { } } else if(m_controller_data.at(i).setpoint.point_type == 2) { if(m_controller_data.at(i).setpoint.number< BAC_INPUT_ITEM_COUNT) { int num_point,num_panel,num_net,k; Point_T3000 point; point.number = m_controller_data.at(i).setpoint.number; point.number = point.number + 1; //input setpoint 是从 0 开始计数的 ,但是要去找point label 要从1开始; point.panel = m_controller_data.at(i).setpoint.panel; point.point_type = m_controller_data.at(i).setpoint.point_type - 1; //调用 ispoint的时候要减一; byte point_type,var_type; int temp_network = 0; char buf[255]; char q[17]; pointtotext_for_controller(q, &point); char * temp1 = ispoint(q,&num_point,&var_type, &point_type, &num_panel, &num_net, temp_network, point.panel, &k); if(temp1!=NULL) { if(strlen(temp1) < 255) { strcpy(buf,temp1); MultiByteToWideChar( CP_ACP, 0, (char *)buf,(int)strlen((char *)buf)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); float temp_float_value; temp_float_value = ((float)m_controller_data.at(i).setpoint_value) / 1000; temp_des3.Format(_T("%.1f"),temp_float_value); int x = m_controller_data.at(i).setpoint.number; if(m_Input_data.at(x).digital_analog == BAC_UNITS_ANALOG) { if(m_Input_data.at(x).range < (sizeof(Input_List_Analog_Units)/sizeof(Input_List_Analog_Units[0]))) temp_set_unit = Input_List_Analog_Units[m_Input_data.at(x).range]; } } } } } else if(m_controller_data.at(i).setpoint.point_type == 3) //Variable { if(m_controller_data.at(i).setpoint.number< BAC_VARIABLE_ITEM_COUNT) { int num_point,num_panel,num_net,k; Point_T3000 point; point.number = m_controller_data.at(i).setpoint.number; point.number = point.number + 1; //input setpoint 是从 0 开始计数的 ,但是要去找point label 要从1开始; point.panel = m_controller_data.at(i).setpoint.panel; point.point_type = m_controller_data.at(i).setpoint.point_type - 1; //调用 ispoint的时候要减一; byte point_type,var_type; int temp_network = 0; char buf[255]; char q[17]; pointtotext_for_controller(q, &point); char * temp1 = ispoint(q,&num_point,&var_type, &point_type, &num_panel, &num_net, temp_network, point.panel, &k); if(temp1!=NULL) { if(strlen(temp1) < 255) { strcpy(buf,temp1); MultiByteToWideChar( CP_ACP, 0, (char *)buf,(int)strlen((char *)buf)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); float temp_float_value; temp_float_value = ((float)m_controller_data.at(i).setpoint_value) / 1000; temp_des3.Format(_T("%.1f"),temp_float_value); int x = m_controller_data.at(i).setpoint.number; if(m_Variable_data.at(x).digital_analog == BAC_UNITS_DIGITAL) { if(m_Variable_data.at(x).range>30) { temp_set_unit = _T(""); } else { CString temp1; CStringArray temparray; if((m_Variable_data.at(x).range < 23) &&(m_Variable_data.at(x).range !=0)) temp1 = Digital_Units_Array[m_Variable_data.at(x).range]; else if((m_Variable_data.at(x).range >=23) && (m_Variable_data.at(x).range <= 30)) { if(receive_customer_unit) temp1 = temp_unit_no_index[m_Variable_data.at(x).range - 23]; } SplitCStringA(temparray,temp1,_T("/")); if((temparray.GetSize()==2)) { if(m_Variable_data.at(x).control == 0) temp_set_unit = temparray.GetAt(0); else temp_set_unit = temparray.GetAt(1); } } } else { if(m_Variable_data.at(x).range == 20) //如果是时间; { temp_set_unit = Variable_Analog_Units_Array[m_Variable_data.at(x).range]; char temp_char[50]; int time_seconds = m_Variable_data.at(x).value / 1000; intervaltotext(temp_char,time_seconds,0,0); CString temp_11; MultiByteToWideChar( CP_ACP, 0, temp_char, strlen(temp_char) + 1, temp_11.GetBuffer(MAX_PATH), MAX_PATH ); temp_11.ReleaseBuffer(); temp_set_unit = temp_11; //temp_value.Format(_T("%d"),m_Variable_data.at(i).value); //m_variable_list.SetItemText(i,VARIABLE_VALUE,temp_value); } else if(m_Variable_data.at(x).range<=sizeof(Variable_Analog_Units_Array)/sizeof(Variable_Analog_Units_Array[0])) { //m_variable_list.SetItemText(i,VARIABLE_UNITE,Variable_Analog_Units_Array[m_Variable_data.at(i).range]); temp_set_unit = Variable_Analog_Units_Array[m_Variable_data.at(x).range]; //CString cstemp_value; //float temp_float_value; //temp_float_value = ((float)m_Variable_data.at(i).value) / 1000; //cstemp_value.Format(_T("%.3f"),temp_float_value); //m_variable_list.SetItemText(i,VARIABLE_VALUE,cstemp_value); //temp_value.Format(_T("%d"),m_Variable_data.at(i).value); //m_variable_list.SetItemText(i,VARIABLE_VALUE,temp_value); } } } } } } #if 0 if(m_controller_data.at(i).setpoint.number< BAC_VARIABLE_ITEM_COUNT) { if(m_controller_data.at(i).setpoint.point_type == 0 ) temp_des2.Empty(); else { int num_point,num_panel,num_net,k; Point_T3000 point; point.number = m_controller_data.at(i).setpoint.number; point.number = point.number + 1; //input setpoint 是从 0 开始计数的 ,但是要去找point label 要从1开始; point.panel = m_controller_data.at(i).setpoint.panel; point.point_type = m_controller_data.at(i).setpoint.point_type; byte point_type,var_type; int temp_network = 0; char buf[255]; char q[17]; pointtotext_for_controller(q, &point); char * temp1 = ispoint(q,&num_point,&var_type, &point_type, &num_panel, &num_net, temp_network, point.panel, &k); if(temp1!=NULL) { if(strlen(temp1) < 255) { strcpy(buf,temp1); MultiByteToWideChar( CP_ACP, 0, (char *)buf,(int)strlen((char *)buf)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); } } #if 0 MultiByteToWideChar( CP_ACP, 0, (char *)m_Variable_data.at(m_controller_data.at(i).setpoint.number - 1).label, (int)strlen((char *)m_Variable_data.at(m_controller_data.at(i).setpoint.number - 1).label)+1, temp_des2.GetBuffer(MAX_PATH), MAX_PATH ); temp_des2.ReleaseBuffer(); if(temp_des2.GetLength()>9)//如果获取的Var长度大于9,说明获取的Label不对,也要重置; { temp_des2.Empty(); temp_des3.Empty(); } else { CString cstemp_value; float temp_float_value; temp_float_value = ((float)m_Variable_data.at(m_controller_data.at(i).setpoint.number - 1).value) / 1000; temp_des3.Format(_T("%.1f"),temp_float_value); //temp_des3.Format(_T("%d"),m_Variable_data.at(m_controller_data.at(i).setpoint.number - 1).value); } if(m_Variable_data.at(i).digital_analog == BAC_UNITS_ANALOG) { if(m_Variable_data.at(i).range<=sizeof(Variable_Analog_Units_Array)/sizeof(Variable_Analog_Units_Array[0])) { m_controller_list.SetItemText(i,CONTROLLER_SETPOINTUNITS,Variable_Analog_Units_Array[m_Variable_data.at(m_controller_data.at(i).setpoint.number - 1).range]); //temp_value.Format(_T("%d"),m_Variable_data.at(i).value); //m_variable_list.SetItemText(i,VARIABLE_VALUE,temp_value); } } #endif } } #endif m_controller_list.SetItemText(i,CONTROLLER_SETPOINT,temp_des2); m_controller_list.SetItemText(i,CONTROLLER_SETVALUE,temp_des3); m_controller_list.SetItemText(i,CONTROLLER_SETPOINTUNITS,temp_set_unit); //if(m_controller_data.at(i).units < VARIABLE_ANALOG_UNITE_COUNT) // m_controller_list.SetItemText(i,CONTROLLER_SETPOINTUNITS,Variable_Analog_Units_Array[m_controller_data.at(i).units]); //else // m_controller_list.SetItemText(i,CONTROLLER_SETPOINTUNITS,_T("")); if(m_controller_data.at(i).action == 0) { m_controller_list.SetItemText(i,CONTROLLER_ACTION,_T("-")); } else if(m_controller_data.at(i).action >= 1) { m_controller_list.SetItemText(i,CONTROLLER_ACTION,_T("+")); } //else //{ // m_controller_list.SetItemText(i,CONTROLLER_SETPOINTUNITS,_T("")); //} temp_des3.Format(_T("%d"),m_controller_data.at(i).proportional); m_controller_list.SetItemText(i,CONTROLLER_PROPORTIONAL,temp_des3); temp_des3.Format(_T("%d"),m_controller_data.at(i).reset); m_controller_list.SetItemText(i,CONTROLLER_RESET,temp_des3); if(m_controller_data.at(i).auto_manual==0) { m_controller_list.SetItemText(i,CONTROLLER_AUTO_MANUAL,_T("Auto")); m_controller_list.SetCellEnabled(i,CONTROLLER_OUTPUT,0); } else { m_controller_list.SetItemText(i,CONTROLLER_AUTO_MANUAL,_T("Manual")); m_controller_list.SetCellEnabled(i,CONTROLLER_OUTPUT,1); } if(m_controller_data.at(i).bias<=100) { temp_des3.Format(_T("%d"),m_controller_data.at(i).bias); m_controller_list.SetItemText(i,CONTROLLER_BIAS,temp_des3); } else { m_controller_data.at(i).bias = 0; m_controller_list.SetItemText(i,CONTROLLER_BIAS,_T("0")); } if(m_controller_data.at(i).rate<=200) { temp_des3.Format(_T("%.2f"),((float)m_controller_data.at(i).rate)/100); m_controller_list.SetItemText(i,CONTROLLER_RATE,temp_des3); } else { m_controller_data.at(i).rate = 0; m_controller_list.SetItemText(i,CONTROLLER_RATE,_T("0")); } if(isFreshOne) { break; } } return 0; }
void parser1(FILE *fp, int N, int *diff, bool st, int *ch) { int state = INIT; long int cur = ftell(fp); // printf ("ch=%c, diff = %d\n",*ch, *diff); // while ((*ch!=EOF) && (!isalnum(*ch))) { // cur = ftell(fp); // *ch = fgetc(fp); // } // fseek(fp,cur,SEEK_SET); while ((((*diff) > N) && (*ch=fgetc(fp)) != EOF)/* && ((*diff) > N)*/) { if (state == INIT) { if (isalnum(*ch)/* || ch == '-' || ch == '\''*/) { state = SB; if (st) { printf ("%c",*ch); } continue; } if (isspace(*ch)) { state = LF; if (st) { if (*ch == '\n') printf (" "); else printf ("%c",*ch); } continue; } if (ispoint(*ch)) { state = PT; if (st) { if (*ch == '\n') printf (" "); else printf ("%c",*ch); } continue; } else { state = OT; if (st) { printf ("%c",*ch); } continue; } } if (state == SB) { if (isalnum(*ch) || *ch == '-' || *ch == '\'') { if (st) { printf ("%c",*ch); } continue; } if (isspace(*ch)) { state = LF; (*diff)--; if (st) { if (*ch == '\n') printf (" "); else printf ("%c",*ch); } continue; } if (ispoint(*ch)) { state = PT; (*diff)--; if (st) { printf ("%c",*ch); } continue; } else { state = OT; (*diff)--; if (st) { printf ("%c",*ch); } continue; } } if (state == LF) { if (isalnum(*ch)/* || ch == '-' || ch == '\''*/) { state = SB; if (st) { printf ("%c",*ch); } continue; } if (isspace(*ch)) { if (st) { if (*ch == '\n') printf (" "); else printf ("%c",*ch); } continue; } if (ispoint(*ch)) { state = PT; if (st) { printf ("%c",*ch); } continue; } else { state = OT; if (st) { printf ("%c",*ch); } continue; } } if (state == PT) { if (isalnum(*ch)/* || ch == '-' || ch == '\''*/) { state = SB; if (st) { printf ("%c",*ch); } continue; } if (isspace(*ch)) { state = LF; if (st) { if (*ch == '\n') printf (" "); else printf ("%c",*ch); } continue; } if (ispoint(*ch)) { state = PT; if (st) { printf ("%c",*ch); } continue; } else { if (st) { printf ("%c",*ch); } continue; } } if (state == OT) { if (isalnum(*ch)/* || ch == '-' || ch == '\''*/) { state = SB; if (st) { printf ("%c",*ch); } continue; } if (isspace(*ch)) { state = LF; if (st) { if (*ch == '\n') printf (" "); else printf ("%c",*ch); } continue; } if (ispoint(*ch)) { state = PT; if (st) { printf ("%c",*ch); } continue; } else { if (st) { printf ("%c",*ch); } continue; } } } // printf ("%c",*ch); //while ((ch!=EOF) && (isspace(ch))) ch=fgetc(fp); }
void sparser (BB *btree, char fl, int N, char *idx_path) { Qlist *query = qlist_create(); int i=0; unsigned int ch; char *word = (char*)malloc(sizeof(char)*80); int state = INIT; int numb_query = 0; int count_word = 0; while ((ch = getchar())!=EOF) { if (i>80) { // printf ("I'm here\n"); char *tmp = (char *)realloc(word, 10000); word = tmp; } if (state == INIT) { if (ch == '\n') { word[i++] = '\0'; if (!(isspace(word[0]) || word[0]=='\0' || ispoint(word[0]))) { qlist_insert(query,word,i); memset(word,0,i); count_word++; numb_query++; } i=0; query_find(btree,query,count_word,fl,numb_query,N); // qlist_prn(query); qlist_clear(query); state = INIT; count_word=0; continue; } if (isalnum(ch)) { state = SB; word[i] = tolower(ch); i++; continue; } else { state = INIT; continue; } } if (state == LF) { word[i++] = '\0'; qlist_insert(query,word,i); memset(word,0,i); i=0; count_word++; numb_query++; query_find(btree,query,count_word,fl,numb_query,N); // qlist_prn(query); qlist_clear(query); state = INIT; count_word=0; } if (state == SB) { if (isalnum(ch) || ch =='\'' || ch == '-') { word[i++]=tolower(ch); continue; } if (ch == '\n') { word[i++] = '\0'; qlist_insert(query,word,i); memset(word,0,i); i=0; count_word++; numb_query++; query_find(btree,query,count_word,fl,numb_query,N); // qlist_prn(query); qlist_clear(query); state = INIT; count_word=0; continue; } else { word[i] = '\0'; i++; qlist_insert(query,word,i); memset(word,0,i); i=0; state = INIT; count_word++; } } } printf ("searching queries have finished\n"); }