sub checkNetworkAvailable()
currentlyOffline = m.deviceInfo.getLinkStatus() = false
print(currentlyOffline)
end sub
I’ve had a couple of reports from testers with a stack trace reporting an Execution Timeout on the line where I’m checking getLinkStatus() - I must admit I’m somewhat puzzled as to how that might cause an execution timeout. The only thing I can think of is that (maybe) there’s a rendesvouz timeout when accessing the m.deviceInfo variable? It isn’t used or referenced anywhere else, though, so that seems like a long shot.
Any thoughts would be greatly appreciated. Thanks a lot.
That approach works fine, I use it all the time.
If the second part is true, the variable will be True, otherwise it will be False.
So if m.deviceInfo.getLinkStatus() = false is a true statement, then currentlyOffline will be True.
But I have no idea how getLinkStatus() works, so no help from me, sorry.
“Komag” wrote:
That approach works fine, I use it all the time.
If the second part is true, the variable will be True, otherwise it will be False.
So if m.deviceInfo.getLinkStatus() = false is a true statement, then currentlyOffline will be True.
But I have no idea how getLinkStatus() works, so no help from me, sorry.
Interesting. So putting a statement after the first = turns it all into a boolean?
FUNCTION saveItemDetails(Item, y, x, rm, inv = FALSE AS BOOLEAN)
IF NOT inv THEN ItemA = [y, x, rm, Item.code] ELSE ItemA = [Item.code]
stk = Item.inven <> INVALID AND Item.inven.stack <> INVALID AND Item.inven.stack > 1
hth = Item.hth <> INVALID AND Item.hth < Item.max
cnt = Item.contents <> INVALID AND Item.contents.Count() > 0
dscr = Item.kind = "160 readable"
br = Item.bid <> INVALID
lit = br AND Item.bright > 0
torch = Item.name = "torch" AND Item.fuel < m.sy.torchLife
IF stk: ItemA.Push(0): ItemA.Push(Item.inven.stack): END IF
IF hth: ItemA.Push(1): ItemA.Push(Item.hth): END IF
IF cnt: ItemA.Push(2): ItemA.Push(saveContents(Item.contents)): END IF
IF dscr: ItemA.Push(3): ItemA.Push(Item.dscr): END IF
IF br: ItemA.Push(4): ItemA.Push(Item.bid.ToInt()): END IF
IF lit: ItemA.Push(5): ItemA.Push(Item.bright): END IF
IF torch: ItemA.Push(6): ItemA.Push(Item.fuel): END IF
IF NOT inv
frP = Item.frPlyr <> INVALID AND Item.frPlyr
fac = Item.facing <> INVALID
IF frP: ItemA.Push(7): ItemA.Push(1): END IF
IF fac: ItemA.Push(8): ItemA.Push(Item.facing): END IF
ELSE
eqp = Item.inven.equipped <> INVALID AND Item.inven.equipped
IF eqp: ItemA.Push(9): ItemA.Push(m.sy.eqC[Item.inven.eqSlot]): END IF
END IF
RETURN ItemA
END FUNCTION
So you are getting the Execution timeouts in which all devices? Also since you mentioned logs, i am assuming the testers are testing on a dev channel right rather than a private channel?
So you are getting the Execution timeouts in which all devices? Also since you mentioned logs, i am assuming the testers are testing on a dev channel right rather than a private channel?
Yup, all devices. And yes, this is currently via a sideloaded channel.
In the finish, I managed to work around it by removing the periodic polling of getLinkStatus(), and instead I watch for incoming roDeviceInfoEvent events in my runloop.