SetArguments.js 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  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. this.iniFile.setValue("/weigth/hCostSlider",this.dialog.findChild("hCostSlider").text);
  235. this.iniFile.setValue("/weigth/hEcologySlider",this.dialog.findChild("hEcologySlider").text);
  236. this.iniFile.setValue("/weigth/vCostSlider",this.dialog.findChild("vCostSlider").text);
  237. // destr(this.iniFile);
  238. EAction.handleUserMessage("Save File");
  239. };
  240. SetArguments.prototype.resetClicked = function () {
  241. var iniConf = [];
  242. iniConf = this.readNormalIniFile();
  243. this.setNormalBox(iniConf);
  244. };
  245. SetArguments.prototype.readNormalIniFile = function(){
  246. var ret = [];
  247. //#region 优化模型参数设置
  248. ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  249. ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  250. ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  251. ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  252. ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  253. ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  254. ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  255. ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  256. ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  257. ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  258. ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  259. ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  260. ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  261. ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  262. //#endregion
  263. //#region 铁路单位造价设置
  264. ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  265. ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  266. ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  267. ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  268. ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  269. ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  270. ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  271. ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  272. ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  273. ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  274. ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  275. ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  276. ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  277. // ret["farmland_layer_name"] = this.iniFile.value("/cost/farmland_layer_name").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  278. // ret["demolition_layer_name"] = this.iniFile.value("/cost/demolition_layer_name").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  279. ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  280. //#endregion
  281. //#region 生态
  282. ret["water"] = this.iniFile.value("/ecology/water").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  283. ret["voice"] = this.iniFile.value("/ecology/voice").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  284. ret["culture"] = this.iniFile.value("/ecology/culture").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  285. ret["animal"] = this.iniFile.value("/ecology/animal").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  286. ret["prewater"] = this.iniFile.value("/ecology/prewater").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  287. ret["traffic"] = this.iniFile.value("/ecology/traffic").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  288. ret["tree"] = this.iniFile.value("/ecology/tree").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  289. ret["air"] = this.iniFile.value("/ecology/air").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  290. ret["house"] = this.iniFile.value("/ecology/house").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  291. //#endregion
  292. //#region 速度
  293. ret["speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  294. ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  295. ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  296. ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  297. ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  298. ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  299. ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  300. ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  301. ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  302. ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  303. ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  304. //#endregion
  305. //#region 速度
  306. ret["hCostSlider"] = this.iniFile.value("/weigth/hCostSlider").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  307. ret["hEcologySlider"] = this.iniFile.value("/weigth/hEcologySlider").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  308. ret["vCostSlider"] = this.iniFile.value("/weigth/vCostSlider").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  309. //#endregion
  310. EAction.handleUserMessage("read ini finish");
  311. return ret;
  312. };
  313. SetArguments.prototype.setNormalBox = function(iniConf){
  314. var batch_sizes = this.dialog.findChild("batch_sizes");
  315. var learning_rate0 = this.dialog.findChild("learning_rate0");
  316. var learning_rate1 = this.dialog.findChild("learning_rate1");
  317. var iteration_times = this.dialog.findChild("iteration_times");
  318. var discount_factor = this.dialog.findChild("discount_factor");
  319. var range_p_x = this.dialog.findChild("range_p_x");
  320. var range_p_y = this.dialog.findChild("range_p_y");
  321. var range_g = this.dialog.findChild("range_g");
  322. var range_k = this.dialog.findChild("range_k");
  323. var range_c = this.dialog.findChild("range_c");
  324. var range_v = this.dialog.findChild("range_v");
  325. var range_e = this.dialog.findChild("range_e");
  326. var d_k= this.dialog.findChild("d_k");
  327. var d_line= this.dialog.findChild("d_line");
  328. var forward_step= this.dialog.findChild("forward_step");
  329. // slider
  330. var batchSlider = this.dialog.findChild("batchsizeSlider");
  331. var stepSlider = this.dialog.findChild("stepSlider");
  332. var iterationtimeSlider = this.dialog.findChild("iterationtimeSlider");
  333. var dkSlider = this.dialog.findChild("dkSlider");
  334. var rangecSlider = this.dialog.findChild("rangecSlider");
  335. var rangevSlider = this.dialog.findChild("rangevSlider");
  336. var rangeeSlider = this.dialog.findChild("rangeeSlider");
  337. // EAction.handleUserMessage("read ui");
  338. batch_sizes.textChanged.connect( function() {batchSlider.setValue(batch_sizes.text);} );
  339. forward_step.textChanged.connect( function() {stepSlider.setValue(forward_step.text);} );
  340. iteration_times.textChanged.connect( function() {iterationtimeSlider.setValue(iteration_times.text);} );
  341. d_k.textChanged.connect( function() {dkSlider.setValue(d_k.text);} );
  342. range_c.textChanged.connect( function() {rangecSlider.setValue(range_c.text);} );
  343. range_v.textChanged.connect( function() {rangevSlider.setValue(range_v.text);} );
  344. range_e.textChanged.connect( function() {rangeeSlider.setValue(range_e.text);} );
  345. batchSlider.valueChanged.connect( function() {batch_sizes.setText(batchSlider.value);} );
  346. stepSlider.valueChanged.connect( function() {forward_step.setText(stepSlider.value);} );
  347. iterationtimeSlider.valueChanged.connect( function() {iteration_times.setText(iterationtimeSlider.value);} );
  348. dkSlider.valueChanged.connect( function() {d_k.setText(dkSlider.value);} );
  349. rangecSlider.valueChanged.connect( function() {range_c.setText(rangecSlider.value);} );
  350. rangevSlider.valueChanged.connect( function() {range_v.setText(rangevSlider.value);} );
  351. rangeeSlider.valueChanged.connect( function() {range_e.setText(rangeeSlider.value);} );
  352. batch_sizes.setText(iniConf["batch_sizes"]);
  353. learning_rate0.setText(iniConf["learning_rate0"]);
  354. learning_rate1.setText(iniConf["learning_rate1"]);
  355. iteration_times.setText(iniConf["iteration_times"]);
  356. discount_factor.setText(iniConf["discount_factor"]);
  357. range_p_x.setText(iniConf["range_p"]);
  358. range_p_y.setText(iniConf["range_p"]);
  359. range_g.setText(iniConf["range_g"]);
  360. range_k.setText(iniConf["range_k"]);
  361. range_c.setText(iniConf["range_c"]);
  362. range_v.setText(iniConf["range_v"]);
  363. range_e.setText(iniConf["range_e"]);
  364. d_k.setText(iniConf["d_k"]);
  365. d_line.setText(iniConf["d_line"]);
  366. forward_step.setText(iniConf["forward_step"]);
  367. range_p_x.textChanged.connect(
  368. function(){
  369. range_p_y.setText(range_p_x.text);
  370. });
  371. range_p_y.textChanged.connect(
  372. function(){
  373. range_p_x.setText(range_p_y.text);
  374. });
  375. EAction.handleUserMessage("end set form");
  376. // range_g_x.textChanged.connect(
  377. // function(){
  378. // range_g_y.setText(range_g_x.text);
  379. // });
  380. // range_g_y.textChanged.connect(
  381. // function(){
  382. // range_g_x.setText(range_g_y.text);
  383. // });
  384. EAction.handleUserMessage("read ui");
  385. var beam0 = this.dialog.findChild("beam0");
  386. var beam1 = this.dialog.findChild("beam1");
  387. var bridge_pier = this.dialog.findChild("bridge_pier");
  388. var tunnel0 = this.dialog.findChild("tunnel0");
  389. var tunnel1 = this.dialog.findChild("tunnel1");
  390. var tunnel2 = this.dialog.findChild("tunnel2");
  391. var tunnel_entrance = this.dialog.findChild("tunnel_entrance");
  392. var railway_tracks = this.dialog.findChild("railway_tracks");
  393. var road_right_fee = this.dialog.findChild("road_right_fee");
  394. var filling_cost = this.dialog.findChild("filling_cost");
  395. var excavation_cost = this.dialog.findChild("excavation_cost");
  396. var arable_land_occupation = this.dialog.findChild("arable_land_occupation");
  397. var house_demolition = this.dialog.findChild("house_demolition");
  398. // var farmland_layer_name = this.dialog.findChild("farmland_layer_name");
  399. // var demolition_layer_name = this.dialog.findChild("demolition_layer_name");
  400. var replace_radio = this.dialog.findChild("replace_radio");
  401. var not_replace_radio = this.dialog.findChild("not_replace_radio");
  402. beam0.setText(iniConf["beam0"]);
  403. beam1.setText(iniConf["beam1"]);
  404. bridge_pier.setText(iniConf["bridge_pier"]);
  405. tunnel0.setText(iniConf["tunnel0"]);
  406. tunnel1.setText(iniConf["tunnel1"]);
  407. tunnel2.setText(iniConf["tunnel2"]);
  408. tunnel_entrance.setText(iniConf["tunnel_entrance"]);
  409. railway_tracks.setText(iniConf["railway_tracks"]);
  410. road_right_fee.setText(iniConf["road_right_fee"]);
  411. filling_cost.setText(iniConf["filling_cost"]);
  412. excavation_cost.setText(iniConf["excavation_cost"]);
  413. arable_land_occupation.setText(iniConf["arable_land_occupation"]);
  414. house_demolition.setText(iniConf["house_demolition"]);
  415. EAction.handleUserMessage("start set form");
  416. // farmland_layer_name.setText(iniConf["farmland_layer_name"]);
  417. // demolition_layer_name.setText(iniConf["demolition_layer_name"]);
  418. if(0 == iniConf["replace_railway_by_bridge"].toInt())
  419. {
  420. not_replace_radio.setChecked(1);
  421. }
  422. else
  423. {
  424. replace_radio.setChecked(1);
  425. }
  426. // 生态
  427. var water = this.dialog.findChild("water");
  428. var voice = this.dialog.findChild("voice");
  429. var culture = this.dialog.findChild("culture");
  430. var animal = this.dialog.findChild("animal");
  431. var prewater = this.dialog.findChild("prewater");
  432. var traffic = this.dialog.findChild("traffic");
  433. var tree = this.dialog.findChild("tree");
  434. var air = this.dialog.findChild("air");
  435. var house = this.dialog.findChild("house");
  436. var waterSlider = this.dialog.findChild("waterSlider");
  437. var voiceSlider = this.dialog.findChild("voiceSlider");
  438. var cultureSlider = this.dialog.findChild("cultureSlider");
  439. var animalSlider = this.dialog.findChild("animalSlider");
  440. var prewaterSlider = this.dialog.findChild("prewaterSlider");
  441. var trafficSlider = this.dialog.findChild("trafficSlider");
  442. var treeSlider = this.dialog.findChild("treeSlider");
  443. var airSlider = this.dialog.findChild("airSlider");
  444. var houseSlider = this.dialog.findChild("houseSlider");
  445. water.textChanged.connect( function() {waterSlider.setValue(water.text);} );
  446. voice.textChanged.connect( function() {voiceSlider.setValue(voice.text);} );
  447. culture.textChanged.connect( function() {cultureSlider.setValue(culture.text);} );
  448. animal.textChanged.connect( function() {animalSlider.setValue(animal.text);} );
  449. prewater.textChanged.connect( function() {prewaterSlider.setValue(prewater.text);} );
  450. traffic.textChanged.connect( function() {trafficSlider.setValue(traffic.text);} );
  451. tree.textChanged.connect( function() {treeSlider.setValue(tree.text);} );
  452. air.textChanged.connect( function() {airSlider.setValue(air.text);} );
  453. house.textChanged.connect( function() {houseSlider.setValue(house.text);} );
  454. waterSlider.valueChanged.connect( function() {water.setText(waterSlider.value);} );
  455. voiceSlider.valueChanged.connect( function() {voice.setText(voiceSlider.value);} );
  456. cultureSlider.valueChanged.connect( function() {culture.setText(cultureSlider.value);} );
  457. animalSlider.valueChanged.connect( function() {animal.setText(animalSlider.value);} );
  458. prewaterSlider.valueChanged.connect( function() {prewater.setText(prewaterSlider.value);} );
  459. trafficSlider.valueChanged.connect( function() {traffic.setText(trafficSlider.value);} );
  460. treeSlider.valueChanged.connect( function() {tree.setText(treeSlider.value);} );
  461. airSlider.valueChanged.connect( function() {air.setText(airSlider.value);} );
  462. houseSlider.valueChanged.connect( function() {house.setText(houseSlider.value);} );
  463. water.setText(iniConf["water"]);
  464. voice.setText(iniConf["voice"]);
  465. culture.setText(iniConf["culture"]);
  466. animal.setText(iniConf["animal"]);
  467. prewater.setText(iniConf["prewater"]);
  468. traffic.setText(iniConf["traffic"]);
  469. tree.setText(iniConf["tree"]);
  470. air.setText(iniConf["air"]);
  471. house.setText(iniConf["house"]);
  472. // 速度
  473. var speed = this.dialog.findChild("speed");
  474. var minimum_curve_radius = this.dialog.findChild("minimum_curve_radius");
  475. var minimum_circular_length = this.dialog.findChild("minimum_circular_length");
  476. var minimal_longitudinal_length = this.dialog.findChild("minimal_longitudinal_length");
  477. var maximum_gradient = this.dialog.findChild("maximum_gradient");
  478. var maximum_slope_difference = this.dialog.findChild("maximum_slope_difference");
  479. var minimum_radius_of_convex_vertical_curve = this.dialog.findChild("minimum_radius_of_convex_vertical_curve");
  480. var minimum_radius_of_concave_vertical_curve = this.dialog.findChild("minimum_radius_of_concave_vertical_curve");
  481. var minimum_transition_curve_length = this.dialog.findChild("minimum_transition_curve_length");
  482. var minimum_clip_line_length = this.dialog.findChild("minimum_clip_line_length");
  483. var minimum_length_of_vertical_curve = this.dialog.findChild("minimum_length_of_vertical_curve");
  484. var speedSlider = this.dialog.findChild("speedSlider");
  485. var radiusSlider = this.dialog.findChild("radiusSlider");
  486. var lengthSlider = this.dialog.findChild("lengthSlider");
  487. var minloglenSlider = this.dialog.findChild("minloglenSlider");
  488. var gradientSlider = this.dialog.findChild("gradientSlider");
  489. var slopdiffSlider = this.dialog.findChild("slopdiffSlider");
  490. var convexSlider = this.dialog.findChild("convexSlider");
  491. var concaveSlider = this.dialog.findChild("concaveSlider");
  492. var transitionSlider = this.dialog.findChild("transitionSlider");
  493. var clipSlider = this.dialog.findChild("clipSlider");
  494. var verticalCurveSlider = this.dialog.findChild("verticalCurveSlider");
  495. speed.textChanged.connect( function() {speedSlider.setValue(speed.text);} );
  496. minimum_curve_radius.textChanged.connect( function() {radiusSlider.setValue(minimum_curve_radius.text);} );
  497. minimum_circular_length.textChanged.connect( function() {lengthSlider.setValue(minimum_circular_length.text);} );
  498. minimal_longitudinal_length.textChanged.connect( function() {minloglenSlider.setValue(minimal_longitudinal_length.text);} );
  499. maximum_gradient.textChanged.connect( function() {gradientSlider.setValue(maximum_gradient.text);} );
  500. maximum_slope_difference.textChanged.connect( function() {slopdiffSlider.setValue(maximum_slope_difference.text);} );
  501. minimum_radius_of_convex_vertical_curve.textChanged.connect( function() {convexSlider.setValue(minimum_radius_of_convex_vertical_curve.text);} );
  502. minimum_radius_of_concave_vertical_curve.textChanged.connect( function() {concaveSlider.setValue(minimum_radius_of_concave_vertical_curve.text);} );
  503. minimum_transition_curve_length.textChanged.connect( function() {transitionSlider.setValue(minimum_transition_curve_length.text);} );
  504. minimum_clip_line_length.textChanged.connect( function() {clipSlider.setValue(minimum_clip_line_length.text);} );
  505. minimum_length_of_vertical_curve.textChanged.connect( function() {verticalCurveSlider.setValue(minimum_length_of_vertical_curve.text);} );
  506. speedSlider.valueChanged.connect( function() {speed.setText(speedSlider.value);} );
  507. radiusSlider.valueChanged.connect( function() {minimum_curve_radius.setText(radiusSlider.value);} );
  508. lengthSlider.valueChanged.connect( function() {minimum_circular_length.setText(lengthSlider.value);} );
  509. minloglenSlider.valueChanged.connect( function() {minimal_longitudinal_length.setText(minloglenSlider.value);} );
  510. gradientSlider.valueChanged.connect( function() {maximum_gradient.setText(gradientSlider.value);} );
  511. slopdiffSlider.valueChanged.connect( function() {maximum_slope_difference.setText(slopdiffSlider.value);} );
  512. convexSlider.valueChanged.connect( function() {minimum_radius_of_convex_vertical_curve.setText(convexSlider.value);} );
  513. concaveSlider.valueChanged.connect( function() {minimum_radius_of_concave_vertical_curve.setText(concaveSlider.value);} );
  514. transitionSlider.valueChanged.connect( function() {minimum_transition_curve_length.setText(transitionSlider.value);} );
  515. clipSlider.valueChanged.connect( function() {minimum_clip_line_length.setText(clipSlider.value);} );
  516. verticalCurveSlider.valueChanged.connect( function() {minimum_length_of_vertical_curve.setText(verticalCurveSlider.value);} );
  517. speed.setText(iniConf["speed"]);
  518. minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
  519. minimum_circular_length.setText(iniConf["minimum_circular_length"]);
  520. minimal_longitudinal_length.setText(iniConf["minimal_longitudinal_length"]);
  521. maximum_gradient.setText(iniConf["maximum_gradient"]);
  522. maximum_slope_difference.setText(iniConf["maximum_slope_difference"]);
  523. minimum_radius_of_convex_vertical_curve.setText(iniConf["minimum_radius_of_convex_vertical_curve"]);
  524. minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
  525. minimum_transition_curve_length.setText(iniConf["minimum_transition_curve_length"]);
  526. minimum_clip_line_length.setText(iniConf["minimum_clip_line_length"]);
  527. minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
  528. // 权重
  529. var hCostSlider = this.dialog.findChild("hCostSlider");
  530. var hEcologySlider = this.dialog.findChild("hEcologySlider");
  531. var vCostSlider = this.dialog.findChild("vCostSlider");
  532. hCostSlider.setValue(iniConf["hCostSlider"]);
  533. hEcologySlider.setValue(iniConf["hEcologySlider"]);
  534. vCostSlider.setValue(iniConf["vCostSlider"]);
  535. };