readconfigparam.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. function readconfig_Version(){
  2. return "1.0.0 - 20200910";
  3. }
  4. var config_gesamt;
  5. var config_split;
  6. var param;
  7. var category;
  8. var ref = new Array(2);
  9. function ParseConfig() {
  10. config_split = config_gesamt.split("\n");
  11. var aktline = 0;
  12. param = new Object();
  13. category = new Object();
  14. var catname = "MakeImage";
  15. category[catname] = new Object();
  16. category[catname]["enabled"] = false;
  17. category[catname]["found"] = false;
  18. param[catname] = new Object();
  19. ParamAddValue(param, catname, "LogImageLocation");
  20. ParamAddValue(param, catname, "WaitBeforeTakingPicture");
  21. ParamAddValue(param, catname, "LogfileRetentionInDays");
  22. ParamAddValue(param, catname, "ImageQuality");
  23. ParamAddValue(param, catname, "ImageSize");
  24. var catname = "Alignment";
  25. category[catname] = new Object();
  26. category[catname]["enabled"] = false;
  27. category[catname]["found"] = false;
  28. param[catname] = new Object();
  29. ParamAddValue(param, catname, "SearchFieldX");
  30. ParamAddValue(param, catname, "SearchFieldY");
  31. ParamAddValue(param, catname, "AlignmentAlgo");
  32. var catname = "Digits";
  33. category[catname] = new Object();
  34. category[catname]["enabled"] = false;
  35. category[catname]["found"] = false;
  36. param[catname] = new Object();
  37. ParamAddValue(param, catname, "Model");
  38. ParamAddValue(param, catname, "LogImageLocation");
  39. ParamAddValue(param, catname, "LogfileRetentionInDays");
  40. ParamAddValue(param, catname, "ModelInputSize", 2);
  41. var catname = "Analog";
  42. category[catname] = new Object();
  43. category[catname]["enabled"] = false;
  44. category[catname]["found"] = false;
  45. param[catname] = new Object();
  46. ParamAddValue(param, catname, "Model");
  47. ParamAddValue(param, catname, "LogImageLocation");
  48. ParamAddValue(param, catname, "LogfileRetentionInDays");
  49. ParamAddValue(param, catname, "ModelInputSize", 2);
  50. var catname = "PostProcessing";
  51. category[catname] = new Object();
  52. category[catname]["enabled"] = false;
  53. category[catname]["found"] = false;
  54. param[catname] = new Object();
  55. ParamAddValue(param, catname, "DecimalShift");
  56. ParamAddValue(param, catname, "PreValueUse");
  57. ParamAddValue(param, catname, "PreValueAgeStartup");
  58. ParamAddValue(param, catname, "AllowNegativeRates");
  59. ParamAddValue(param, catname, "MaxRateValue");
  60. ParamAddValue(param, catname, "ErrorMessage");
  61. ParamAddValue(param, catname, "CheckDigitIncreaseConsistency");
  62. var catname = "MQTT";
  63. category[catname] = new Object();
  64. category[catname]["enabled"] = false;
  65. category[catname]["found"] = false;
  66. param[catname] = new Object();
  67. ParamAddValue(param, catname, "Uri");
  68. ParamAddValue(param, catname, "Topic");
  69. ParamAddValue(param, catname, "TopicError");
  70. ParamAddValue(param, catname, "ClientID");
  71. ParamAddValue(param, catname, "user");
  72. ParamAddValue(param, catname, "password");
  73. var catname = "AutoTimer";
  74. category[catname] = new Object();
  75. category[catname]["enabled"] = false;
  76. category[catname]["found"] = false;
  77. param[catname] = new Object();
  78. ParamAddValue(param, catname, "AutoStart");
  79. ParamAddValue(param, catname, "Intervall");
  80. var catname = "Debug";
  81. category[catname] = new Object();
  82. category[catname]["enabled"] = false;
  83. category[catname]["found"] = false;
  84. param[catname] = new Object();
  85. ParamAddValue(param, catname, "Logfile");
  86. ParamAddValue(param, catname, "LogfileRetentionInDays");
  87. var catname = "System";
  88. category[catname] = new Object();
  89. category[catname]["enabled"] = false;
  90. category[catname]["found"] = false;
  91. param[catname] = new Object();
  92. ParamAddValue(param, catname, "TimeZone");
  93. ParamAddValue(param, catname, "TimeServer");
  94. ParamAddValue(param, catname, "AutoAdjustSummertime");
  95. ParamAddValue(param, catname, "Hostname");
  96. ParamAddValue(param, catname, "SetupMode");
  97. while (aktline < config_split.length){
  98. for (var cat in category) {
  99. zw = cat.toUpperCase();
  100. zw1 = "[" + zw + "]";
  101. zw2 = ";[" + zw + "]";
  102. if ((config_split[aktline].trim().toUpperCase() == zw1) || (config_split[aktline].trim().toUpperCase() == zw2)) {
  103. if (config_split[aktline].trim().toUpperCase() == zw1) {
  104. category[cat]["enabled"] = true;
  105. }
  106. category[cat]["found"] = true;
  107. category[cat]["line"] = aktline;
  108. aktline = ParseConfigParamAll(aktline, cat);
  109. continue;
  110. }
  111. }
  112. aktline++;
  113. }
  114. }
  115. function ParamAddValue(param, _cat, _param, _anzParam = 1){
  116. param[_cat][_param] = new Object();
  117. param[_cat][_param]["found"] = false;
  118. param[_cat][_param]["enabled"] = false;
  119. param[_cat][_param]["line"] = -1;
  120. param[_cat][_param]["anzParam"] = _anzParam;
  121. };
  122. function ParseConfigParamAll(_aktline, _catname){
  123. ++_aktline;
  124. while ((_aktline < config_split.length)
  125. && !(config_split[_aktline][0] == "[")
  126. && !((config_split[_aktline][0] == ";") && (config_split[_aktline][1] == "["))) {
  127. var _input = config_split[_aktline];
  128. let [isCom, input] = isCommented(_input);
  129. var linesplit = ZerlegeZeile(input);
  130. ParamExtractValueAll(param, linesplit, _catname, _aktline, isCom);
  131. ++_aktline;
  132. }
  133. return _aktline;
  134. }
  135. function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _iscom, _anzvalue = 1){
  136. if ((_linesplit[0].toUpperCase() == _paramname.toUpperCase()) && (_linesplit.length > _anzvalue))
  137. {
  138. _param[_catname][_paramname]["found"] = true;
  139. _param[_catname][_paramname]["enabled"] = !_iscom;
  140. _param[_catname][_paramname]["line"] = _aktline;
  141. _param[_catname][_paramname]["anzpara"] = _anzvalue;
  142. for (var j = 1; j <= _anzvalue; ++j) {
  143. _param[_catname][_paramname]["value"+j] = _linesplit[j];
  144. }
  145. }
  146. }
  147. function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom){
  148. for (var paramname in _param[_catname]) {
  149. if ((_linesplit[0].toUpperCase() == paramname.toUpperCase()) && (_linesplit.length > _param[_catname][paramname]["anzParam"]))
  150. {
  151. _param[_catname][paramname]["found"] = true;
  152. _param[_catname][paramname]["enabled"] = !_iscom;
  153. _param[_catname][paramname]["line"] = _aktline;
  154. for (var j = 1; j <= _param[_catname][paramname]["anzParam"]; ++j) {
  155. _param[_catname][paramname]["value"+j] = _linesplit[j];
  156. }
  157. }
  158. }
  159. }
  160. function getConfigParameters() {
  161. return param;
  162. }
  163. function setConfigParameters(_param, _category) {
  164. for (var cat in _param) {
  165. for (var name in _param[cat]) {
  166. param[cat][name]["found"] = _param[cat][name]["found"];
  167. param[cat][name]["enabled"] = _param[cat][name]["enabled"];
  168. param[cat][name]["line"] = _param[cat][name]["line"];
  169. param[cat][name]["anzParam"] = _param[cat][name]["anzParam"];
  170. for (var j = 1; j <= _param[cat][name]["anzParam"]; ++j) {
  171. param[cat][name]["value"+j] = _param[cat][name]["value"+j];
  172. }
  173. if (param[cat][name]["found"]) {
  174. var text = name + " ="
  175. for (var j = 1; j <= _param[cat][name]["anzParam"]; ++j) {
  176. text = text + " " + param[cat][name]["value"+j];
  177. }
  178. if (!param[cat][name]["enabled"]) {
  179. text = ";" + text;
  180. }
  181. config_split[param[cat][name]["line"]] = text;
  182. }
  183. }
  184. }
  185. for (var cat in _category) {
  186. if (category[cat]["found"])
  187. {
  188. category[cat]["enabled"] = _category[cat]["enabled"];
  189. text = "[" + cat + "]";
  190. if (!category[cat]["enabled"]) {
  191. text = ";" + text;
  192. }
  193. config_split[category[cat]["line"]] = text;
  194. }
  195. }
  196. config_gesamt = config_split[0];
  197. for (var i = 1; i < config_split.length; ++i){
  198. config_gesamt = config_gesamt + "\n" + config_split[i];
  199. }
  200. return config_gesamt;
  201. }
  202. function isCommented(input)
  203. {
  204. let isComment = false;
  205. if (input.charAt(0) == ';') {
  206. isComment = true;
  207. input = input.substr(1, input.length-1);
  208. };
  209. return [isComment, input];
  210. }
  211. function SaveConfigToServer(_basepath){
  212. // leere Zeilen am Ende löschen
  213. var zw = config_split.length - 1;
  214. while (config_split[zw] == "") {
  215. config_split.pop();
  216. }
  217. var config_gesamt = "";
  218. for (var i = 0; i < config_split.length; ++i)
  219. {
  220. config_gesamt = config_gesamt + config_split[i] + "\n";
  221. }
  222. FileDeleteOnServer("/config/config.ini", _basepath);
  223. FileSendContent(config_gesamt, "/config/config.ini", _basepath);
  224. }
  225. function getConfig() {
  226. return config_gesamt;
  227. }
  228. function getConfigCategory() {
  229. return category;
  230. }