implement switch selector parts generator.
@@ -162,7 +162,7 @@ | ||
162 | 162 | erb.result(binding) |
163 | 163 | end |
164 | 164 | |
165 | - def generate_source_struct() | |
165 | + def generate_source_struct(window_name) | |
166 | 166 | script = <<-EOS |
167 | 167 | EOS |
168 | 168 |
@@ -328,7 +328,7 @@ | ||
328 | 328 | erb.result(binding) |
329 | 329 | end |
330 | 330 | |
331 | - def generate_source_struct() | |
331 | + def generate_source_struct(window_name) | |
332 | 332 | script = <<-EOS |
333 | 333 | struct { |
334 | 334 | PAID id; |
@@ -638,7 +638,7 @@ | ||
638 | 638 | erb.result(binding) |
639 | 639 | end |
640 | 640 | |
641 | - def generate_source_struct() | |
641 | + def generate_source_struct(window_name) | |
642 | 642 | script = <<-EOS |
643 | 643 | struct { |
644 | 644 | PAID id; |
@@ -791,7 +791,7 @@ | ||
791 | 791 | erb.result(binding) |
792 | 792 | end |
793 | 793 | |
794 | - def generate_source_struct() | |
794 | + def generate_source_struct(window_name) | |
795 | 795 | script = <<-EOS |
796 | 796 | struct { |
797 | 797 | PAID id; |
@@ -896,7 +896,7 @@ | ||
896 | 896 | erb.result(binding) |
897 | 897 | end |
898 | 898 | |
899 | - def generate_source_struct() | |
899 | + def generate_source_struct(window_name) | |
900 | 900 | script = <<-EOS |
901 | 901 | struct { |
902 | 902 | PAID id; |
@@ -1066,6 +1066,183 @@ | ||
1066 | 1066 | end |
1067 | 1067 | end |
1068 | 1068 | |
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 | + | |
1069 | 1246 | def generate_parts(type, a) |
1070 | 1247 | case type |
1071 | 1248 | when "textbox" |
@@ -1078,6 +1255,8 @@ | ||
1078 | 1255 | return HMISerialBoxParts.new(a); |
1079 | 1256 | when "numberbox" |
1080 | 1257 | return HMINumberBoxParts.new(a); |
1258 | + when "switchselector" | |
1259 | + return HMISwitchSelectorParts.new(a); | |
1081 | 1260 | end |
1082 | 1261 | end |
1083 | 1262 |
@@ -1287,7 +1466,7 @@ | ||
1287 | 1466 | hmi_windowscroll_t wscr; |
1288 | 1467 | <%- end -%> |
1289 | 1468 | 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 -%> | |
1291 | 1470 | }; |
1292 | 1471 | |
1293 | 1472 | EOS |