Alright. There are a couple of issues with the script. The most likely source of your problem is this:
As you probably know, this means that unless it matches one of your conditions and returns, the while-loop will simply never end, and therefore neither will the Update() function. The problem is that Rainmeter requires the Update() function to complete itself and return a value. The function is called at a regular rate of once per second, so Rainmeter is already doing what you want to do. To put it another way, you can think of Update() itself as your while-loop.
The second thing that jumps out at me is the StatusFilePath variable. Backslash is an escape character in Lua strings, so you just need to double them up.
Code: Select all
'C:\\Users\\Mike\\Documents\\Rainmeter\\Skins\\SageTV\\SageTV\\ParserStatus.xml'
EDIT: If you want to make this a little easier, you can also use Rainmeter's built-in variables to get to your skins library Actually, turns out you can't use the SKIN object at all in a TrayMeasure context. Nevermind.
EDIT 2: Two other little things I found. First, you're missing a second "=" on line 16:
And second, you need to cast AlertStatus as a number before you can do math on it.
Code: Select all
AlertStatus=string.match(ReadContent, '<AlertStatus>(.-)</>') or 'Batch AlertStatus match.'
AlertStatus=tonumber(AlertStatus)