Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ------ load APIs
- os.unloadAPI("sensors");
- os.unloadAPI("sensorsUI");
- os.loadAPI("/rom/apis/sensors");
- os.loadAPI("/rom/apis/sensorsUI");
- -- ------ load APIs end
- -- ------ variabels
- fh = nil
- fh2 = nil
- fh3 = nil
- ProgrammNotSucessfullyClosed = nil
- logLineReader = nil
- xside = sensors.getController()
- xsensors = nil
- done = false
- done2 = false
- done3 = false
- done4 = false
- done5 = false
- selectmode = 1
- selectmode2 = 1
- selectmode3 = 1
- selectmode4 = 1
- tabmode = 1
- dispData = {} -- nil in the moment
- sizeX, sizeY = term.getSize()
- -- ------ variabels end
- -- ------ Functions
- function createLogFile()
- xdir = shell.dir()
- if xdir ~= nil then
- xdir = xdir.."/"
- end
- if fs.exists(xdir.."logs") == false then
- fs.makeDir(xdir.."logs")
- end
- xlist = fs.list(xdir.."logs")
- h = fs.open(string.format("%slogs/log%d.log",xdir,#xlist), "w")
- return h
- end
- function createSenFile()
- xdir = shell.dir()
- if xdir ~= nil then
- xdir = xdir.."/"
- end
- h = fs.open(xdir.."sencenter.sen", "w")
- return h
- end
- function readSenFile()
- xdir = shell.dir()
- if xdir ~= nil then
- xdir = xdir.."/"
- end
- h = fs.open(xdir.."sencenter.sen", "r")
- return h
- end
- function writeSenFile()
- xdir = shell.dir()
- if xdir ~= nil then
- xdir = xdir.."/"
- end
- h = fs.open(xdir.."sencenter.sen", "w")
- return h
- end
- function ntime()
- return textutils.formatTime(os.time(), true)
- end
- function createLogEntry(str, show)
- xlogEntry = string.format("[%s] %s", ntime(), str)
- if show == true then
- print(xlogEntry)
- end
- fh.writeLine(xlogEntry)
- end
- function closeLogFile()
- createLogEntry("Log and Sensor File Sucessfully Closed!", true)
- fh3.close()
- fh.close()
- end
- function checkControllers()
- sides={"left","right","back","front","bottom","top"}
- xsencount = 0
- for i=1,#sides do
- if peripheral.isPresent( sides[i] ) then
- if peripheral.getType( sides[i]) == "SensorController" then
- xsencount = xsencount + 1
- if xsencount ~= 1 then
- return false
- end
- end
- end
- end
- if xsencount == 0 then
- return false
- end
- end
- function SaveTable(xtable, h)
- for m = 1, #xtable do
- h.writeLine(xtable[m])
- end
- end
- function LoadTable(h)
- xtable = {}
- xstring = ""
- xdone = false
- xcount = 0
- repeat
- xcount = xcount + 1
- xstring = h.readLine()
- if xstring ~= nil then
- xtable[xcount] = xstring
- else
- xdone = true
- end
- until xdone == true
- return xtable
- end
- function EditSensor()
- createLogEntry("Tab:Settings| User wants to edit a entry/sensor!", false)
- edone = false
- eselectmode = 1
- etable = {"Custom Name:", "X:", "Y:", "End"}
- drawSettingsGraphs2()
- clearSettingsRightSide()
- if #dispData == 0 then
- DrawPos(27,5,"No Entry Found!")
- sleep(2)
- clearSettingsWholeRightSide()
- return
- end
- for dispList = 1, #dispData do
- xdata = sensorsUI.split(dispData[dispList],";")
- DrawPos(28,6+dispList,xdata[4])
- end
- DrawPos(27,5,"Select Entry:")
- DrawPos(27,6+eselectmode,"*")
- while edone == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- DrawPos(27,6+eselectmode," ")
- if k == 200 and eselectmode>1 then
- eselectmode=eselectmode-1
- elseif k== 208 and eselectmode < #dispData + 1 then
- eselectmode = eselectmode+1
- elseif k == 28 or k ==57 then
- edone=true;
- end
- end
- DrawPos(27,6+eselectmode,"*")
- end
- edata = sensorsUI.split(dispData[eselectmode],";")
- createLogEntry("Tab:Settings| User wants to edit "..edata[4], false)
- clearSettingsRightSide()
- xsel = eselectmode
- edone = false
- eselectmode = 1
- for dispList = 1, #etable - 1 do
- DrawPos(28,6+dispList,etable[dispList] .. edata[dispList+3])
- end
- DrawPos(28,6+#etable,etable[#etable])
- DrawPos(27,5,"Edit Infos:")
- DrawPos(27,6+eselectmode,"*")
- xcustomName = edata[4]
- xX = edata[5]
- xY = edata[6]
- bl = 0
- while edone == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- DrawPos(27,6+eselectmode," ")
- if k == 200 and eselectmode>1 then
- eselectmode=eselectmode-1
- elseif k== 208 and eselectmode < #etable then
- eselectmode = eselectmode+1
- elseif (k == 28 or k == 57) and eselectmode == 4 then
- edone = true
- elseif (k == 28 or k == 57) and eselectmode == 1 then
- DrawPos(27+13,6+eselectmode,string.rep(" ", sizeX-2-27-13))
- term.setCursorPos(40,6+eselectmode)
- while customName == "" or bl == 0 do
- bl = 1
- xcustomName = read()
- end
- bl = 0
- updateUpperMenuWithoutClear(2)
- drawSettingsGraphs2()
- eselectmode = 2
- elseif (k == 28 or k == 57) and eselectmode == 2 then
- DrawPos(27+3,6+eselectmode,string.rep(" ", sizeX-2-27-3))
- term.setCursorPos(30,6+eselectmode)
- while tonumber(xX) == nil or xX == "" or tonumber(xX) < 1 or bl == 0 do
- bl = 1
- xX = read()
- end
- bl = 0
- updateUpperMenuWithoutClear(2)
- drawSettingsGraphs2()
- eselectmode = 3
- elseif (k == 28 or k == 57) and eselectmode == 3 then
- DrawPos(27+3,6+eselectmode,string.rep(" ", sizeX-2-27-3))
- term.setCursorPos(30,6+eselectmode)
- while tonumber(xY) == nil or xY == "" or tonumber(xY) < 1 or bl == 0 do
- bl = 1
- xY = read()
- end
- bl = 0
- updateUpperMenuWithoutClear(2)
- drawSettingsGraphs2()
- eselectmode = 4
- end
- end
- DrawPos(27,6+eselectmode,"*")
- end
- edata[4] = xcustomName
- edata[5] = xX
- edata[6] = xY
- edataString = ""
- for dispCount = 1, #edata-1 do
- edataString = string.format("%s%s;",edataString,edata[dispCount])
- end
- edataString = string.format("%s%s",edataString,edata[#edata])
- table.remove(dispData,xsel)
- table.insert(dispData,xsel,edataString)
- clearSettingsRightSide()
- DrawPos(27,5,"Entry has been edited!")
- createLogEntry("Tab:Settings| Saving changes..", false)
- sleep(2)
- clearSettingsWholeRightSide()
- end
- function DeleteSensor()
- ddone = false
- dselectmode = 1
- drawSettingsGraphs2()
- clearSettingsRightSide()
- createLogEntry("Tab:Settings| User wants to delete a entry/sensor!", false)
- if #dispData == 0 then
- createLogEntry("Tab:Settings| User hasn't add a sensor yet!", false)
- DrawPos(27,5,"No Entry Found!")
- sleep(2)
- clearSettingsWholeRightSide()
- return
- end
- DrawPos(27,5,"Select Entry:")
- xentrys = dispData
- for dispList = 1, #dispData do
- xdata = sensorsUI.split(dispData[dispList],";")
- DrawPos(28,6+dispList,xdata[4])
- end
- DrawPos(28,6+#dispData+1,"cancel")
- DrawPos(27,6+dselectmode,"*")
- while ddone == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- DrawPos(27,6+dselectmode," ")
- if k == 200 and dselectmode>1 then
- dselectmode=dselectmode-1
- elseif k== 208 and dselectmode < #dispData + 1 then
- dselectmode = dselectmode+1
- elseif k == 28 or k ==57 then
- ddone=true;
- end
- end
- DrawPos(27,6+dselectmode,"*")
- end
- selectData = sensorsUI.split(dispData[dselectmode], ";")
- clearSettingsRightSide()
- if dselectmode == #dispData + 1 then
- createLogEntry("Tab:Settings| User canceled deleting!", false)
- DrawPos(27,5,"Deleting canceled!")
- sleep(2)
- clearSettingsWholeRightSide()
- return
- end
- createLogEntry("Tab:Settings| User wants to delete: "..selectData[4], false)
- DrawPos(27,5,"Deleted: " ..selectData[4])
- createLogEntry("Tab:Settings| User deleted: "..selectData[4], false)
- table.remove(dispData,dselectmode)
- sleep(2)
- clearSettingsWholeRightSide()
- end
- function AddSensor()
- drawSettingsGraphs2()
- clearSettingsRightSide()
- createLogEntry("Tab:Settings| User selecting sensor!",false)
- DrawPos(27,5,"Select Sensor!")
- xsensors = sensors.getSensors(sensors.getController())
- for i,v in pairs(xsensors) do
- DrawPos(28,6+i,v);
- end
- ntable = {}
- xstring = ""
- done3 = false
- selectmode2 = 1
- DrawPos(27,6+selectmode2,"*")
- while done3 == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- DrawPos(27,6+selectmode2," ")
- if k == 200 and selectmode2>1 then
- selectmode2=selectmode2-1
- elseif k== 208 and selectmode2 < #xsensors then
- selectmode2 = selectmode2+1
- elseif k == 28 or k ==57 then
- xstring = xsensors[selectmode2]
- done3=true;
- createLogEntry("Tab:Settings| User selected a sensor!",false)
- end
- end
- DrawPos(27,6+selectmode2,"*")
- end
- clearSettingsRightSide()
- createLogEntry("Tab:Settings| User selecting probe!",false)
- DrawPos(27,5,"Select Probe!")
- xprobe = sensors.getProbes(sensors.getController(),xstring)
- for i,v in pairs(xprobe) do
- DrawPos(28,6+i,v);
- end
- done4 = false
- selectmode3 = 1
- DrawPos(27,6+selectmode3,"*")
- while done4 == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- DrawPos(27,6+selectmode3," ")
- if k == 200 and selectmode3>1 then
- selectmode3=selectmode3-1
- elseif k== 208 and selectmode3 < #xprobe then
- selectmode3 = selectmode3+1
- elseif k == 28 or k ==57 then
- xstring = string.format("%s;%s", xstring, xprobe[selectmode3]);
- done4=true;
- createLogEntry("Tab:Settings| User selected a probe!",false)
- end
- end
- DrawPos(27,6+selectmode3,"*")
- end
- createLogEntry("Tab:Settings| User selecting target!",false)
- clearSettingsRightSide()
- ntable = sensorsUI.split(xstring, ";")
- xtargets = sensors.getAvailableTargetsforProbe(sensors.getController(), ntable[1], ntable[2])
- if #xtargets == 0 then
- DrawPos(27,5,"No Targets were found!")
- sleep(2)
- clearSettingsWholeRightSide()
- createLogEntry("Tab:Settings| User hasen't found a target!",false)
- return
- else
- DrawPos(27,5,"Select Target!")
- xcount2 = 0
- for i,v in pairs(xtargets) do
- xcount2 = xcount2 + 1
- DrawPos(28,6+i,string.format("Target%d", xcount2))
- end
- done5 = false
- selectmode4 = 1
- DrawPos(27,6+selectmode4,"*")
- while done5 == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- DrawPos(27,6+selectmode4," ")
- if k == 200 and selectmode4>1 then
- selectmode4=selectmode4-1
- elseif k== 208 and selectmode4 < #xtargets then
- selectmode4 = selectmode4+1
- elseif k == 28 or k ==57 then
- xstring = string.format("%s;%s", xstring, xtargets[selectmode4]);
- done5=true;
- end
- end
- DrawPos(27,6+selectmode4,"*")
- end
- end
- createLogEntry("Tab:Settings| User selected a target!",false)
- clearSettingsRightSide()
- createLogEntry("Tab:Settings| User inputs Informations!",false)
- DrawPos(27,5,"Input Infos!")
- DrawPos(27,7,"Custom Name:")
- term.setCursorPos(43, 7)
- cname = ""
- while cname == "" do
- term.setCursorPos(40, 7)
- cname = read()
- end
- updateUpperMenuWithoutClear(2)
- drawSettingsGraphs2()
- DrawPos(27,8,"X:")
- term.setCursorPos(30, 8)
- cx = "n"
- while tonumber(cx) == nil or cx == "" or tonumber(cx) < 1 do
- term.setCursorPos(30, 8)
- cx = read()
- end
- updateUpperMenuWithoutClear(2)
- drawSettingsGraphs2()
- DrawPos(27,9,"Y:")
- term.setCursorPos(30, 9)
- cy = "n"
- while tonumber(cy) == nil or cy == "" or tonumber(cy) < 1 do
- term.setCursorPos(30, 9)
- cy = read()
- end
- updateUpperMenuWithoutClear(2)
- drawSettingsGraphs2()
- xstring = string.format("%s;%s;%s;%s", xstring, cname, cx, cy)
- dispData[#dispData + 1] = xstring
- clearSettingsRightSide()
- createLogEntry("Tab:Settings| User has entered the Informations!",false)
- createLogEntry("Tab:Settings| Entry has been added!",false)
- DrawPos(27,5,"Entry has been added!")
- sleep(2)
- clearSettingsWholeRightSide()
- end
- -- ------ Functions end
- -- ------ Drawing Functions
- function DrawPos(x,y,str)
- term.setCursorPos(x, y)
- term.write(str)
- end
- function refreshMenu()
- for m = 4, sizeY - 4 do
- DrawPos(1,m, "|")
- end
- DrawPos(1,sizeY - 3,string.format("%c",92))
- for m = 2, sizeX - 1 do
- DrawPos(m,sizeY - 3, "-")
- end
- DrawPos(sizeX,sizeY-3,"/")
- for m = 4, sizeY-4 do
- DrawPos(sizeX,m,"|")
- end
- end
- function drawUnderMenu()
- term.setCursorPos(1, sizeY - 3)
- print(string.rep("-", sizeX))
- DrawPos(1,sizeY - 1,"e = exit | right/left = select | tab enter = activate tab")
- DrawPos(sizeX - 18, sizeY - 1, "Made by KevinW1998 ")
- end
- function drawUpperMenu()
- DrawPos(4,2,"Menu")
- DrawPos(11,2,"Settings")
- DrawPos(22,2,"Info")
- DrawPos(1,3,"/")
- DrawPos(2,3,"-")
- DrawPos(3,3,"/")
- DrawPos(3,2,"|")
- DrawPos(3,1,"/")
- DrawPos(4,1,"-----")
- DrawPos(8,1,string.format("%c",92))
- DrawPos(8,2,"|")
- DrawPos(8,3,string.format("%c",92))
- DrawPos(9,3,string.rep("-", sizeX - 9))
- DrawPos(10,2,"|")
- DrawPos(10,1,"/")
- DrawPos(11,1,"--------")
- DrawPos(19,1,string.format("%c",92))
- DrawPos(19,2,"|")
- DrawPos(21,2,"|")
- DrawPos(21,1,"/")
- DrawPos(22,1,"----")
- DrawPos(26,1,string.format("%c",92))
- DrawPos(26,2,"|")
- DrawPos(sizeX,3,string.format("%c",92))
- refreshMenu()
- end
- function updateUpperMenu(mode)
- refreshMenu()
- drawUnderMenu()
- for m = 4, sizeY - 4 do
- DrawPos(2,m,string.rep(" ", sizeX-2))
- end
- if mode == 1 then
- DrawPos(3,3,string.format("/ %c",92))
- DrawPos(9,3,string.rep("-", sizeX - 9))
- end
- if mode == 2 then
- DrawPos(10,3,string.format("/ %c",92))
- DrawPos(3,3,"------")
- DrawPos(21,3,"------")
- end
- if mode == 3 then
- DrawPos(21,3,string.format("/ %c",92))
- DrawPos(3,3,"------")
- DrawPos(10,3,"----------")
- end
- end
- function updateUpperMenuWithoutClear(mode)
- refreshMenu()
- drawUnderMenu()
- if mode == 1 then
- DrawPos(3,3,string.format("/ %c",92))
- DrawPos(9,3,string.rep("-", sizeX - 9))
- end
- if mode == 2 then
- DrawPos(10,3,string.format("/ %c",92))
- DrawPos(3,3,"------")
- DrawPos(21,3,"------")
- end
- if mode == 3 then
- DrawPos(21,3,string.format("/ %c",92))
- DrawPos(3,3,"------")
- DrawPos(10,3,"----------")
- end
- end
- function drawInfoText()
- DrawPos(2,4,"sencenter was created by KevinW1998")
- DrawPos(2,5,"This Program should make a overview")
- DrawPos(2,6,"of all selected sensors!")
- DrawPos(2,8,"sencenter-version: 1.01 Beta")
- DrawPos(2,10,"PS: sry for my bad english ;)")
- end
- function drawSettingsGraphs()
- DrawPos(2,4,"/")
- DrawPos(2,sizeY-4,string.format("%c",92))
- DrawPos(25,sizeY-4,"/")
- DrawPos(25,4,string.format("%c",92))
- DrawPos(3,4,"----------------------")
- DrawPos(3,sizeY-4,"----------------------")
- for m = 5, sizeY - 5 do
- DrawPos(2,m,"|")
- end
- for m = 5, sizeY - 5 do
- DrawPos(25,m,"|")
- end
- end
- function drawSettingsText()
- DrawPos(4,5,"Connect to new Sensor")
- DrawPos(4,6,"Delete Entry")
- DrawPos(4,7,"Edit Entry")
- DrawPos(4,8,"Back")
- end
- function drawSettingsGraphs2()
- DrawPos(26,4,"/")
- DrawPos(26,sizeY-4,string.format("%c",92))
- DrawPos(sizeX-1,sizeY-4,"/")
- DrawPos(sizeX-1,4,string.format("%c",92))
- DrawPos(27,4,string.rep("-", sizeX - 28))
- DrawPos(27,sizeY-4,string.rep("-", sizeX - 28))
- DrawPos(27,6,string.rep("-", sizeX - 28))
- for m = 5, sizeY - 5 do
- DrawPos(26,m,"|")
- end
- for m = 5, sizeY - 5 do
- DrawPos(sizeX-1,m,"|")
- end
- end
- function clearSettingsRightSide()
- DrawPos(27,5,string.rep(" ", sizeX - 29))
- for m = 7, sizeY-5 do
- DrawPos(27,m,string.rep(" ", sizeX - 29))
- end
- end
- function clearSettingsWholeRightSide()
- for m = 4, sizeY-4 do
- DrawPos(26,m,string.rep(" ", sizeX - 26))
- end
- end
- function UpdateData(mode)
- for m = 4, sizeY - 4 do
- DrawPos(2,m,string.rep(" ", sizeX-2))
- end
- for dispList = 1, #dispData do
- xcountDisp = 0
- dispInfo = sensorsUI.split(dispData[dispList], ";")
- xreadings = sensors.getSensorReadingAsDict(sensors.getController(),dispInfo[1],dispInfo[3],dispInfo[2])
- -- -----
- lengthTable = {}
- lengthTable[1] = string.len(dispInfo[4])
- for i,v in pairs(xreadings) do
- lengthTable[#lengthTable+1] = string.len(string.format("%s: %s", tostring(i), tostring(v)))
- end
- table.sort(lengthTable)
- lenmax = tonumber(lengthTable[#lengthTable])
- widthmax = #lengthTable + 1
- DrawPos(1+tonumber(dispInfo[5]),3+tonumber(dispInfo[6]),"/")
- DrawPos(1+tonumber(dispInfo[5])+lenmax+1,3+tonumber(dispInfo[6]),string.format("%c",92))
- DrawPos(1+tonumber(dispInfo[5]),3+tonumber(dispInfo[6])+widthmax+1,string.format("%c",92))
- DrawPos(1+tonumber(dispInfo[5])+lenmax+1,3+tonumber(dispInfo[6])+widthmax+1,"/")
- for m = 3+tonumber(dispInfo[6])+1,3+tonumber(dispInfo[6])+widthmax do
- DrawPos(1+tonumber(dispInfo[5]),m,"|")
- DrawPos(2+lenmax+tonumber(dispInfo[5]),m,"|")
- end
- DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6]),string.rep("-", lenmax))
- DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+2,string.rep("-", lenmax))
- DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+widthmax+1,string.rep("-", lenmax))
- -- -----
- DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+1,dispInfo[4])
- for i,v in pairs(xreadings) do
- xcountDisp = xcountDisp + 1
- DrawPos(1+tonumber(dispInfo[5])+1,3+tonumber(dispInfo[6])+2+xcountDisp,string.format("%s: %s", tostring(i), tostring(v)))
- end
- end
- end
- -- ------ Drawing Functions end
- -- ------ Main Code
- print("Create Log File!")
- fh = createLogFile()
- createLogEntry("Created New Log File!", true)
- if fs.exists("sencenter.sen") == false then
- createLogEntry("No Sensor File found! It will created automaticly!", true)
- fh3 = createSenFile()
- createLogEntry("Created New Sensor File!", true)
- else
- fh2 = readSenFile()
- createLogEntry("Loaded Sensor File!", true)
- dispData = LoadTable(fh2)
- fh2.close()
- end
- createLogEntry("Checking Controllers!", true)
- if checkControllers() == false then
- createLogEntry("No or more than one Controllers were found!", true)
- closeLogFile()
- return
- end
- createLogEntry("Controller was found!", true)
- createLogEntry("Checking Sensors!", true)
- xsensors = sensors.getSensors(xside)
- if #xsensors == 0 then
- createLogEntry("No Sensors were found!!!", true)
- closeLogFile()
- return
- end
- createLogEntry("Sensor(s) was/were found!", true)
- createLogEntry("GUI get drawed!", true)
- print("Every other Log Entry can be found in sencenter.log!")
- print("Note: It is recommended to use a ")
- print(" full costom monitor for the best design!")
- print(" Smaller monitors (like stadard monitor or turtle")
- print(" montior) could override texts!")
- sleep(3)
- term.clear()
- createLogEntry("Under Menu will be created!", false)
- drawUnderMenu()
- createLogEntry("Under Menu is created!", false)
- createLogEntry("Upper Menu will be created!", false)
- drawUpperMenu()
- createLogEntry("Upper Menu is created!", false)
- createLogEntry("Whole Menu is finished!", false)
- createLogEntry("Waiting for User input!", false)
- os.startTimer(0.1)
- while done == false do
- evt,k = os.pullEvent()
- if evt=="key" then
- if k==18 then
- done = true
- createLogEntry("User exits the program!", false)
- end
- if k==205 and tabmode ~= 3 then
- tabmode = tabmode + 1
- updateUpperMenu(tabmode)
- createLogEntry(string.format("User has entered tab number %d", tabmode),false)
- end
- if k==203 and tabmode ~= 1 then
- tabmode = tabmode - 1
- updateUpperMenu(tabmode)
- createLogEntry(string.format("User has entered tab number %d", tabmode),false)
- end
- if (k == 28 or k ==57) and tabmode==2 then
- done2 = false
- selectmode = 1
- while done2 == false do
- if selectmode == 1 then
- DrawPos(3,5,"*")
- DrawPos(3,6," ")
- DrawPos(3,7," ")
- DrawPos(3,8," ")
- end
- if selectmode == 2 then
- DrawPos(3,5," ")
- DrawPos(3,6,"*")
- DrawPos(3,7," ")
- DrawPos(3,8," ")
- end
- if selectmode == 3 then
- DrawPos(3,5," ")
- DrawPos(3,6," ")
- DrawPos(3,7,"*")
- DrawPos(3,8," ")
- end
- if selectmode == 4 then
- DrawPos(3,5," ")
- DrawPos(3,6," ")
- DrawPos(3,7," ")
- DrawPos(3,8,"*")
- end
- evt,k = os.pullEvent()
- if evt=="key" then
- if k==208 and selectmode ~= 4 then
- selectmode = selectmode + 1
- createLogEntry(string.format("Tab:Settings| User has entered selection number %d", selectmode),false)
- end
- if k==200 and selectmode ~= 1 then
- selectmode = selectmode - 1
- createLogEntry(string.format("Tab:Settings| User has entered selection number %d", selectmode),false)
- end
- if (k == 28 or k == 57) and selectmode == 1 then
- createLogEntry("Tab:Settings| User wants to add a sensor!",false)
- AddSensor()
- end
- if (k == 28 or k == 57) and selectmode == 2 then
- DeleteSensor()
- end
- if (k == 28 or k == 57) and selectmode == 3 then
- EditSensor()
- end
- if (k == 28 or k == 57) and selectmode == 4 then
- done2 = true
- DrawPos(3,5," ")
- DrawPos(3,6," ")
- DrawPos(3,7," ")
- DrawPos(3,8," ")
- createLogEntry("Tab:Settings| User exit Settings!",false)
- end
- if k==18 then
- done = true
- done2 = true
- createLogEntry("Tab:Settings| User exits the program!", false)
- end
- end
- end
- end
- if tabmode == 3 then
- drawInfoText()
- end
- if tabmode == 2 then
- drawSettingsText()
- drawSettingsGraphs()
- end
- end
- if evt=="timer" and #dispData > 0 and tabmode == 1 then
- UpdateData(1)
- end
- os.startTimer(0.1)
- end
- -- ---------------
- createLogEntry("Saving Sensor File...", false)
- fh3 = writeSenFile()
- SaveTable(dispData, fh3)
- createLogEntry("Saving Completed!", false)
- term.clear()
- term.setCursorPos(1,1)
- print("Thank you for using sencenter!")
- closeLogFile()
- -- ------ Main Code End
Add Comment
Please, Sign In to add comment