📄 form.lst
字号:
-=======================================
984 //检查表中数据是否正确
985 //========================================================================================================
-=======================================
986 unsigned int Is_para_right(void)
987 {
988 1 unsigned int i;
989 1 for(i=0;i<9;i++)
990 1 {
991 2 statusbar.text=(unsigned char*)"正在检查数据";//提示检查数据
992 2 set_statusbar_window(&statusbar);
993 2 languge_mode(English,no);
994 2 set_window_str("!");
995 2 temp_para[i].hour=(para_table.str[i][0]-'0')*10+(para_table.str[i][1]-'0');
996 2 if(temp_para[i].hour>24)
997 2 {
998 3 statusbar.text=(unsigned char*)"小时不能大于";//提示错误
999 3 set_statusbar_window(&statusbar);
1000 3 languge_mode(English,no);
1001 3 set_window_str("24!");
1002 3 para_table.colomn=i;
1003 3 para_table.array=0;
1004 3 init_caract(para_table.ins_dot[i][0].x,para_table.ins_dot[i][0].y,0x4f,0xe0,yes); //在错误处显示红
-色光标
1005 3 return error;
1006 3 }
1007 2 temp_para[i].minite=(para_table.str[i][2]-'0')*10+(para_table.str[i][3]-'0');
1008 2 if(temp_para[i].minite>59)
1009 2 {
1010 3 statusbar.text=(unsigned char*)"分钟不能大于";
1011 3 set_statusbar_window(&statusbar);
1012 3 languge_mode(English,no);
C51 COMPILER V7.07 FORM 05/17/2003 16:08:38 PAGE 18
1013 3 set_window_str("60!");
1014 3 para_table.colomn=i;
1015 3 para_table.array=2;
1016 3 init_caract(para_table.ins_dot[i][2].x,para_table.ins_dot[i][2].y,0x4f,0xe0,yes); //在错误处显示红色光标
1017 3 return error;
1018 3 }
1019 2 if(para_table.str[i][7]=='\0')
1020 2 temp_para[i].temperature=(para_table.str[i][4]-'0')*100+(para_table.str[i][5]-'0')*10+(para_table.str[i
-][6]-'0');
1021 2 else
1022 2 {
1023 3 temp_para[i].temperature=(para_table.str[i][4]-'0')*1000+(para_table.str[i][5]-'0')*100+(para_table.str
-[i][6]-'0')*10+(para_table.str[i][7]-'0');
1024 3 if(temp_para[i].temperature>1100)
1025 3 {
1026 4 statusbar.text=(unsigned char*)"温度不能大于";
1027 4 set_statusbar_window(&statusbar);
1028 4 languge_mode(English,no);
1029 4 set_window_str("1100!");
1030 4 para_table.colomn=i;
1031 4 para_table.array=4;
1032 4 init_caract(para_table.ins_dot[i][4].x,para_table.ins_dot[i][4].y,0x4f,0xe0,yes); //在错误处显示红色光标
1033 4 return error;
1034 4 }
1035 3 }
1036 2 }
1037 1 statusbar.text=(unsigned char*)"数据正确";
1038 1 set_statusbar_window(&statusbar);
1039 1 languge_mode(English,no);
1040 1 set_window_str("!");
1041 1 para_table.Is_data_exist=yes;
1042 1 return 1;
1043 1 }
1044
1045 void save_para_to_AI(void)
1046 {
1047 1 unsigned int i;
1048 1 //显示正在通信
1049 1 statusbar.text=(unsigned char*)"正在通信";//提示检查数据
1050 1 set_statusbar_window(&statusbar);
1051 1 languge_mode(English,no);
1052 1 set_window_str("!");
1053 1 write_AI(0x15,12); //停止AI表
1054 1 for(i=0;i<9;i++)
1055 1 {
1056 2 write_AI(0x1A+i*2,temp_para[i].temperature); //写入温度
1057 2 write_AI(0x1B+i*2,temp_para[i].hour*60+temp_para[i].minite); //写入时间
1058 2 }
1059 1 //write_AI(0,1); //从第一段执行
1060 1 //write_AI(0x15,0); //启动AI表
1061 1 //显示通信结束
1062 1 statusbar.text=(unsigned char*)"正在通信";//提示检查数据
1063 1 set_statusbar_window(&statusbar);
1064 1 languge_mode(English,no);
1065 1 set_window_str("!");
1066 1 }
1067 //========================================================================================================
-========
1068 //
1069 //========================================================================================================
-========
1070 void draw_scale()
C51 COMPILER V7.07 FORM 05/17/2003 16:08:38 PAGE 19
1071 {
1072 1 unsigned char i;
1073 1 scale.sum_time=0;
1074 1 for(i=0;i<9;i++)
1075 1 {
1076 2 scale.sum_time+=temp_para[i].hour*60+temp_para[i].minite;
1077 2 }
1078 1 scale.scale_time=1.2*scale.sum_time/8; //每刻度的值
1079 1 for(i=1;i<=4;i++)
1080 1 {
1081 2 scale.hour=(scale.scale_time*2*i)/60;
1082 2 scale.minite=(scale.scale_time*2*i)%60;
1083 2 scale.scale_str[0]=scale.hour/10+'0';
1084 2 scale.scale_str[1]=scale.hour%10+'0';
1085 2 scale.scale_str[3]=scale.minite/10+'0';
1086 2 scale.scale_str[4]=scale.minite%10+'0';
1087 2 cover_static(&scale_static[i]);
1088 2 set_caract_pos(scale_static[i].x1,scale_static[i].y1);//插入点
1089 2 languge_mode(English,no);
1090 2 set_window_str(scale.scale_str);//输出字符串
1091 2 }
1092 1 show_caract(no);//隐藏光标
1093 1 }
1094
1095 //========================================================================================================
-=======================================
1096 //参数设置回调函数
1097 //========================================================================================================
-===
1098 void para_form_sub(void)
1099 {
1100 1
1101 1 show_form(¶_form);
1102 1 current_form_index=para_form.index;
1103 1 show_para();
1104 1 init_caract(para_table.ins_dot[para_table.colomn][para_table.array].x,para_table.ins_dot[para_table.colo
-mn][para_table.array].y,0x4f,0x00,yes); //在表中置光标
1105 1 while(1)
1106 1 {
1107 2 current_form_index=para_form.index;
1108 2 switch(search(para_form.index)) //查询
1109 2 {
1110 3 case on_btn_para_0:
1111 3 table_edit(DATA,'0');
1112 3 break;
1113 3 case on_btn_para_1:
1114 3 table_edit(DATA,'1');
1115 3 break;
1116 3 case on_btn_para_2:
1117 3 table_edit(DATA,'2');
1118 3 break;
1119 3 case on_btn_para_3:
1120 3 table_edit(DATA,'3');
1121 3 break;
1122 3 case on_btn_para_4:
1123 3 table_edit(DATA,'4');
1124 3 break;
1125 3 case on_btn_para_5:
1126 3 table_edit(DATA,'5');
1127 3 break;
1128 3 case on_btn_para_6:
1129 3 table_edit(DATA,'6');
C51 COMPILER V7.07 FORM 05/17/2003 16:08:38 PAGE 20
1130 3 break;
1131 3 case on_btn_para_7:
1132 3 table_edit(DATA,'7');
1133 3 break;
1134 3 case on_btn_para_8:
1135 3 table_edit(DATA,'8');
1136 3 break;
1137 3 case on_btn_para_9:
1138 3 table_edit(DATA,'9');
1139 3 break;
1140 3 case on_btn_para_up:
1141 3 table_edit(up,NULL);
1142 3 break;
1143 3
1144 3 case on_btn_para_down:
1145 3 table_edit(down,NULL);
1146 3 break;
1147 3
1148 3 case on_btn_para_left:
1149 3 table_edit(left,NULL);
1150 3 break;
1151 3
1152 3 case on_btn_para_right:
1153 3 table_edit(right,NULL);
1154 3
1155 3 break;
1156 3
1157 3 case on_btn_para_ok:
1158 3 if(Is_para_right())
1159 3 {
1160 4 save_para_to_AI();
1161 4 scale_renew=1; //刷新曲线使能
1162 4 show_form(&Main_form); //返回主界面
1163 4 draw_scale();
1164 4 return;
1165 4 }
1166 3 break;
1167 3
1168 3 case on_btn_para_cancle:
1169 3
1170 3 break;
1171 3 case on_btn_para_next_page:
1172 3 para_form_exp_sub(); //到参数例子界面
1173 3 break;
1174 3
1175 3 case on_btn_para_return:
1176 3 show_form(&Main_form); //返回主界面
1177 3 if(scale_renew==1)
1178 3 {
1179 4 //重画刻度和曲线起点
1180 4 draw_scale();
1181 4 curve1.x0=45;
1182 4 curve1.y0=380;
1183 4 curve2.x0=45;
1184 4 curve2.y0=200;
1185 4 }
1186 3 return;
1187 3 break;
1188 3
1189 3 default:
1190 3
1191 3 break;
C51 COMPILER V7.07 FORM 05/17/2003 16:08:38 PAGE 21
1192 3 }
1193 2 }
1194 1 }
1195
1196 //======================================================================================================
1197 //显示当前温度,工作电压,电流,发射率
1198 //========================================================================================================
-
1199 unsigned char count=0;
1200 void disp_multi_para(void)
1201 {
1202 1 if(count==0) //发射率
1203 1 {
1204 2 emissivity=(float)(300+emissivity_AD/4096*2.4/2*800)/PV_temp;
1205 2 E_edit.text[0]=(unsigned int)emissivity%10+'0';
1206 2 E_edit.text[1]='.';
1207 2 E_edit.text[2]=((unsigned int)(emissivity*10))%10+'0';
1208 2 E_edit.text[3]=((unsigned int)(emissivity*100))%10+'0';
1209 2 E_edit.text[4]=((unsigned int)(emissivity*1000))%10+'0';
1210 2 E_edit.text[5]='\0';
1211 2 set_edit_window(&E_edit);
1212 2 count++;
1213 2 }
1214 1 else if(count==1) //温度
1215 1 {
1216 2 //显示摄氏温度
1217 2 if(PV_temp<1000)
1218 2 {
1219 3 T_edit.text[0]=PV_temp/100+'0';
1220 3 T_edit.text[1]=(PV_temp/10)%10+'0';
1221 3 T_edit.text[2]=PV_temp%10+'0';
1222 3 T_edit.text[3]='\0';
1223 3 }
1224 2 else
1225 2 {
1226 3 T_edit.text[0]=PV_temp/1000+'0';
1227 3 T_edit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -