• R/O
  • SSH
  • HTTPS

bchan: 提交


Commit MetaInfo

修訂428 (tree)
時間2012-04-12 22:32:53
作者ornse01

Log Message

implement switch selector parts generator.

Change Summary

差異

--- bchanf/trunk/src/tools/hmi_generator.rb (revision 427)
+++ bchanf/trunk/src/tools/hmi_generator.rb (revision 428)
@@ -162,7 +162,7 @@
162162 erb.result(binding)
163163 end
164164
165- def generate_source_struct()
165+ def generate_source_struct(window_name)
166166 script = <<-EOS
167167 EOS
168168
@@ -328,7 +328,7 @@
328328 erb.result(binding)
329329 end
330330
331- def generate_source_struct()
331+ def generate_source_struct(window_name)
332332 script = <<-EOS
333333 struct {
334334 PAID id;
@@ -638,7 +638,7 @@
638638 erb.result(binding)
639639 end
640640
641- def generate_source_struct()
641+ def generate_source_struct(window_name)
642642 script = <<-EOS
643643 struct {
644644 PAID id;
@@ -791,7 +791,7 @@
791791 erb.result(binding)
792792 end
793793
794- def generate_source_struct()
794+ def generate_source_struct(window_name)
795795 script = <<-EOS
796796 struct {
797797 PAID id;
@@ -896,7 +896,7 @@
896896 erb.result(binding)
897897 end
898898
899- def generate_source_struct()
899+ def generate_source_struct(window_name)
900900 script = <<-EOS
901901 struct {
902902 PAID id;
@@ -1066,6 +1066,183 @@
10661066 end
10671067 end
10681068
1069+class HMISwitchSelectorParts < HMIParts
1070+ def calc_formatlength()
1071+ l = 0;
1072+ @yaml["fields"].each { |field|
1073+ l+= 1 + calc_euc_to_TCArray_length(field["text"]);
1074+ }
1075+ l += 1; # for last TNULL
1076+ return l
1077+ end
1078+ def is_need_eventbreak()
1079+ return false
1080+ end
1081+
1082+ def generate_header_eventtype_enumulate(main_name, window_name)
1083+ script = <<-EOS
1084+ <%= main_name.upcase %>EVENT_TYPE_<%= window_name.upcase %>_PARTS_<%= self.name().upcase %>_CHANGE,
1085+ EOS
1086+
1087+ erb = ERB.new(script, nil, '-');
1088+ erb.result(binding)
1089+ end
1090+
1091+ def generate_header_eventstruct_definition(main_name, window_name)
1092+ script = <<-EOS
1093+struct <%= window_name %>_eventdata_<%= self.name() %>_change_t_ {
1094+ <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T value;
1095+};
1096+typedef struct <%= window_name %>_eventdata_<%= self.name() %>_change_t_ <%= window_name %>_eventdata_<%= self.name() %>_change_t;
1097+
1098+ EOS
1099+
1100+ erb = ERB.new(script, nil, '-');
1101+ erb.result(binding)
1102+ end
1103+
1104+ def generate_header_eventunion_member(main_name, window_name)
1105+ script = <<-EOS
1106+ <%= window_name %>_eventdata_<%= self.name() %>_change_t <%= window_name %>_<%= self.name() %>_change;
1107+ EOS
1108+
1109+ erb = ERB.new(script, nil, '-');
1110+ erb.result(binding)
1111+ end
1112+
1113+ def generate_prototypes(window_name)
1114+ script = <<-EOS
1115+enum <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T_ {
1116+ <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_NOSEL = 0,
1117+ <%- @yaml["fields"].each do |field| -%>
1118+ <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_<%= field["name"].upcase %>,
1119+ <%- end -%>
1120+};
1121+typedef enum <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T_ <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T;
1122+IMPORT W <%= window_name %>_set<%= self.name() %>value(<%= window_name %>_t *window, <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T value);
1123+IMPORT W <%= window_name %>_get<%= self.name() %>value(<%= window_name %>_t *window, <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T *value);
1124+ EOS
1125+
1126+ erb = ERB.new(script, nil, '-');
1127+ erb.result(binding)
1128+ end
1129+
1130+ def generate_source_struct(window_name)
1131+ script = <<-EOS
1132+ struct {
1133+ PAID id;
1134+ <%- if self.is_databox_use() -%>
1135+ W dnum;
1136+ <%- else -%>
1137+ TC format[<%= self.calc_formatlength()%>];
1138+ <%- end -%>
1139+ <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T value;
1140+ } <%= self.name() %>;
1141+ EOS
1142+
1143+ erb = ERB.new(script, nil, '-');
1144+ erb.result(binding)
1145+ end
1146+
1147+ def generate_source_functions(main_name, window_name)
1148+ script = <<-EOS
1149+EXPORT W <%= window_name %>_set<%= self.name() %>value(<%= window_name %>_t *window, <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T value)
1150+{
1151+ W val;
1152+
1153+ val = window-><%= self.name() %>.value = value;
1154+ if (window->wid < 0) {
1155+ return 0;
1156+ }
1157+
1158+ return cset_val(window-><%= self.name() %>.id, 1, (W*)(&val));
1159+}
1160+
1161+EXPORT W <%= window_name %>_get<%= self.name() %>value(<%= window_name %>_t *window, <%= window_name.upcase %>_<%= self.name().upcase %>VALUE_T *value)
1162+{
1163+ W val,err;
1164+
1165+ if (window->wid > 0) {
1166+ err = cget_val(window-><%= self.name() %>.id, 1, (W*)(&val));
1167+ if (err < 0) {
1168+ return err;
1169+ }
1170+ }
1171+ *value = window-><%= self.name() %>.value = val;
1172+
1173+ return 0;
1174+}
1175+
1176+LOCAL VOID <%= window_name %>_action<%= self.name() %>(<%= window_name %>_t *window, WEVENT *wev, <%= main_name %>event_t *evt)
1177+{
1178+ W i;
1179+
1180+ i = cact_par(window-><%= self.name() %>.id, wev);
1181+ if ((i & 0x5000) != 0x5000) {
1182+ return;
1183+ }
1184+ window-><%= self.name() %>.value = i & 0xfff;
1185+ evt->type = <%= main_name.upcase %>EVENT_TYPE_<%= window_name.upcase %>_PARTS_<%= self.name().upcase %>_CHANGE;
1186+ evt->data.<%= window_name %>_<%= self.name() %>_change.value = window-><%= self.name() %>.value;
1187+}
1188+
1189+ EOS
1190+
1191+ erb = ERB.new(script, nil, '-');
1192+ erb.result(binding)
1193+ end
1194+
1195+ def generate_initialize_in_new()
1196+ script = <<-EOS
1197+ window-><%= self.name() %>.id = -1;
1198+ <%- if self.is_databox_use() -%>
1199+ window-><%= self.name() %>.dnum = dnum_<%= self.name() %>;
1200+ <%- else -%>
1201+ <%- l = 0 -%>
1202+ <%- @yaml["fields"].each do |field| -%>
1203+ window-><%= self.name() %>.format[<%= l %>] = MC_STR;<%- l+=1 %>
1204+ <%- conv_euc_to_TCArray(field["text"]).each do |ch| -%>
1205+ window-><%= self.name() %>.format[<%= l %>] = 0x<%= ch.to_s(16) %>;<%- l+=1 %>
1206+ <%- end -%>
1207+ <%- end -%>
1208+ window-><%= self.name() %>.format[<%= l %>] = TNULL;<%- l+=1 %>
1209+ <%- end -%>
1210+ window-><%= self.name() %>.value = 0;
1211+ EOS
1212+
1213+ erb = ERB.new(script, nil, '-');
1214+ erb.result(binding)
1215+ end
1216+
1217+ def generate_create_systemcall_direct()
1218+ script = "ccre_sel(wid, WS_PARTS|P_DISP, &r, window-><%= self.name() %>.value, window-><%= self.name() %>.format, NULL)"
1219+
1220+ erb = ERB.new(script, nil, '-');
1221+ erb.result(binding)
1222+ end
1223+
1224+ def generate_savevalue_in_close()
1225+ script = <<-EOS
1226+ err = cget_val(window-><%= self.name() %>.id, 1, (W*)(&window-><%= self.name() %>.value));
1227+ EOS
1228+
1229+ erb = ERB.new(script, nil, '-');
1230+ erb.result(binding)
1231+ end
1232+
1233+ def generate_action_in_butdnwork(main_name, window_name)
1234+ script = <<-EOS
1235+ if (id == window-><%= self.name() %>.id) {
1236+ <%= window_name %>_action<%= self.name() %>(window, wev, evt);
1237+ return;
1238+ }
1239+ EOS
1240+
1241+ erb = ERB.new(script, nil, '-');
1242+ erb.result(binding)
1243+ end
1244+end
1245+
10691246 def generate_parts(type, a)
10701247 case type
10711248 when "textbox"
@@ -1078,6 +1255,8 @@
10781255 return HMISerialBoxParts.new(a);
10791256 when "numberbox"
10801257 return HMINumberBoxParts.new(a);
1258+ when "switchselector"
1259+ return HMISwitchSelectorParts.new(a);
10811260 end
10821261 end
10831262
@@ -1287,7 +1466,7 @@
12871466 hmi_windowscroll_t wscr;
12881467 <%- end -%>
12891468 WEVENT savedwev;
1290- <%- @parts.each do |p| -%><%= p.generate_source_struct() %><%- end -%>
1469+ <%- @parts.each do |p| -%><%= p.generate_source_struct(self.struct_name()) %><%- end -%>
12911470 };
12921471
12931472 EOS
Show on old repository browser