xKevinn

Untitled

Feb 16th, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.84 KB | None | 0 0
  1. -- ------ load APIs
  2. os.unloadAPI("sensors");
  3. os.unloadAPI("sensorsUI");
  4. os.loadAPI("/rom/apis/sensors");
  5. os.loadAPI("/rom/apis/sensorsUI");
  6. -- ------ load APIs end
  7. -- ------ variabels
  8. fh = nil
  9. fh2 = nil
  10. fh3 = nil
  11. ProgrammNotSucessfullyClosed = nil
  12. logLineReader = nil
  13. xside = sensors.getController()
  14. xsensors = nil
  15. done = false
  16. done2 = false
  17. done3 = false
  18. done4 = false
  19. done5 = false
  20. selectmode = 1
  21. selectmode2 = 1
  22. selectmode3 = 1
  23. selectmode4 = 1
  24. tabmode = 1
  25. dispData = {} -- nil in the moment
  26. sizeX, sizeY = term.getSize()
  27. -- ------ variabels end
  28. -- ------ Functions
  29. function createLogFile()
  30. xdir = shell.dir()
  31. if xdir ~= nil then
  32. xdir = xdir.."/"
  33. end
  34. if fs.exists(xdir.."logs") == false then
  35. fs.makeDir(xdir.."logs")
  36. end
  37. xlist = fs.list(xdir.."logs")
  38. h = fs.open(string.format("%slogs/log%d.log",xdir,#xlist), "w")
  39. return h
  40. end
  41. function createSenFile()
  42. xdir = shell.dir()
  43. if xdir ~= nil then
  44. xdir = xdir.."/"
  45. end
  46. h = fs.open(xdir.."sencenter.sen", "w")
  47. return h
  48. end
  49. function readSenFile()
  50. xdir = shell.dir()
  51. if xdir ~= nil then
  52. xdir = xdir.."/"
  53. end
  54. h = fs.open(xdir.."sencenter.sen", "r")
  55. return h
  56. end
  57. function writeSenFile()
  58. xdir = shell.dir()
  59. if xdir ~= nil then
  60. xdir = xdir.."/"
  61. end
  62. h = fs.open(xdir.."sencenter.sen", "w")
  63. return h
  64. end
  65. function ntime()
  66. return textutils.formatTime(os.time(), true)
  67. end
  68. function createLogEntry(str, show)
  69. xlogEntry = string.format("[%s] %s", ntime(), str)
  70. if show == true then
  71. print(xlogEntry)
  72. end
  73. fh.writeLine(xlogEntry)
  74. end
  75. function closeLogFile()
  76. createLogEntry("Log and Sensor File Sucessfully Closed!", true)
  77. fh3.close()
  78. fh.close()
  79. end
  80. function checkControllers()
  81. sides={"left","right","back","front","bottom","top"}
  82. xsencount = 0
  83. for i=1,#sides do
  84. if peripheral.isPresent( sides[i] ) then
  85. if peripheral.getType( sides[i]) == "SensorController" then
  86. xsencount = xsencount + 1
  87. if xsencount ~= 1 then
  88. return false
  89. end
  90. end
  91. end
  92. end
  93. if xsencount == 0 then
  94. return false
  95. end
  96. end
  97. function SaveTable(xtable, h)
  98. for m = 1, #xtable do
  99. h.writeLine(xtable[m])
  100. end
  101. end
  102. function LoadTable(h)
  103. xtable = {}
  104. xstring = ""
  105. xdone = false
  106. xcount = 0
  107. repeat
  108. xcount = xcount + 1
  109. xstring = h.readLine()
  110. if xstring ~= nil then
  111. xtable[xcount] = xstring
  112. else
  113. xdone = true
  114. end
  115. until xdone == true
  116. return xtable
  117. end
  118. function EditSensor()
  119. createLogEntry("Tab:Settings| User wants to edit a entry/sensor!", false)
  120. edone = false
  121. eselectmode = 1
  122. etable = {"Custom Name:", "X:", "Y:", "End"}
  123. drawSettingsGraphs2()
  124. clearSettingsRightSide()
  125. if #dispData == 0 then
  126. DrawPos(27,5,"No Entry Found!")
  127. sleep(2)
  128. clearSettingsWholeRightSide()
  129. return
  130. end
  131. for dispList = 1, #dispData do
  132. xdata = sensorsUI.split(dispData[dispList],";")
  133. DrawPos(28,6+dispList,xdata[4])
  134. end
  135. DrawPos(27,5,"Select Entry:")
  136. DrawPos(27,6+eselectmode,"*")
  137. while edone == false do
  138. evt,k = os.pullEvent()
  139. if evt=="key" then
  140. DrawPos(27,6+eselectmode," ")
  141. if k == 200 and eselectmode>1 then
  142. eselectmode=eselectmode-1
  143. elseif k== 208 and eselectmode < #dispData + 1 then
  144. eselectmode = eselectmode+1
  145. elseif k == 28 or k ==57 then
  146. edone=true;
  147. end
  148. end
  149. DrawPos(27,6+eselectmode,"*")
  150. end
  151. edata = sensorsUI.split(dispData[eselectmode],";")
  152. createLogEntry("Tab:Settings| User wants to edit "..edata[4], false)
  153. clearSettingsRightSide()
  154. xsel = eselectmode
  155. edone = false
  156. eselectmode = 1
  157. for dispList = 1, #etable - 1 do
  158. DrawPos(28,6+dispList,etable[dispList] .. edata[dispList+3])
  159. end
  160. DrawPos(28,6+#etable,etable[#etable])
  161. DrawPos(27,5,"Edit Infos:")
  162. DrawPos(27,6+eselectmode,"*")
  163. xcustomName = edata[4]
  164. xX = edata[5]
  165. xY = edata[6]
  166. bl = 0
  167. while edone == false do
  168. evt,k = os.pullEvent()
  169. if evt=="key" then
  170. DrawPos(27,6+eselectmode," ")
  171. if k == 200 and eselectmode>1 then
  172. eselectmode=eselectmode-1
  173. elseif k== 208 and eselectmode < #etable then
  174. eselectmode = eselectmode+1
  175. elseif (k == 28 or k == 57) and eselectmode == 4 then
  176. edone = true
  177. elseif (k == 28 or k == 57) and eselectmode == 1 then
  178. DrawPos(27+13,6+eselectmode,string.rep(" ", sizeX-2-27-13))
  179. term.setCursorPos(40,6+eselectmode)
  180. while customName == "" or bl == 0 do
  181. bl = 1
  182. xcustomName = read()
  183. end
  184. bl = 0
  185. updateUpperMenuWithoutClear(2)
  186. drawSettingsGraphs2()
  187. eselectmode = 2
  188. elseif (k == 28 or k == 57) and eselectmode == 2 then
  189. DrawPos(27+3,6+eselectmode,string.rep(" ", sizeX-2-27-3))
  190. term.setCursorPos(30,6+eselectmode)
  191. while tonumber(xX) == nil or xX == "" or tonumber(xX) < 1 or bl == 0 do
  192. bl = 1
  193. xX = read()
  194. end
  195. bl = 0
  196. updateUpperMenuWithoutClear(2)
  197. drawSettingsGraphs2()
  198. eselectmode = 3
  199. elseif (k == 28 or k == 57) and eselectmode == 3 then
  200. DrawPos(27+3,6+eselectmode,string.rep(" ", sizeX-2-27-3))
  201. term.setCursorPos(30,6+eselectmode)
  202. while tonumber(xY) == nil or xY == "" or tonumber(xY) < 1 or bl == 0 do
  203. bl = 1
  204. xY = read()
  205. end
  206. bl = 0
  207. updateUpperMenuWithoutClear(2)
  208. drawSettingsGraphs2()
  209. eselectmode = 4
  210. end
  211. end
  212. DrawPos(27,6+eselectmode,"*")
  213. end
  214. edata[4] = xcustomName
  215. edata[5] = xX
  216. edata[6] = xY
  217. edataString = ""
  218. for dispCount = 1, #edata-1 do
  219. edataString = string.format("%s%s;",edataString,edata[dispCount])
  220. end
  221. edataString = string.format("%s%s",edataString,edata[#edata])
  222. table.remove(dispData,xsel)
  223. table.insert(dispData,xsel,edataString)
  224. clearSettingsRightSide()
  225. DrawPos(27,5,"Entry has been edited!")
  226. createLogEntry("Tab:Settings| Saving changes..", false)
  227. sleep(2)
  228. clearSettingsWholeRightSide()
  229. end
  230. function DeleteSensor()
  231. ddone = false
  232. dselectmode = 1
  233. drawSettingsGraphs2()
  234. clearSettingsRightSide()
  235. createLogEntry("Tab:Settings| User wants to delete a entry/sensor!", false)
  236. if #dispData == 0 then
  237. createLogEntry("Tab:Settings| User hasn't add a sensor yet!", false)
  238. DrawPos(27,5,"No Entry Found!")
  239. sleep(2)
  240. clearSettingsWholeRightSide()
  241. return
  242. end
  243. DrawPos(27,5,"Select Entry:")
  244. xentrys = dispData
  245. for dispList = 1, #dispData do
  246. xdata = sensorsUI.split(dispData[dispList],";")
  247. DrawPos(28,6+dispList,xdata[4])
  248. end
  249. DrawPos(28,6+#dispData+1,"cancel")
  250. DrawPos(27,6+dselectmode,"*")
  251. while ddone == false do
  252. evt,k = os.pullEvent()
  253. if evt=="key" then
  254. DrawPos(27,6+dselectmode," ")
  255. if k == 200 and dselectmode>1 then
  256. dselectmode=dselectmode-1
  257. elseif k== 208 and dselectmode < #dispData + 1 then
  258. dselectmode = dselectmode+1
  259. elseif k == 28 or k ==57 then
  260. ddone=true;
  261. end
  262. end
  263. DrawPos(27,6+dselectmode,"*")
  264. end
  265. selectData = sensorsUI.split(dispData[dselectmode], ";")
  266. clearSettingsRightSide()
  267. if dselectmode == #dispData + 1 then
  268. createLogEntry("Tab:Settings| User canceled deleting!", false)
  269. DrawPos(27,5,"Deleting canceled!")
  270. sleep(2)
  271. clearSettingsWholeRightSide()
  272. return
  273. end
  274. createLogEntry("Tab:Settings| User wants to delete: "..selectData[4], false)
  275. DrawPos(27,5,"Deleted: " ..selectData[4])
  276. createLogEntry("Tab:Settings| User deleted: "..selectData[4], false)
  277. table.remove(dispData,dselectmode)
  278. sleep(2)
  279. clearSettingsWholeRightSide()
  280. end
  281. function AddSensor()
  282. drawSettingsGraphs2()
  283. clearSettingsRightSide()
  284. createLogEntry("Tab:Settings| User selecting sensor!",false)
  285. DrawPos(27,5,"Select Sensor!")
  286. xsensors = sensors.getSensors(sensors.getController())
  287. for i,v in pairs(xsensors) do
  288. DrawPos(28,6+i,v);
  289. end
  290. ntable = {}
  291. xstring = ""
  292. done3 = false
  293. selectmode2 = 1
  294. DrawPos(27,6+selectmode2,"*")
  295. while done3 == false do
  296. evt,k = os.pullEvent()
  297. if evt=="key" then
  298. DrawPos(27,6+selectmode2," ")
  299. if k == 200 and selectmode2>1 then
  300. selectmode2=selectmode2-1
  301. elseif k== 208 and selectmode2 < #xsensors then
  302. selectmode2 = selectmode2+1
  303. elseif k == 28 or k ==57 then
  304. xstring = xsensors[selectmode2]
  305. done3=true;
  306. createLogEntry("Tab:Settings| User selected a sensor!",false)
  307. end
  308. end
  309. DrawPos(27,6+selectmode2,"*")
  310. end
  311. clearSettingsRightSide()
  312. createLogEntry("Tab:Settings| User selecting probe!",false)
  313. DrawPos(27,5,"Select Probe!")
  314. xprobe = sensors.getProbes(sensors.getController(),xstring)
  315. for i,v in pairs(xprobe) do
  316. DrawPos(28,6+i,v);
  317. end
  318. done4 = false
  319. selectmode3 = 1
  320. DrawPos(27,6+selectmode3,"*")
  321. while done4 == false do
  322. evt,k = os.pullEvent()
  323. if evt=="key" then
  324. DrawPos(27,6+selectmode3," ")
  325. if k == 200 and selectmode3>1 then
  326. selectmode3=selectmode3-1
  327. elseif k== 208 and selectmode3 < #xprobe then
  328. selectmode3 = selectmode3+1
  329. elseif k == 28 or k ==57 then
  330. xstring = string.format("%s;%s", xstring, xprobe[selectmode3]);
  331. done4=true;
  332. createLogEntry("Tab:Settings| User selected a probe!",false)
  333. end
  334. end
  335. DrawPos(27,6+selectmode3,"*")
  336. end
  337. createLogEntry("Tab:Settings| User selecting target!",false)
  338. clearSettingsRightSide()
  339. ntable = sensorsUI.split(xstring, ";")
  340. xtargets = sensors.getAvailableTargetsforProbe(sensors.getController(), ntable[1], ntable[2])
  341. if #xtargets == 0 then
  342. DrawPos(27,5,"No Targets were found!")
  343. sleep(2)
  344. clearSettingsWholeRightSide()
  345. createLogEntry("Tab:Settings| User hasen't found a target!",false)
  346. return
  347. else
  348. DrawPos(27,5,"Select Target!")
  349. xcount2 = 0
  350. for i,v in pairs(xtargets) do
  351. xcount2 = xcount2 + 1
  352. DrawPos(28,6+i,string.format("Target%d", xcount2))
  353. end
  354. done5 = false
  355. selectmode4 = 1
  356. DrawPos(27,6+selectmode4,"*")
  357. while done5 == false do
  358. evt,k = os.pullEvent()
  359. if evt=="key" then
  360. DrawPos(27,6+selectmode4," ")
  361. if k == 200 and selectmode4>1 then
  362. selectmode4=selectmode4-1
  363. elseif k== 208 and selectmode4 < #xtargets then
  364. selectmode4 = selectmode4+1
  365. elseif k == 28 or k ==57 then
  366. xstring = string.format("%s;%s", xstring, xtargets[selectmode4]);
  367. done5=true;
  368. end
  369. end
  370. DrawPos(27,6+selectmode4,"*")
  371. end
  372. end
  373. createLogEntry("Tab:Settings| User selected a target!",false)
  374. clearSettingsRightSide()
  375. createLogEntry("Tab:Settings| User inputs Informations!",false)
  376. DrawPos(27,5,"Input Infos!")
  377. DrawPos(27,7,"Custom Name:")
  378. term.setCursorPos(43, 7)
  379. cname = ""
  380. while cname == "" do
  381. term.setCursorPos(40, 7)
  382. cname = read()
  383. end
  384. updateUpperMenuWithoutClear(2)
  385. drawSettingsGraphs2()
  386. DrawPos(27,8,"X:")
  387. term.setCursorPos(30, 8)
  388. cx = "n"
  389. while tonumber(cx) == nil or cx == "" or tonumber(cx) < 1 do
  390. term.setCursorPos(30, 8)
  391. cx = read()
  392. end
  393. updateUpperMenuWithoutClear(2)
  394. drawSettingsGraphs2()
  395. DrawPos(27,9,"Y:")
  396. term.setCursorPos(30, 9)
  397. cy = "n"
  398. while tonumber(cy) == nil or cy == "" or tonumber(cy) < 1 do
  399. term.setCursorPos(30, 9)
  400. cy = read()
  401. end
  402. updateUpperMenuWithoutClear(2)
  403. drawSettingsGraphs2()
  404. xstring = string.format("%s;%s;%s;%s", xstring, cname, cx, cy)
  405. dispData[#dispData + 1] = xstring
  406. clearSettingsRightSide()
  407. createLogEntry("Tab:Settings| User has entered the Informations!",false)
  408. createLogEntry("Tab:Settings| Entry has been added!",false)
  409. DrawPos(27,5,"Entry has been added!")
  410. sleep(2)
  411. clearSettingsWholeRightSide()
  412. end
  413. -- ------ Functions end
  414. -- ------ Drawing Functions
  415. function DrawPos(x,y,str)
  416. term.setCursorPos(x, y)
  417. term.write(str)
  418. end
  419. function refreshMenu()
  420. for m = 4, sizeY - 4 do
  421. DrawPos(1,m, "|")
  422. end
  423. DrawPos(1,sizeY - 3,string.format("%c",92))
  424. for m = 2, sizeX - 1 do
  425. DrawPos(m,sizeY - 3, "-")
  426. end
  427. DrawPos(sizeX,sizeY-3,"/")
  428. for m = 4, sizeY-4 do
  429. DrawPos(sizeX,m,"|")
  430. end
  431. end
  432. function drawUnderMenu()
  433. term.setCursorPos(1, sizeY - 3)
  434. print(string.rep("-", sizeX))
  435. DrawPos(1,sizeY - 1,"e = exit | right/left = select | tab enter = activate tab")
  436. DrawPos(sizeX - 18, sizeY - 1, "Made by KevinW1998 ")
  437. end
  438. function drawUpperMenu()
  439. DrawPos(4,2,"Menu")
  440. DrawPos(11,2,"Settings")
  441. DrawPos(22,2,"Info")
  442. DrawPos(1,3,"/")
  443. DrawPos(2,3,"-")
  444. DrawPos(3,3,"/")
  445. DrawPos(3,2,"|")
  446. DrawPos(3,1,"/")
  447. DrawPos(4,1,"-----")
  448. DrawPos(8,1,string.format("%c",92))
  449. DrawPos(8,2,"|")
  450. DrawPos(8,3,string.format("%c",92))
  451. DrawPos(9,3,string.rep("-", sizeX - 9))
  452. DrawPos(10,2,"|")
  453. DrawPos(10,1,"/")
  454. DrawPos(11,1,"--------")
  455. DrawPos(19,1,string.format("%c",92))
  456. DrawPos(19,2,"|")
  457. DrawPos(21,2,"|")
  458. DrawPos(21,1,"/")
  459. DrawPos(22,1,"----")
  460. DrawPos(26,1,string.format("%c",92))
  461. DrawPos(26,2,"|")
  462. DrawPos(sizeX,3,string.format("%c",92))
  463. refreshMenu()
  464. end
  465. function updateUpperMenu(mode)
  466. refreshMenu()
  467. drawUnderMenu()
  468. for m = 4, sizeY - 4 do
  469. DrawPos(2,m,string.rep(" ", sizeX-2))
  470. end
  471. if mode == 1 then
  472. DrawPos(3,3,string.format("/ %c",92))
  473. DrawPos(9,3,string.rep("-", sizeX - 9))
  474. end
  475. if mode == 2 then
  476. DrawPos(10,3,string.format("/ %c",92))
  477. DrawPos(3,3,"------")
  478. DrawPos(21,3,"------")
  479. end
  480. if mode == 3 then
  481. DrawPos(21,3,string.format("/ %c",92))
  482. DrawPos(3,3,"------")
  483. DrawPos(10,3,"----------")
  484. end
  485. end
  486. function updateUpperMenuWithoutClear(mode)
  487. refreshMenu()
  488. drawUnderMenu()
  489. if mode == 1 then
  490. DrawPos(3,3,string.format("/ %c",92))
  491. DrawPos(9,3,string.rep("-", sizeX - 9))
  492. end
  493. if mode == 2 then
  494. DrawPos(10,3,string.format("/ %c",92))
  495. DrawPos(3,3,"------")
  496. DrawPos(21,3,"------")
  497. end
  498. if mode == 3 then
  499. DrawPos(21,3,string.format("/ %c",92))
  500. DrawPos(3,3,"------")
  501. DrawPos(10,3,"----------")
  502. end
  503. end
  504. function drawInfoText()
  505. DrawPos(2,4,"sencenter was created by KevinW1998")
  506. DrawPos(2,5,"This Program should make a overview")
  507. DrawPos(2,6,"of all selected sensors!")
  508. DrawPos(2,8,"sencenter-version: 1.01 Beta")
  509. DrawPos(2,10,"PS: sry for my bad english ;)")
  510. end
  511. function drawSettingsGraphs()
  512. DrawPos(2,4,"/")
  513. DrawPos(2,sizeY-4,string.format("%c",92))
  514. DrawPos(25,sizeY-4,"/")
  515. DrawPos(25,4,string.format("%c",92))
  516. DrawPos(3,4,"----------------------")
  517. DrawPos(3,sizeY-4,"----------------------")
  518. for m = 5, sizeY - 5 do
  519. DrawPos(2,m,"|")
  520. end
  521. for m = 5, sizeY - 5 do
  522. DrawPos(25,m,"|")
  523. end
  524. end
  525. function drawSettingsText()
  526. DrawPos(4,5,"Connect to new Sensor")
  527. DrawPos(4,6,"Delete Entry")
  528. DrawPos(4,7,"Edit Entry")
  529. DrawPos(4,8,"Back")
  530. end
  531. function drawSettingsGraphs2()
  532. DrawPos(26,4,"/")
  533. DrawPos(26,sizeY-4,string.format("%c",92))
  534. DrawPos(sizeX-1,sizeY-4,"/")
  535. DrawPos(sizeX-1,4,string.format("%c",92))
  536. DrawPos(27,4,string.rep("-", sizeX - 28))
  537. DrawPos(27,sizeY-4,string.rep("-", sizeX - 28))
  538. DrawPos(27,6,string.rep("-", sizeX - 28))
  539. for m = 5, sizeY - 5 do
  540. DrawPos(26,m,"|")
  541. end
  542. for m = 5, sizeY - 5 do
  543. DrawPos(sizeX-1,m,"|")
  544. end
  545. end
  546. function clearSettingsRightSide()
  547. DrawPos(27,5,string.rep(" ", sizeX - 29))
  548. for m = 7, sizeY-5 do
  549. DrawPos(27,m,string.rep(" ", sizeX - 29))
  550. end
  551. end
  552. function clearSettingsWholeRightSide()
  553. for m = 4, sizeY-4 do
  554. DrawPos(26,m,string.rep(" ", sizeX - 26))
  555. end
  556. end
  557. function UpdateData(mode)
  558. for m = 4, sizeY - 4 do
  559. DrawPos(2,m,string.rep(" ", sizeX-2))
  560. end
  561. for dispList = 1, #dispData do
  562. xcountDisp = 0
  563. dispInfo = sensorsUI.split(dispData[dispList], ";")
  564. xreadings = sensors.getSensorReadingAsDict(sensors.getController(),dispInfo[1],dispInfo[3],dispInfo[2])
  565. -- -----
  566. lengthTable = {}
  567. lengthTable[1] = string.len(dispInfo[4])
  568. for i,v in pairs(xreadings) do
  569. lengthTable[#lengthTable+1] = string.len(string.format("%s: %s", tostring(i), tostring(v)))
  570. end
  571. table.sort(lengthTable)
  572. lenmax = tonumber(lengthTable[#lengthTable])
  573. widthmax = #lengthTable + 1
  574. DrawPos(1+tonumber(dispInfo[5]),3+tonumber(dispInfo[6]),"/")
  575. DrawPos(1+tonumber(dispInfo[5])+lenmax+1,3+tonumber(dispInfo[6]),string.format("%c",92))
  576. DrawPos(1+tonumber(dispInfo[5]),3+tonumber(dispInfo[6])+widthmax+1,string.format("%c",92))
  577. DrawPos(1+tonumber(dispInfo[5])+lenmax+1,3+tonumber(dispInfo[6])+widthmax+1,"/")
  578. for m = 3+tonumber(dispInfo[6])+1,3+tonumber(dispInfo[6])+widthmax do
  579. DrawPos(1+tonumber(dispInfo[5]),m,"|")
  580. DrawPos(2+lenmax+tonumber(dispInfo[5]),m,"|")
  581. end
  582. DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6]),string.rep("-", lenmax))
  583. DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+2,string.rep("-", lenmax))
  584. DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+widthmax+1,string.rep("-", lenmax))
  585. -- -----
  586. DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+1,dispInfo[4])
  587. for i,v in pairs(xreadings) do
  588. xcountDisp = xcountDisp + 1
  589. DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+2+xcountDisp,string.format("%s: %s", tostring(i), tostring(v)))
  590. end
  591. end
  592. end
  593. -- ------ Drawing Functions end
  594. -- ------ Main Code
  595. print("Create Log File!")
  596. fh = createLogFile()
  597. createLogEntry("Created New Log File!", true)
  598. if fs.exists("sencenter.sen") == false then
  599. createLogEntry("No Sensor File found! It will created automaticly!", true)
  600. fh3 = createSenFile()
  601. createLogEntry("Created New Sensor File!", true)
  602. else
  603. fh2 = readSenFile()
  604. createLogEntry("Loaded Sensor File!", true)
  605. dispData = LoadTable(fh2)
  606. fh2.close()
  607. end
  608.  
  609. createLogEntry("Checking Controllers!", true)
  610. if checkControllers() == false then
  611. createLogEntry("No or more than one Controllers were found!", true)
  612. closeLogFile()
  613. return
  614. end
  615. createLogEntry("Controller was found!", true)
  616. createLogEntry("Checking Sensors!", true)
  617. xsensors = sensors.getSensors(xside)
  618. if #xsensors == 0 then
  619. createLogEntry("No Sensors were found!!!", true)
  620. closeLogFile()
  621. return
  622. end
  623. createLogEntry("Sensor(s) was/were found!", true)
  624. createLogEntry("GUI get drawed!", true)
  625. print("Every other Log Entry can be found in sencenter.log!")
  626. print("Note: It is recommended to use a ")
  627. print(" full costom monitor for the best design!")
  628. print(" Smaller monitors (like stadard monitor or turtle")
  629. print(" montior) could override texts!")
  630. sleep(3)
  631. term.clear()
  632. createLogEntry("Under Menu will be created!", false)
  633. drawUnderMenu()
  634. createLogEntry("Under Menu is created!", false)
  635. createLogEntry("Upper Menu will be created!", false)
  636. drawUpperMenu()
  637. createLogEntry("Upper Menu is created!", false)
  638. createLogEntry("Whole Menu is finished!", false)
  639. createLogEntry("Waiting for User input!", false)
  640. os.startTimer(0.1)
  641. while done == false do
  642. evt,k = os.pullEvent()
  643. if evt=="key" then
  644. if k==18 then
  645. done = true
  646. createLogEntry("User exits the program!", false)
  647. end
  648. if k==205 and tabmode ~= 3 then
  649. tabmode = tabmode + 1
  650. updateUpperMenu(tabmode)
  651. createLogEntry(string.format("User has entered tab number %d", tabmode),false)
  652. end
  653. if k==203 and tabmode ~= 1 then
  654. tabmode = tabmode - 1
  655. updateUpperMenu(tabmode)
  656. createLogEntry(string.format("User has entered tab number %d", tabmode),false)
  657. end
  658. if (k == 28 or k ==57) and tabmode==2 then
  659. done2 = false
  660. selectmode = 1
  661. while done2 == false do
  662. if selectmode == 1 then
  663. DrawPos(3,5,"*")
  664. DrawPos(3,6," ")
  665. DrawPos(3,7," ")
  666. DrawPos(3,8," ")
  667. end
  668. if selectmode == 2 then
  669. DrawPos(3,5," ")
  670. DrawPos(3,6,"*")
  671. DrawPos(3,7," ")
  672. DrawPos(3,8," ")
  673. end
  674. if selectmode == 3 then
  675. DrawPos(3,5," ")
  676. DrawPos(3,6," ")
  677. DrawPos(3,7,"*")
  678. DrawPos(3,8," ")
  679. end
  680. if selectmode == 4 then
  681. DrawPos(3,5," ")
  682. DrawPos(3,6," ")
  683. DrawPos(3,7," ")
  684. DrawPos(3,8,"*")
  685. end
  686. evt,k = os.pullEvent()
  687. if evt=="key" then
  688. if k==208 and selectmode ~= 4 then
  689. selectmode = selectmode + 1
  690. createLogEntry(string.format("Tab:Settings| User has entered selection number %d", selectmode),false)
  691. end
  692. if k==200 and selectmode ~= 1 then
  693. selectmode = selectmode - 1
  694. createLogEntry(string.format("Tab:Settings| User has entered selection number %d", selectmode),false)
  695. end
  696. if (k == 28 or k == 57) and selectmode == 1 then
  697. createLogEntry("Tab:Settings| User wants to add a sensor!",false)
  698. AddSensor()
  699. end
  700. if (k == 28 or k == 57) and selectmode == 2 then
  701. DeleteSensor()
  702. end
  703. if (k == 28 or k == 57) and selectmode == 3 then
  704. EditSensor()
  705. end
  706. if (k == 28 or k == 57) and selectmode == 4 then
  707. done2 = true
  708. DrawPos(3,5," ")
  709. DrawPos(3,6," ")
  710. DrawPos(3,7," ")
  711. DrawPos(3,8," ")
  712. createLogEntry("Tab:Settings| User exit Settings!",false)
  713. end
  714. if k==18 then
  715. done = true
  716. done2 = true
  717. createLogEntry("Tab:Settings| User exits the program!", false)
  718. end
  719. end
  720. end
  721. end
  722. if tabmode == 3 then
  723. drawInfoText()
  724. end
  725. if tabmode == 2 then
  726. drawSettingsText()
  727. drawSettingsGraphs()
  728. end
  729.  
  730. end
  731. if evt=="timer" and #dispData > 0 and tabmode == 1 then
  732. UpdateData(1)
  733. end
  734. os.startTimer(0.1)
  735. end
  736. -- ---------------
  737. createLogEntry("Saving Sensor File...", false)
  738. fh3 = writeSenFile()
  739. SaveTable(dispData, fh3)
  740. createLogEntry("Saving Completed!", false)
  741. term.clear()
  742. term.setCursorPos(1,1)
  743. print("Thank you for using sencenter!")
  744. closeLogFile()
  745. -- ------ Main Code End
Add Comment
Please, Sign In to add comment