Author: fmueller
Date: Fri Jul 30 04:22:18 2010
New Revision: 9003
URL: http://svn.slimdevices.com/jive?rev=9003&view=rev
Log:
Bug: 16408
Description: Diagnostics applet modifications and bug fixes
- Put items belonging together into sub-menus
- Fixed silly values if no battery is installed (bug 15453)
- Integrated Network Health option (Network Health and Network Repair)
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua?rev=9003&r1=9002&r2=9003&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
Fri Jul 30 04:22:18 2010
@@ -1,5 +1,8 @@
local ipairs, tostring, tonumber = ipairs, tostring, tonumber
+
+-- NETWORK HEALTH STUFF
+local type, pairs, setmetatable = type, pairs, setmetatable
-- stuff we use
local oo = require("loop.simple")
@@ -7,7 +10,6 @@
local math = require("math")
local string = require("string")
local table = require("jive.utils.table")
-local lfs = require("lfs")
local Applet = require("jive.Applet")
local System = require("jive.System")
@@ -24,8 +26,11 @@
local Textarea = require("jive.ui.Textarea")
local Window = require("jive.ui.Window")
-local debug = require("jive.utils.debug")
-
+-- NETWORK HEALTH STUFF
+local Popup = require("jive.ui.Popup")
+local Icon = require("jive.ui.Icon")
+local Tile = require("jive.ui.Tile")
+local jive = jive
local jnt = jnt
local appletManager = appletManager
@@ -36,19 +41,36 @@
oo.class(_M, Applet)
-local tests = {
+local generalTests = {
"FIRMWARE_VERSION",
"HARDWARE_VERSION",
"MAC_ADDRESS",
+ "CURRENT_PLAYER",
+ "PLAYER_TYPE",
+ "UPTIME",
+ "MEMORY",
+}
+
+local wirelessTests = {
"WLAN_SSID",
"WLAN_ENCRYPTION",
"WLAN_STRENGTH",
-- (for testing): "WLAN_SNR",
+ "IP_ADDRESS",
+ "SUBNET_MASK",
+ "GATEWAY",
+ "DNS_SERVER",
+}
+
+local ethernetTests = {
"ETH_CONNECTION",
"IP_ADDRESS",
"SUBNET_MASK",
"GATEWAY",
"DNS_SERVER",
+}
+
+local serverTests = {
"SN_ADDRESS",
"SN_PING",
"SN_PORT_3483",
@@ -59,21 +81,17 @@
"SC_PING",
"SC_PORT_3483",
"SC_PORT_9000",
- "CURRENT_PLAYER",
- "PLAYER_TYPE",
- "UPTIME",
- "MEMORY",
}
local powerTests = {
"MSP_VERSION",
+ "POWER_MODE",
+ "WALL_VOLTAGE",
+ "CHARGE_STATE",
+ "BATTERY_TEMPERATURE",
"BATTERY_VOLTAGE",
"BATTERY_VMON1",
"BATTERY_VMON2",
- "WALL_VOLTAGE",
- "BATTERY_TEMPERATURE",
- "POWER_MODE",
- "CHARGE_STATE",
}
local powerMode = {
@@ -91,6 +109,7 @@
["24"] = "BATT_CHARGING_PAUSED",
}
+
function setValue(self, key, value, customLabel)
if not value then
value = '-'
@@ -98,18 +117,10 @@
-- if we have customLabelArgs, we want to insert those first to the
string args
if customLabel then
- self.diagMenu:setText(self.labels[key], self:string(key,
tostring(customLabel), value))
+ self.menu:setText(self.labels[key], self:string(key,
tostring(customLabel), value))
else
- self.diagMenu:setText(self.labels[key], self:string(key, value))
- end
-end
-
-
-function setPowerValue(self, key, value)
- if not value then
- value = '-'
- end
- self.powerDiagMenu:setText(self.labels[key], self:string(key, value))
+ self.menu:setText(self.labels[key], self:string(key, value))
+ end
end
@@ -333,6 +344,7 @@
self:setValue("MEMORY", memory)
end
+
function _getSysValue(self, param)
local f = io.open("/sys/bus/i2c/devices/1-0010/" .. param)
@@ -343,6 +355,7 @@
return value
end
+
function _getPowerSysValue(self, param)
local f = io.open("/sys/devices/platform/i2c-adapter:i2c-1/1-0010/" ..
param)
@@ -354,27 +367,61 @@
return value
end
-function dovalues(self, menu)
+
+-- DO VALUES
+
+function doGeneralValues(self, menu)
+ self.menu = menu
+
local machine, revision = System:getMachine();
- -- fixed values
self:setValue("FIRMWARE_VERSION", JIVE_VERSION)
if revision then
self:setValue("HARDWARE_VERSION", tostring(revision))
end
self:setValue("MAC_ADDRESS", System:getMacAddress())
- -- networks
+ self:systemStatus()
+
+ local currentPlayer = appletManager:callService("getCurrentPlayer")
+ if currentPlayer then
+ self:setValue("CURRENT_PLAYER", currentPlayer:getName())
+ if currentPlayer:isLocal() then
+ self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_LOCAL")))
+ else
+ self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_REMOTE")))
+ end
+ else
+ self:setValue("CURRENT_PLAYER",
tostring(self:string("DIAGNOSTICS_NONE")))
+ self:setValue("PLAYER_TYPE", "")
+
+ end
+end
+
+
+function doWirelessValues(self, menu)
+ self.menu = menu
+
local wlanIface = Networking:wirelessInterface(jnt)
+
+ self:wlanStatus(wlanIface)
+end
+
+
+function doEthernetValues(self, menu)
+ self.menu = menu
+
local ethIface = Networking:wiredInterface(jnt)
- self:wlanStatus(wlanIface)
if System:hasWiredNetworking() then
self:ethStatus(ethIface)
end
-
-
- -- servers
+end
+
+
+function doServerValues(self, menu)
+ self.menu = menu
+
local sn = false
for name, server in SlimServer:iterate() do
if server:isSqueezeNetwork() then
@@ -383,7 +430,6 @@
end
local sc = SlimServer:getCurrentServer()
-
self:serverPing(sn, "SN_ADDRESS", "SN_PING", "SN_REG")
self:serverPort(sn, 3483, "SN_PORT_3483")
@@ -403,39 +449,178 @@
local ip, port = sc:getIpPort()
self:serverPort(sc, port, "SC_PORT_9000", port)
end
-
-
- local currentPlayer = appletManager:callService("getCurrentPlayer")
- if currentPlayer then
- self:setValue("CURRENT_PLAYER", currentPlayer:getName())
- if currentPlayer:isLocal() then
- self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_LOCAL")))
+end
+
+
+function roundNumber(num, idp)
+ return tonumber(string.format("%." .. (idp or 0) .. "f", num))
+end
+
+
+function doPowerValues(self, menu)
+ self.menu = menu
+
+ self:setValue("MSP_VERSION", self:_getSysValue("fw"))
+
+ local mode = self:_getPowerSysValue("power_mode"):gsub("^%s*(.-)%s*$",
"%1")
+ self:setValue("POWER_MODE", tostring(self:string(powerMode[mode])))
+
+ -- Battery only
+ if mode == "5" then
+ self:setValue("WALL_VOLTAGE", "-")
+ -- AC (maybe Battery)
+ else
+ local wallVoltage =
roundNumber(self:_getPowerSysValue("wall_voltage") / 1000.0, 1)
+ self:setValue("WALL_VOLTAGE", tostring(wallVoltage .. " V"))
+ end
+
+ local mode =
self:_getPowerSysValue("charger_state"):gsub("^%s*(.-)%s*$", "%1")
+ self:setValue("CHARGE_STATE", tostring(self:string(chargerState[mode])))
+
+ -- No battery installed
+ if mode == "1" then
+ self:setValue("BATTERY_TEMPERATURE", "-")
+ self:setValue("BATTERY_VOLTAGE", "-")
+ self:setValue("BATTERY_VMON1", "-")
+ self:setValue("BATTERY_VMON2", "-")
+
+ -- Battery installed
+ else
+ local batteryTemperature =
roundNumber(self:_getPowerSysValue("battery_temperature") / 32.0, 1)
+ local batteryVoltage =
roundNumber(self:_getPowerSysValue("battery_voltage") / 1000.0, 1)
+ local batteryMonitor1 =
roundNumber(self:_getPowerSysValue("battery_vmon1_voltage") / 1000.0, 1)
+ local batteryMonitor2 =
roundNumber(self:_getPowerSysValue("battery_vmon2_voltage") / 1000.0, 1)
+
+ self:setValue("BATTERY_TEMPERATURE",
tostring(batteryTemperature) .. " C")
+ self:setValue("BATTERY_VOLTAGE", tostring(batteryVoltage) .. "
V")
+ self:setValue("BATTERY_VMON1", tostring(batteryMonitor1) .. "
V")
+ self:setValue("BATTERY_VMON2", tostring(batteryMonitor2) .. "
V")
+ end
+end
+
+
+-- SUB MENUS
+
+function showGeneralDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_GENERAL"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(generalTests) do
+ self.labels[name] = {
+ text = self:string(name, ''),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doGeneralValues(self, menu)
+ menu:addTimer(5000, function()
+ doGeneralValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
+end
+
+
+function showWirelessDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_WIRELESS"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(wirelessTests) do
+ self.labels[name] = {
+ text = self:string(name, ''),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doWirelessValues(self, menu)
+ menu:addTimer(5000, function()
+ doWirelessValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
+end
+
+
+function showEthernetDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_ETHERNET"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(ethernetTests) do
+ self.labels[name] = {
+ text = self:string(name, ''),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doEthernetValues(self, menu)
+ menu:addTimer(5000, function()
+ doEthernetValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
+end
+
+
+function showServerDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_SERVER"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(serverTests) do
+ local label
+ if name == 'SC_PORT_9000' then
+ label = self:string(name, '9000', '-')
else
- self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_REMOTE")))
- end
- else
- self:setValue("CURRENT_PLAYER",
tostring(self:string("DIAGNOSTICS_NONE")))
- self:setValue("PLAYER_TYPE", "")
-
- end
-
- self:systemStatus()
-
-end
-
-
-function doPowerValues(self, menu)
- self:setValue("MSP_VERSION", self:_getSysValue("fw"))
- self:setValue("BATTERY_VOLTAGE" ,
tostring(self:_getPowerSysValue("battery_voltage") /1000.0) .. " V")
- self:setValue("BATTERY_VMON1" ,
tostring(self:_getPowerSysValue("battery_vmon1_voltage")/1000.0) .. " V")
- self:setValue("BATTERY_VMON2" ,
tostring(self:_getPowerSysValue("battery_vmon2_voltage")/1000.0) .. " V")
- self:setValue("WALL_VOLTAGE" ,
tostring(self:_getPowerSysValue("wall_voltage") /1000.0) .. " V")
- self:setValue("BATTERY_TEMPERATURE",
tostring(self:_getPowerSysValue("battery_temperature") /32.0 ) .. " C")
-
- local mode = self:_getPowerSysValue("power_mode"):gsub("^%s*(.-)%s*$",
"%1")
- self:setValue("POWER_MODE" ,
tostring(self:string(powerMode[mode])))
- local mode =
self:_getPowerSysValue("charger_state"):gsub("^%s*(.-)%s*$", "%1")
- self:setValue("CHARGE_STATE" ,
tostring(self:string(chargerState[mode])))
+ label = self:string(name, '-')
+ end
+
+ self.labels[name] = {
+ text = label,
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doServerValues(self, menu)
+ menu:addTimer(5000, function()
+ doServerValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
end
@@ -456,7 +641,6 @@
menu:addItem(self.labels[name])
end
- self.powerDiagMenu = menu
doPowerValues(self, menu)
menu:addTimer(5000, function()
doPowerValues(self, menu)
@@ -468,6 +652,10 @@
return window
end
+
+-- MAIN MENU
+
+-- Service menu
function diagnosticsMenu(self, suppressNetworkingItem)
local window = Window("text_list", self:string("DIAGNOSTICS"))
window:setAllowScreensaver(false)
@@ -475,24 +663,47 @@
local menu = SimpleMenu("menu")
- self.labels = {}
-
- for i,name in ipairs(tests) do
- if name ~= 'ETH_CONNECTION' or System:getMachine() ~= 'jive'
then
- local label
- if name == 'SC_PORT_9000' then
- label = self:string(name, '9000', '-')
- else
- label = self:string(name, '-')
- end
-
- self.labels[name] = {
- text = label,
- style = 'item_info',
- }
- menu:addItem(self.labels[name])
- end
- end
+ menu:addItem({
+ text = self:string("MENU_GENERAL"),
+ style = 'item',
+ callback = function ()
+ self:showGeneralDiagnosticsMenu()
+ end
+ })
+
+ menu:addItem({
+ text = self:string("MENU_NETWORK_HEALTH"),
+ style = 'item',
+ callback = function ()
+ self:showNetworkHealthDiagnosticsMenu()
+ end
+ })
+
+ menu:addItem({
+ text = self:string("MENU_WIRELESS"),
+ style = 'item',
+ callback = function ()
+ self:showWirelessDiagnosticsMenu()
+ end
+ })
+
+ if System:getMachine() ~= 'jive' then
+ menu:addItem({
+ text = self:string("MENU_ETHERNET"),
+ style = 'item',
+ callback = function ()
+ self:showEthernetDiagnosticsMenu()
+ end
+ })
+ end
+
+ menu:addItem({
+ text = self:string("MENU_SERVER"),
+ style = 'item',
+ callback = function ()
+ self:showServerDiagnosticsMenu()
+ end
+ })
if System:getMachine() == "baby" then
menu:addItem({
@@ -527,11 +738,7 @@
self.notConnected = tostring(self:string('NOT_CONNECTED'))
- self.diagMenu = menu
- dovalues(self, menu)
- menu:addTimer(5000, function()
- dovalues(self, menu)
- end)
+ self.menu = menu
window:addWidget(menu)
@@ -539,7 +746,7 @@
return window
end
-
+-- Service menu
function supportMenu(self)
local window = Window("help_list", self:string("SUPPORT"))
window:setAllowScreensaver(false)
@@ -563,6 +770,196 @@
end
+
+
+-- NETWORK HEALTH STUFF
+function showNetworkHealthDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_NETWORK_HEALTH"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+ self.labels["NETWORK_STATUS"] = {
+ text = self:string("NETWORK_STATUS", '-'),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels["NETWORK_STATUS"])
+
+ menu:addItem({
+ text = self:string("CHECK_NETWORK"),
+ style = 'item',
+ callback = function ()
+ self:manualCheckNetworkHealth(true)
+ end
+ })
+
+-- menu:addItem({
+-- text = self:string("CHECK_NETWORK_PART"),
+-- style = 'item',
+-- callback = function ()
+-- self:manualCheckNetworkHealth(false)
+-- end
+-- })
+
+ menu:addItem({
+ text = self:string("REPAIR_NETWORK"),
+ style = 'item',
+ callback = function ()
+ self:manualRepairNetwork()
+ end
+ })
+
+ self.networkHealthMenu = menu
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+
+ return window
+end
+
+
+function manualCheckNetworkHealth(self, full_check)
+ local popup = Popup("waiting_popup")
+ popup:setAllowScreensaver(false)
+ popup:ignoreAllInputExcept()
+
+ popup:addWidget(Icon("icon_connecting"))
+
+ if full_check then
+ popup:addWidget(Label("text", self:string("CHECK_NETWORK")))
+ else
+ popup:addWidget(Label("text",
self:string("CHECK_NETWORK_PART")))
+ end
+
+ local status = Label("subtext", self:string("STATUS_MSG", "-"))
+ popup:addWidget(status)
+
+ -- Get current server
+ local server = SlimServer:getCurrentServer()
+
+ -- Get SN if SC is not available
+ if not server then
+ -- Get SN
+ for n, s in SlimServer:iterate() do
+ if s:isSqueezeNetwork() then
+ server = s
+ end
+ end
+ end
+
+ local ifObj = Networking:activeInterface()
+
+ ifObj:checkNetworkHealth( function(continue, err, msg, msg_param)
+ local message = self:string(msg, msg_param)
+ log:debug("checkNetworkHealth status: ", message)
+-- TODO: remove
+ log:warn("checkNetworkHealth status: ", message)
+
+ if continue then
+ -- Update spinny message
+ status:setValue(self:string("STATUS_MSG",
message))
+ else
+ log:debug("Network health error: ", err)
+
+ -- Update final message
+ self:setResult("NETWORK_STATUS", err)
+
+-- self:setValue("NETWORK_STATUS", message)
+
self.networkHealthMenu:setText(self.labels["NETWORK_STATUS"],
self:string("NETWORK_STATUS", message))
+
+ self.networkHealthMenu:setSelectedIndex(1)
+
+ popup:hide()
+ end
+ end,
+ full_check, -- true full check (includes arping, DNS
resolution and ping)
+ server
+ )
+
+ self:tieAndShowWindow(popup)
+end
+
+function setResult(self, index, err)
+ self:addExtraStyle(jive.ui.style)
+
+ local myItem = self.labels[index]
+
+ if err == 0 then
+ myItem.style = "item_info_green"
+ else
+ myItem.style = "item_info_red"
+ end
+-- TODO: needed?
+-- self.networkHealthMenu:replaceIndex(myItem, 1)
+end
+
+
+function manualRepairNetwork(self)
+ local popup = Popup("waiting_popup")
+ popup:setAllowScreensaver(false)
+ popup:ignoreAllInputExcept()
+
+ popup:addWidget(Icon("icon_connecting"))
+ popup:addWidget(Label("text", self:string("REPAIR_NETWORK")))
+
+ local status = Label("subtext", self:string("STATUS_MSG", "-"))
+ popup:addWidget(status)
+
+ local ifObj = Networking:activeInterface()
+
+ ifObj:repairNetwork( function(continue, err, msg, msg_param)
+ local message = self:string(msg, msg_param)
+ log:debug("repairNetwork status: ", message)
+
+ if continue then
+ -- Update spinny message
+ status:setValue(self:string("STATUS_MSG",
message))
+ else
+ -- Update final message
+ log:debug("Repair network error: ", err)
+
+ popup:hide()
+ end
+ end
+ )
+
+ self:tieAndShowWindow(popup)
+end
+
+
+-- defines a new style that inherrits from an existing style
+local function _uses(parent, value)
+ if parent == nil then
+ log:warn("nil parent in _uses at:\n", debug.traceback())
+ end
+ local style = {}
+ setmetatable(style, { __index = parent })
+ for k,v in pairs(value or {}) do
+ if type(v) == "table" and type(parent[k]) == "table" then
+ -- recursively inherrit from parent style
+ style[k] = _uses(parent[k], v)
+ else
+ style[k] = v
+ end
+ end
+
+ return style
+end
+
+
+function addExtraStyle(self, s)
+ s.item_info_green = _uses(s.item_info, {
+ bgImg = Tile:fillColor(0x00ff0088),
+ })
+ s.item_info_red = _uses(s.item_info, {
+ bgImg = Tile:fillColor(0xff000088),
+ })
+end
+
+
--[[
=head1 LICENSE
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt?rev=9003&r1=9002&r2=9003&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
Fri Jul 30 04:22:18 2010
@@ -963,3 +963,121 @@
RU СоÑÑоÑние ÑÑÑÑойÑÑва заÑÑдки\n%s
SV Laddningsstatus\n%s
+MENU_GENERAL
+ EN General Info
+
+MENU_NETWORK_HEALTH
+ EN Network Health
+
+MENU_WIRELESS
+ EN Wireless Info
+
+MENU_ETHERNET
+ EN Ethernet Info
+
+MENU_SERVER
+ EN Server Info
+
+NETWORK_STATUS
+ EN Network Status\n%s
+
+REPAIR_NETWORK
+ EN Repair Network
+
+CHECK_NETWORK
+ EN Check Network
+
+CHECK_NETWORK_PART
+ EN Check Network (part)
+
+STATUS_MSG
+ EN %s
+
+NET_BRINGING_NETWORK_DOWN
+ EN Bringing network down ...
+
+NET_BRINGING_NETWORK_UP
+ EN Bringing network up ...
+
+NET_REPAIR_NETWORK_DONE
+ EN Repair network done
+
+NET_CONNECTION_NOK
+ EN Not connected
+
+NET_INTERFACE_NOK
+ EN No network interface
+
+NET_LINK
+ EN Check network link
+
+NET_LINK_WIRELESS_OK
+ EN Wireless - link ok
+
+NET_LINK_WIRELESS_NOK
+ EN Wireless - no link
+
+NET_LINK_ETHERNET_OK
+ EN Ethernet link ok
+
+NET_LINK_ETHERNET_NOK
+ EN Ethernet - no link
+
+NET_IP_OK
+ EN IP: %s
+
+NET_IP_NOK
+ EN No valid IP
+
+NET_GATEWAY_OK
+ EN Gateway IP: %s
+
+NET_GATEWAY_NOK
+ EN No valid gateway IP
+
+NET_DNS_OK
+ EN DNS IP: %s
+
+NET_DNS_NOK
+ EN No valid DNS IP
+
+NET_ARPING
+ EN Arping %s ...
+
+NET_ARPING_OK
+ EN Arping ok
+
+NET_ARPING_NOK
+ EN IP %s already in use.
+
+NET_SERVER_NOK
+ EN No server
+
+NET_RESOLVE
+ EN Getting IP for %s ...
+
+NET_RESOLVE_OK
+ EN IP for %s
+
+NET_RESOLVE_NOK
+ EN DNS resolution failed for %s
+
+NET_PING
+ EN Pinging %s ...
+
+NET_PING_OK
+ EN Ping %s ok
+
+NET_PING_NOK
+ EN Ping %s not ok
+
+NET_PORT
+ EN Test connection to %s
+
+NET_PORT_OK
+ EN Connection to %s ok
+
+NET_PORT_NOK
+ EN Connection to %s not ok
+
+
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins