SetArguments.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569
  1. /**
  2. * Copyright (c) 2011-2018 by Andrew Mustun. All rights reserved.
  3. *
  4. * This file is part of the QCAD project.
  5. *
  6. * QCAD is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * QCAD is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with QCAD.
  18. */
  19. include("scripts/EAction.js");
  20. include("scripts/File/File.js");
  21. include("../PM/PM.js")
  22. include("../ZDM/ZDM.js")
  23. SetArguments.readmeFile = "readme.txt";
  24. function SetArguments(guiAction) {
  25. EAction.call(this, guiAction);
  26. this.pmsel = false;
  27. this.zdmsel = false;
  28. // var lastOpenFile = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
  29. // var lastOpenFileDir = SetArguments.includeBasePath + "/../../../project/" + lastOpenFile + "/para.ini";
  30. }
  31. SetArguments.prototype = new EAction();
  32. SetArguments.includeBasePath = includeBasePath;
  33. SetArguments.prototype.beginEvent = function () {
  34. EAction.prototype.beginEvent.call(this);
  35. // EAction.handleUserMessage("start show widget");
  36. var appWin = EAction.getMainWindow();
  37. if (RSettings.getStringValue("OpenProject/Current", "") == "") {
  38. QMessageBox.critical(appWin,
  39. qsTr("提示"),
  40. qsTr("请先选择工程路径"));
  41. return;
  42. }
  43. var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation()) + "/para.ini";
  44. // EAction.handleUserMessage(lastOpenFileDir);
  45. var file = new QFile(lastOpenFileDir);
  46. if (!file.exists()) {
  47. QMessageBox.critical(EAction.getMainWindow(), qsTr("提示"),
  48. RSettings.getStringValue("OpenProject/Current", "") + qsTr(" 工程下没有参数文件"));
  49. return;
  50. }
  51. this.iniFile = new QSettings(lastOpenFileDir, QSettings.IniFormat);
  52. // this.iniFile = new QSettings("D:/Project/para.ini", QSettings.IniFormat);
  53. this.standard_type = new Array();
  54. this.dialog = this.createWidget(SetArguments.includeBasePath + "/SetArgumentsDialog.ui", appWin);
  55. WidgetFactory.restoreState(this.dialog);
  56. this.resetClicked();
  57. //var iniConf = [];
  58. //iniConf = this.readNormalIniFile();
  59. //this.setNormalBox(iniConf);
  60. // var childs = this.iniFile.childGroups();
  61. // for(var i = 0; i < childs.length; i++){
  62. // if(childs[i].indexOf("standard") != -1){
  63. // this.standard_type.push(childs[i]);
  64. // this.standard_type.push(this.iniFile.value("/" + childs[i].toString() + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  65. // // EAction.handleUserMessage(this.iniFile.value("/" + childs[i] + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  66. // // EAction.handleUserMessage(childs[i]);
  67. // }
  68. // }
  69. // // 速度
  70. // this.select_type = this.standard_type[0];
  71. //this.resetClicked();
  72. // var design_speed = this.dialog.findChild("comboBox");
  73. // for(var i = 1; i < this.standard_type.length; i += 2){
  74. // design_speed.addItem(this.standard_type[i]);
  75. // }
  76. // design_speed["currentIndexChanged(int)"].connect(this, this.selectSpeed);
  77. // var speedCfg = [];
  78. // speedCfg = this.readSpeedCfg();
  79. // this.setSpeedBox(speedCfg);
  80. // 恢复默认
  81. var resetBtn = this.dialog.findChild("resetBtn");
  82. resetBtn.clicked.connect(this, this.resetClicked);
  83. // 保存
  84. var saveBtn = this.dialog.findChild("saveBtn");
  85. saveBtn.clicked.connect(this, this.saveClicked);
  86. // 优化
  87. var optimizeBtn = this.dialog.findChild("optimizeBtn");
  88. optimizeBtn.clicked.connect(this, this.optimizeClicked);
  89. if (!this.dialog.exec()) {
  90. EAction.handleUserMessage("clicked~");
  91. destr(this.dialog);
  92. EAction.activateMainWindow();
  93. return undefined;
  94. }
  95. WidgetFactory.saveState(this.dialog);
  96. };
  97. SetArguments.prototype.optimizeClicked = function () {
  98. // 查找文件,显示出来
  99. // test:显示随便的数字
  100. var appWin = EAction.getMainWindow();
  101. this.selectLineDialog = this.createWidget(SetArguments.includeBasePath + "/SelectLineDialog.ui", appWin);
  102. // EAction.handleUserMessage("debug1");
  103. var pmWidget = this.selectLineDialog.findChild("pmWidget");
  104. var opBtn = this.selectLineDialog.findChild("opBtn");
  105. var exitBtn = this.selectLineDialog.findChild("exitBtn");
  106. opBtn.clicked.connect(this, this.opBtnClicked);
  107. exitBtn.clicked.connect(this, this.exitBtnClicked);
  108. this.btngrp = new QButtonGroup(pmWidget);
  109. var allPMFile = RSettings.getStringValue("OpenDisplayFile/PMFile", "");
  110. var pmList = allPMFile.split(',');
  111. this.pms = new Array();
  112. for (var i = 0; i < pmList.length; i++) {
  113. if (pmList[i] == "") continue;
  114. this.pms.push(pmList[i]);
  115. }
  116. for (var i = 0; i < this.pms.length; i++) {
  117. var pmFile = new QRadioButton(this.pms[i], pmWidget);
  118. pmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
  119. this.btngrp.addButton(pmFile, i);
  120. pmFile.clicked.connect(this, this.pmClicked);
  121. }
  122. var zdmWidget = this.selectLineDialog.findChild("zdmWidget");
  123. this.btngrp2 = new QButtonGroup(zdmWidget);
  124. var allZDMFile = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
  125. var zdmList = allZDMFile.split(',');
  126. this.zdms = new Array();
  127. for (var i = 0; i < zdmList.length; i++) {
  128. if (zdmList[i] == "") continue;
  129. this.zdms.push(zdmList[i]);
  130. }
  131. for (var i = 0; i < this.zdms.length; i++) {
  132. var zdmFile = new QRadioButton(this.zdms[i], zdmWidget);
  133. zdmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
  134. this.btngrp2.addButton(zdmFile, i);
  135. zdmFile.clicked.connect(this, this.zdmClicked);
  136. }
  137. if (this.pms.length == 0 && this.zdms.length == 0) {
  138. opBtn.setEnabled(false);
  139. }
  140. if (!this.selectLineDialog.exec()) {
  141. EAction.handleUserMessage("clicked~");
  142. destr(this.selectLineDialog);
  143. EAction.activateMainWindow();
  144. return undefined;
  145. }
  146. };
  147. SetArguments.prototype.opBtnClicked = function () {
  148. if (!this.pmsel && !this.zdmsel) {
  149. var appWin = EAction.getMainWindow();
  150. QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
  151. return;
  152. }
  153. if (this.pmsel) {
  154. var pmd = new PM();
  155. pmd.interface(this.pms[this.pmid]);
  156. }
  157. if (this.zdmsel) {
  158. var zdmd = new ZDM();
  159. zdmd.interface(this.zdms[this.zdmid]);
  160. }
  161. // 弹出指定目录
  162. QDesktopServices.openUrl(QUrl.fromLocalFile(RSettings.getStringValue("OpenProject/Current", "") + "/Output_data"));
  163. };
  164. SetArguments.prototype.exitBtnClicked = function () {
  165. destr(this.selectLineDialog);
  166. };
  167. SetArguments.prototype.pmClicked = function () {
  168. this.pmsel = true;
  169. this.pmid = this.btngrp.checkedId();
  170. EAction.handleUserMessage(this.pms[this.pmid]);
  171. };
  172. SetArguments.prototype.zdmClicked = function () {
  173. this.zdmsel = true;
  174. this.zdmid = this.btngrp2.checkedId();
  175. // EAction.handleUserMessage(id.toString());
  176. EAction.handleUserMessage(this.zdms[this.zdmid]);
  177. };
  178. SetArguments.prototype.saveClicked = function () {
  179. // EAction.handleUserMessage("start Save File");
  180. this.iniFile.setValue("/parameter/batch_sizes", this.dialog.findChild("batch_sizes").text);
  181. this.iniFile.setValue("/parameter/learning_rate0", this.dialog.findChild("learning_rate0").text);
  182. this.iniFile.setValue("/parameter/learning_rate1", this.dialog.findChild("learning_rate1").text);
  183. this.iniFile.setValue("/parameter/iteration_times", this.dialog.findChild("iteration_times").text);
  184. this.iniFile.setValue("/parameter/discount_factor", this.dialog.findChild("discount_factor").text);
  185. this.iniFile.setValue("/parameter/d_k", this.dialog.findChild("d_k").text);
  186. this.iniFile.setValue("/parameter/d_line", this.dialog.findChild("d_line").text);
  187. this.iniFile.setValue("/parameter/forward_step", this.dialog.findChild("forward_step").text);
  188. this.iniFile.setValue("/parameter/learning_rate0", this.dialog.findChild("learning_rate0").text);
  189. this.iniFile.setValue("/parameter/range_p", this.dialog.findChild("range_p_x").text);
  190. this.iniFile.setValue("/parameter/range_g", this.dialog.findChild("range_g").text);
  191. this.iniFile.setValue("/parameter/range_k", this.dialog.findChild("range_k").text);
  192. this.iniFile.setValue("/parameter/range_c", this.dialog.findChild("range_c").text);
  193. this.iniFile.setValue("/parameter/range_v", this.dialog.findChild("range_v").text);
  194. this.iniFile.setValue("/parameter/range_e", this.dialog.findChild("range_e").text);
  195. this.iniFile.setValue("/cost/beam0", this.dialog.findChild("beam0").text);
  196. this.iniFile.setValue("/cost/beam1", this.dialog.findChild("beam1").text);
  197. this.iniFile.setValue("/cost/bridge_pier", this.dialog.findChild("bridge_pier").text);
  198. this.iniFile.setValue("/cost/tunnel0", this.dialog.findChild("tunnel0").text);
  199. this.iniFile.setValue("/cost/tunnel1", this.dialog.findChild("tunnel1").text);
  200. this.iniFile.setValue("/cost/tunnel2", this.dialog.findChild("tunnel2").text);
  201. this.iniFile.setValue("/cost/tunnel_entrance", this.dialog.findChild("tunnel_entrance").text);
  202. this.iniFile.setValue("/cost/railway_tracks", this.dialog.findChild("railway_tracks").text);
  203. this.iniFile.setValue("/cost/road_right_fee", this.dialog.findChild("road_right_fee").text);
  204. this.iniFile.setValue("/cost/filling_cost", this.dialog.findChild("filling_cost").text);
  205. this.iniFile.setValue("/cost/excavation_cost", this.dialog.findChild("excavation_cost").text);
  206. this.iniFile.setValue("/cost/arable_land_occupation", this.dialog.findChild("arable_land_occupation").text);
  207. this.iniFile.setValue("/cost/house_demolition", this.dialog.findChild("house_demolition").text);
  208. if (this.dialog.findChild("replace_radio").isChecked) {
  209. this.iniFile.setValue("/cost/replace_railway_by_bridge", "1");
  210. }
  211. else {
  212. this.iniFile.setValue("/cost/replace_railway_by_bridge", "0");
  213. }
  214. this.iniFile.setValue("/standard/design_speed", this.dialog.findChild("design_speed").text);
  215. this.iniFile.setValue("/standard/minimum_curve_radius", this.dialog.findChild("minimum_curve_radius").text);
  216. this.iniFile.setValue("/standard/minimum_circular_length", this.dialog.findChild("minimum_circular_length").text);
  217. this.iniFile.setValue("/standard/minimal_longitudinal_length", this.dialog.findChild("minimal_longitudinal_length").text);
  218. this.iniFile.setValue("/standard/maximum_gradient", this.dialog.findChild("maximum_gradient").text);
  219. this.iniFile.setValue("/standard/maximum_slope_difference", this.dialog.findChild("maximum_slope_difference").text);
  220. this.iniFile.setValue("/standard/minimum_transition_curve_length", this.dialog.findChild("minimum_transition_curve_length").text);
  221. this.iniFile.setValue("/standard/minimum_clip_line_length", this.dialog.findChild("minimum_clip_line_length").text);
  222. this.iniFile.setValue("/standard/minimum_radius_of_convex_vertical_curve", this.dialog.findChild("minimum_radius_of_convex_vertical_curve").text);
  223. this.iniFile.setValue("/standard/minimum_radius_of_concave_vertical_curve", this.dialog.findChild("minimum_radius_of_concave_vertical_curve").text);
  224. this.iniFile.setValue("/standard/minimum_length_of_vertical_curve", this.dialog.findChild("minimum_length_of_vertical_curve").text);
  225. this.iniFile.setValue("/ecology/water_pollution", this.dialog.findChild("water_pollution").text);
  226. this.iniFile.setValue("/ecology/noise_and_vibration", this.dialog.findChild("noise_and_vibration").text);
  227. this.iniFile.setValue("/ecology/cultural_heritage_protection", this.dialog.findChild("cultural_heritage_protection").text);
  228. this.iniFile.setValue("/ecology/destruction_wildlife", this.dialog.findChild("destruction_wildlife").text);
  229. this.iniFile.setValue("/ecology/original_natural", this.dialog.findChild("original_natural").text);
  230. this.iniFile.setValue("/ecology/traffic_network", this.dialog.findChild("traffic_network").text);
  231. this.iniFile.setValue("/ecology/fields_woods", this.dialog.findChild("fields_woods").text);
  232. this.iniFile.setValue("/ecology/air_pollution", this.dialog.findChild("air_pollution").text);
  233. this.iniFile.setValue("/ecology/house_demolition", this.dialog.findChild("house_demolition_2").text);
  234. // destr(this.iniFile);
  235. EAction.handleUserMessage("Save File");
  236. };
  237. SetArguments.prototype.resetClicked = function () {
  238. var iniConf = [];
  239. iniConf = this.readNormalIniFile();
  240. this.setNormalBox(iniConf);
  241. };
  242. SetArguments.prototype.readNormalIniFile = function () {
  243. var ret = [];
  244. //#region 优化模型参数设置
  245. ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  246. ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  247. ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  248. ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  249. ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  250. ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  251. ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  252. ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  253. ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  254. ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  255. ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  256. ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  257. ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  258. ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  259. //#endregion
  260. //#region 铁路单位造价设置
  261. ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  262. ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  263. ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  264. ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  265. ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  266. ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  267. ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  268. ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  269. ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  270. ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  271. ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  272. ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  273. ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  274. ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  275. //#endregion
  276. EAction.handleUserMessage("read ini speed");
  277. ret["design_speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  278. ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  279. ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  280. ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  281. ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  282. ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  283. ret["maximum_bridge_height"] = this.iniFile.value("/standard/maximum_bridge_height").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  284. ret["maximum_tunnel_length"] = this.iniFile.value("/standard/maximum_tunnel_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  285. ret["filling_height_lbb"] = this.iniFile.value("/standard/filling_height_lbb").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  286. ret["digging_deep_ltb"] = this.iniFile.value("/standard/digging_deep_ltb").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  287. ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  288. ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  289. ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  290. ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  291. ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  292. ret["water_pollution"] = this.iniFile.value("/ecology/water_pollution").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  293. ret["noise_and_vibration"] = this.iniFile.value("/ecology/noise_and_vibration").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  294. ret["cultural_heritage_protection"] = this.iniFile.value("/ecology/cultural_heritage_protection").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  295. ret["destruction_wildlife"] = this.iniFile.value("/ecology/destruction_wildlife").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  296. ret["original_natural"] = this.iniFile.value("/ecology/original_natural").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  297. ret["traffic_network"] = this.iniFile.value("/ecology/traffic_network").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  298. ret["fields_woods"] = this.iniFile.value("/ecology/fields_woods").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  299. ret["air_pollution"] = this.iniFile.value("/ecology/air_pollution").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  300. ret["house_demolition_2"] = this.iniFile.value("/ecology/house_demolition").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  301. EAction.handleUserMessage("read ini finish");
  302. return ret;
  303. };
  304. SetArguments.prototype.setNormalBox = function (iniConf) {
  305. // 优化相关
  306. var batch_sizes = this.dialog.findChild("batch_sizes");
  307. var learning_rate0 = this.dialog.findChild("learning_rate0");
  308. var learning_rate1 = this.dialog.findChild("learning_rate1");
  309. var iteration_times = this.dialog.findChild("iteration_times");
  310. var discount_factor = this.dialog.findChild("discount_factor");
  311. var range_p_x = this.dialog.findChild("range_p_x");
  312. var range_p_y = this.dialog.findChild("range_p_y");
  313. var range_g = this.dialog.findChild("range_g");
  314. var range_k = this.dialog.findChild("range_k");
  315. var range_c = this.dialog.findChild("range_c");
  316. var range_v = this.dialog.findChild("range_v");
  317. var range_e = this.dialog.findChild("range_e");
  318. var d_k = this.dialog.findChild("d_k");
  319. var d_line = this.dialog.findChild("d_line");
  320. var forward_step = this.dialog.findChild("forward_step");
  321. // slider
  322. var batchSlider = this.dialog.findChild("batchsizeSlider");
  323. var stepSlider = this.dialog.findChild("stepSlider");
  324. var iterationtimeSlider = this.dialog.findChild("iterationtimeSlider");
  325. var dkSlider = this.dialog.findChild("dkSlider");
  326. var rangecSlider = this.dialog.findChild("rangecSlider");
  327. var rangevSlider = this.dialog.findChild("rangevSlider");
  328. var rangeeSlider = this.dialog.findChild("rangeeSlider");
  329. batch_sizes.textChanged.connect(function () { batchSlider.setValue(batch_sizes.text); });
  330. forward_step.textChanged.connect(function () { stepSlider.setValue(forward_step.text); });
  331. iteration_times.textChanged.connect(function () { iterationtimeSlider.setValue(iteration_times.text); });
  332. d_k.textChanged.connect(function () { dkSlider.setValue(d_k.text); });
  333. range_c.textChanged.connect(function () { rangecSlider.setValue(range_c.text); });
  334. range_v.textChanged.connect(function () { rangevSlider.setValue(range_v.text); });
  335. range_e.textChanged.connect(function () { rangeeSlider.setValue(range_e.text); });
  336. batchSlider.valueChanged.connect(function () { batch_sizes.setText(batchSlider.value); });
  337. stepSlider.valueChanged.connect(function () { forward_step.setText(stepSlider.value); });
  338. iterationtimeSlider.valueChanged.connect(function () { iteration_times.setText(iterationtimeSlider.value); });
  339. dkSlider.valueChanged.connect(function () { d_k.setText(dkSlider.value); });
  340. rangecSlider.valueChanged.connect(function () { range_c.setText(rangecSlider.value); });
  341. rangevSlider.valueChanged.connect(function () { range_v.setText(rangevSlider.value); });
  342. rangeeSlider.valueChanged.connect(function () { range_e.setText(rangeeSlider.value); });
  343. batch_sizes.setText(iniConf["batch_sizes"]);
  344. learning_rate0.setText(iniConf["learning_rate0"]);
  345. learning_rate1.setText(iniConf["learning_rate1"]);
  346. iteration_times.setText(iniConf["iteration_times"]);
  347. discount_factor.setText(iniConf["discount_factor"]);
  348. range_p_x.setText(iniConf["range_p"]);
  349. range_p_y.setText(iniConf["range_p"]);
  350. range_g.setText(iniConf["range_g"]);
  351. range_k.setText(iniConf["range_k"]);
  352. range_c.setText(iniConf["range_c"]);
  353. range_v.setText(iniConf["range_v"]);
  354. range_e.setText(iniConf["range_e"]);
  355. d_k.setText(iniConf["d_k"]);
  356. d_line.setText(iniConf["d_line"]);
  357. forward_step.setText(iniConf["forward_step"]);
  358. range_p_x.textChanged.connect(
  359. function () {
  360. range_p_y.setText(range_p_x.text);
  361. });
  362. range_p_y.textChanged.connect(
  363. function () {
  364. range_p_x.setText(range_p_y.text);
  365. });
  366. // 铁路单位造价相关
  367. var beam0 = this.dialog.findChild("beam0");
  368. var beam1 = this.dialog.findChild("beam1");
  369. var bridge_pier = this.dialog.findChild("bridge_pier");
  370. var tunnel0 = this.dialog.findChild("tunnel0");
  371. var tunnel1 = this.dialog.findChild("tunnel1");
  372. var tunnel2 = this.dialog.findChild("tunnel2");
  373. var tunnel_entrance = this.dialog.findChild("tunnel_entrance");
  374. var railway_tracks = this.dialog.findChild("railway_tracks");
  375. var road_right_fee = this.dialog.findChild("road_right_fee");
  376. var filling_cost = this.dialog.findChild("filling_cost");
  377. var excavation_cost = this.dialog.findChild("excavation_cost");
  378. var arable_land_occupation = this.dialog.findChild("arable_land_occupation");
  379. var house_demolition = this.dialog.findChild("house_demolition");
  380. var replace_radio = this.dialog.findChild("replace_radio");
  381. var not_replace_radio = this.dialog.findChild("not_replace_radio");
  382. beam0.setText(iniConf["beam0"]);
  383. beam1.setText(iniConf["beam1"]);
  384. bridge_pier.setText(iniConf["bridge_pier"]);
  385. tunnel0.setText(iniConf["tunnel0"]);
  386. tunnel1.setText(iniConf["tunnel1"]);
  387. tunnel2.setText(iniConf["tunnel2"]);
  388. tunnel_entrance.setText(iniConf["tunnel_entrance"]);
  389. railway_tracks.setText(iniConf["railway_tracks"]);
  390. road_right_fee.setText(iniConf["road_right_fee"]);
  391. filling_cost.setText(iniConf["filling_cost"]);
  392. excavation_cost.setText(iniConf["excavation_cost"]);
  393. arable_land_occupation.setText(iniConf["arable_land_occupation"]);
  394. house_demolition.setText(iniConf["house_demolition"]);
  395. EAction.handleUserMessage("start set form");
  396. if (0 == iniConf["replace_railway_by_bridge"].toInt()) {
  397. not_replace_radio.setChecked(1);
  398. }
  399. else {
  400. replace_radio.setChecked(1);
  401. }
  402. // 铁路设计标准相关
  403. var design_speed = this.dialog.findChild("design_speed");
  404. var minimum_curve_radius = this.dialog.findChild("minimum_curve_radius");
  405. var minimum_circular_length = this.dialog.findChild("minimum_circular_length");
  406. var minimal_longitudinal_length = this.dialog.findChild("minimal_longitudinal_length");
  407. var maximum_gradient = this.dialog.findChild("maximum_gradient");
  408. var maximum_slope_difference = this.dialog.findChild("maximum_slope_difference");
  409. var minimum_transition_curve_length = this.dialog.findChild("minimum_transition_curve_length");
  410. var minimum_clip_line_length = this.dialog.findChild("minimum_clip_line_length");
  411. var minimum_radius_of_convex_vertical_curve = this.dialog.findChild("minimum_radius_of_convex_vertical_curve");
  412. var minimum_radius_of_concave_vertical_curve = this.dialog.findChild("minimum_radius_of_concave_vertical_curve");
  413. var minimum_length_of_vertical_curve = this.dialog.findChild("minimum_length_of_vertical_curve");
  414. // slider
  415. var speedSlider = this.dialog.findChild("speedSlider");
  416. var minimum_curve_radius_slider = this.dialog.findChild("minimum_curve_radius_slider");
  417. var minimum_circular_length_slider = this.dialog.findChild("minimum_circular_length_slider");
  418. var minimal_longitudinal_length_slider = this.dialog.findChild("minimal_longitudinal_length_slider");
  419. var maximum_gradient_slider = this.dialog.findChild("maximum_gradient_slider");
  420. var maximum_slope_difference_slider = this.dialog.findChild("maximum_slope_difference_slider");
  421. var minimum_radius_of_convex_vertical_curve_slider = this.dialog.findChild("minimum_radius_of_convex_vertical_curve_slider");
  422. var concave_vertical_curve_slider = this.dialog.findChild("concave_vertical_curve_slider");
  423. var minimum_transition_curve_length_slider = this.dialog.findChild("minimum_transition_curve_length_slider");
  424. var minimum_clip_line_length_slider = this.dialog.findChild("minimum_clip_line_length_slider");
  425. var minimum_length_of_vertical_curve_slider = this.dialog.findChild("minimum_length_of_vertical_curve_slider");
  426. design_speed.textChanged.connect(function () { speedSlider.setValue(design_speed.text); });
  427. minimum_curve_radius.textChanged.connect(function () { minimum_curve_radius_slider.setValue(minimum_curve_radius.text); });
  428. minimum_circular_length.textChanged.connect(function () { minimum_circular_length_slider.setValue(minimum_circular_length.text); });
  429. minimal_longitudinal_length.textChanged.connect(function () { minimal_longitudinal_length_slider.setValue(minimal_longitudinal_length.text); });
  430. maximum_gradient.textChanged.connect(function () { maximum_gradient_slider.setValue(maximum_gradient.text); });
  431. maximum_slope_difference.textChanged.connect(function () { maximum_slope_difference_slider.setValue(maximum_slope_difference.text); });
  432. minimum_transition_curve_length.textChanged.connect(function () { minimum_transition_curve_length_slider.setValue(minimum_transition_curve_length.text); });
  433. minimum_clip_line_length.textChanged.connect(function () { minimum_clip_line_length_slider.setValue(minimum_clip_line_length.text); });
  434. minimum_radius_of_convex_vertical_curve.textChanged.connect(function () { minimum_radius_of_convex_vertical_curve_slider.setValue(minimum_radius_of_convex_vertical_curve.text); });
  435. minimum_radius_of_concave_vertical_curve.textChanged.connect(function () { concave_vertical_curve_slider.setValue(minimum_radius_of_concave_vertical_curve.text); });
  436. minimum_length_of_vertical_curve.textChanged.connect(function () { minimum_length_of_vertical_curve_slider.setValue(minimum_length_of_vertical_curve.text); });
  437. speedSlider.valueChanged.connect(function () { design_speed.setText(speedSlider.value); });
  438. minimum_curve_radius_slider.valueChanged.connect(function () { minimum_curve_radius.setText(minimum_curve_radius_slider.value); });
  439. minimum_circular_length_slider.valueChanged.connect(function () { minimum_circular_length.setText(minimum_circular_length_slider.value); });
  440. minimal_longitudinal_length_slider.valueChanged.connect(function () { minimal_longitudinal_length.setText(minimal_longitudinal_length_slider.value); });
  441. maximum_gradient_slider.valueChanged.connect(function () { maximum_gradient.setText(maximum_gradient_slider.value); });
  442. maximum_slope_difference_slider.valueChanged.connect(function () { maximum_slope_difference.setText(maximum_slope_difference_slider.value); });
  443. minimum_transition_curve_length_slider.valueChanged.connect(function () { minimum_transition_curve_length.setText(minimum_transition_curve_length_slider.value); });
  444. minimum_clip_line_length_slider.valueChanged.connect(function () { minimum_clip_line_length.setText(minimum_clip_line_length_slider.value); });
  445. minimum_radius_of_convex_vertical_curve_slider.valueChanged.connect(function () { minimum_radius_of_convex_vertical_curve.setText(minimum_radius_of_convex_vertical_curve_slider.value); });
  446. concave_vertical_curve_slider.valueChanged.connect(function () { minimum_radius_of_concave_vertical_curve.setText(concave_vertical_curve_slider.value); });
  447. minimum_length_of_vertical_curve_slider.valueChanged.connect(function () { minimum_length_of_vertical_curve.setText(minimum_length_of_vertical_curve_slider.value); });
  448. design_speed.setText(iniConf["design_speed"]);
  449. minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
  450. minimum_circular_length.setText(iniConf["minimum_circular_length"]);
  451. minimal_longitudinal_length.setText(iniConf["minimal_longitudinal_length"]);
  452. maximum_gradient.setText(iniConf["maximum_gradient"]);
  453. maximum_slope_difference.setText(iniConf["maximum_slope_difference"]);
  454. minimum_transition_curve_length.setText(iniConf["minimum_transition_curve_length"]);
  455. minimum_clip_line_length.setText(iniConf["minimum_clip_line_length"]);
  456. minimum_radius_of_convex_vertical_curve.setText(iniConf["minimum_radius_of_convex_vertical_curve"]);
  457. minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
  458. minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
  459. // 生态相关
  460. var water_pollution = this.dialog.findChild("water_pollution");
  461. var noise_and_vibration = this.dialog.findChild("noise_and_vibration");
  462. var cultural_heritage_protection = this.dialog.findChild("cultural_heritage_protection");
  463. var destruction_wildlife = this.dialog.findChild("destruction_wildlife");
  464. var original_natural = this.dialog.findChild("original_natural");
  465. var traffic_network = this.dialog.findChild("traffic_network");
  466. var fields_woods = this.dialog.findChild("fields_woods");
  467. var air_pollution = this.dialog.findChild("air_pollution");
  468. var house_demolition_2 = this.dialog.findChild("house_demolition_2");
  469. // slider
  470. var water_pollution_slider = this.dialog.findChild("water_pollution_slider");
  471. var noise_and_vibration_slider = this.dialog.findChild("noise_and_vibration_slider");
  472. var cultural_heritage_protection_slider = this.dialog.findChild("cultural_heritage_protection_slider");
  473. var destruction_wildlife_slider = this.dialog.findChild("destruction_wildlife_slider");
  474. var original_natural_slider = this.dialog.findChild("original_natural_slider");
  475. var traffic_network_slider = this.dialog.findChild("traffic_network_slider");
  476. var fields_woods_slider = this.dialog.findChild("fields_woods_slider");
  477. var air_pollution_slider = this.dialog.findChild("air_pollution_slider");
  478. var house_demolition_2_slider = this.dialog.findChild("house_demolition_2_slider");
  479. water_pollution.textChanged.connect(function () { water_pollution_slider.setValue(water_pollution.text); });
  480. noise_and_vibration.textChanged.connect(function () { noise_and_vibration_slider.setValue(noise_and_vibration.text); });
  481. cultural_heritage_protection.textChanged.connect(function () { cultural_heritage_protection_slider.setValue(cultural_heritage_protection.text); });
  482. destruction_wildlife.textChanged.connect(function () { destruction_wildlife_slider.setValue(destruction_wildlife.text); });
  483. original_natural.textChanged.connect(function () { original_natural_slider.setValue(original_natural.text); });
  484. traffic_network.textChanged.connect(function () { traffic_network_slider.setValue(traffic_network.text); });
  485. fields_woods.textChanged.connect(function () { fields_woods_slider.setValue(fields_woods.text); });
  486. air_pollution.textChanged.connect(function () { air_pollution_slider.setValue(air_pollution.text); });
  487. house_demolition_2.textChanged.connect(function () { house_demolition_2_slider.setValue(house_demolition_2.text); });
  488. water_pollution_slider.valueChanged.connect(function () { water_pollution.setText(water_pollution_slider.value); });
  489. noise_and_vibration_slider.valueChanged.connect(function () { noise_and_vibration.setText(noise_and_vibration_slider.value); });
  490. cultural_heritage_protection_slider.valueChanged.connect(function () { cultural_heritage_protection.setText(cultural_heritage_protection_slider.value); });
  491. destruction_wildlife_slider.valueChanged.connect(function () { destruction_wildlife.setText(destruction_wildlife_slider.value); });
  492. original_natural_slider.valueChanged.connect(function () { original_natural.setText(original_natural_slider.value); });
  493. traffic_network_slider.valueChanged.connect(function () { traffic_network.setText(traffic_network_slider.value); });
  494. fields_woods_slider.valueChanged.connect(function () { fields_woods.setText(fields_woods_slider.value); });
  495. air_pollution_slider.valueChanged.connect(function () { air_pollution.setText(air_pollution_slider.value); });
  496. house_demolition_2_slider.valueChanged.connect(function () { house_demolition_2.setText(house_demolition_2_slider.value); });
  497. water_pollution.setText(iniConf["water_pollution"]);
  498. noise_and_vibration.setText(iniConf["noise_and_vibration"]);
  499. cultural_heritage_protection.setText(iniConf["cultural_heritage_protection"]);
  500. destruction_wildlife.setText(iniConf["destruction_wildlife"]);
  501. original_natural.setText(iniConf["original_natural"]);
  502. traffic_network.setText(iniConf["traffic_network"]);
  503. fields_woods.setText(iniConf["fields_woods"]);
  504. air_pollution.setText(iniConf["air_pollution"]);
  505. house_demolition_2.setText(iniConf["house_demolition_2"]);
  506. };