@name
@inputs KeyInput Reset
@outputs Index Text:string
@persist KeyLog:string Data:array Menu
@trigger
#Set menu to first
if(first())
{
Menu = 0
Index = 0
Reset = 0
}
#Manual reset
if(Reset)
{
Menu = 0
Index = 0
KeyLog = ""
exit()
}
#Key Chars
KEY_BACKSPACE = 127
KEY_LEFTSHIFT = 154
KEY_ENTER = 13
KEY_NUM1 = 49
KEY_NUM2 = 50
KEY_NUM3 = 51
#Delete character
if(KeyInput == KEY_BACKSPACE)
{
KeyLog = KeyLog:sub(1,-2)
}
#Append to KeyLog
elseif(KeyInput > 0 && KeyInput != KEY_LEFTSHIFT && KeyInput != KEY_ENTER)
{
KeyLog += toChar(KeyInput)
}
#Display Menu(s)
MT = ""
MT += "-- Menu Options --\n"
MT += "- Addr " + Index + " -\n\n"
#0 - No menu selected
if(Menu == 0)
{
MT += "[1] Change Address\n"
MT += "[2] Write data\n"
MT += "[3] Read data\n"
MT += "\nInput: "+KeyLog+"\n"
#User has selected 'Change Address'
if(KeyLog == "1" && KeyInput == KEY_ENTER)
{
Menu = 1
KeyLog = ""
exit()
}
#User has selected 'Write Data'
if(KeyLog == "2" && KeyInput == KEY_ENTER)
{
Menu = 2
KeyLog = ""
exit()
}
#User has selected 'Write Data'
if(KeyLog == "3" && KeyInput == KEY_ENTER)
{
Menu = 3
KeyLog = ""
exit()
}
}
#1 - Change their address
if(Menu == 1)
{
MT += "Enter New Address (1 - 32):\n"
MT += KeyLog + "\n"
}
#User has selected their address
if(KeyInput == KEY_ENTER)
{
Index = KeyLog:toNumber()
KeyLog = ""
Menu = 0
exit()
}
#2 - Write to address
if(Menu == 2)
{
MT += "Type 'exit' to return\n"
MT += "Press enter to save input\n"
MT += "Input:\n" + KeyLog
if(KeyInput == KEY_ENTER)
{
if(KeyLog != "exit")
{
Data:setString(Index, KeyLog)
}
KeyLog = ""
Menu = 0
exit()
}
}
if(Menu == 3)
{
MT += "Address " + Index + " returned:\n" + Data:string(Index)
if(KeyInput == KEY_ENTER)
{
Menu = 0
KeyLog = ""
exit()
}
}
#Write menu
Text = MT
exit()
Comments