string nusbioState(string url, string action)
        {
            var script       = new NusbioScript();
            var traceRequest = true;

            action = action.ToLowerInvariant();

            var itemType = NusbioScriptItemType.Invalid;

            if (action == "state")
            {
                itemType = NusbioScriptItemType.GetNusbioState;
            }
            else if (action == "stateh")
            {
                itemType     = NusbioScriptItemType.GetNusbioState;
                traceRequest = false;
            }
            if (traceRequest)
            {
                this.TraceUrl(url);
            }
            script.Add(itemType, null);
            var r = _nusbio.NusbioScript.ExecuteScript(script);

            return(PrepareResponse(url, r));
        }
        string gpioAction(string url, string gpioName, string action)
        {
            var script   = new NusbioScript();
            var itemType = NusbioScriptItemType.GetGpioState;

            if (GpioState(action).HasValue&& GpioState(action).Value == true)
            {
                itemType = NusbioScriptItemType.SetGpioOn;
            }
            else if (GpioState(action).HasValue&& GpioState(action).Value == false)
            {
                itemType = NusbioScriptItemType.SetGpioOff;
            }
            else if (action == "reverse")
            {
                itemType = NusbioScriptItemType.ReverseGpio;
            }
            else
            {
                itemType = NusbioScriptItemType.GetGpioState;
            }

            if (gpioName == "all")
            {
                if ((action == "low") || (action == "false"))
                {
                    itemType = NusbioScriptItemType.AllGpioOff;
                }
                if ((action == "high") || (action == "true"))
                {
                    itemType = NusbioScriptItemType.AllGpioOn;
                }
            }

            script.Add(itemType, gpioName);
            var result = _nusbio.NusbioScript.ExecuteScript(script);

            return(PrepareResponse(url, result));
        }