Device-WebIO-Dancer
view release on metacpan or search on metacpan
public/webiopi.js view on Meta::CPAN
if (callback != undefined) {
$.get(w().context + 'GPIO/' + gpio + "/value", function(data) {
w().updateValue(gpio, data);
callback(gpio, data);
});
}
return w().GPIO[gpio].value;
}
WebIOPi.prototype.digitalWrite = function (gpio, value, callback) {
if (w().GPIO[gpio].func.toUpperCase()=="OUT") {
$.post(w().context + 'GPIO/' + gpio + "/value/" + value, function(data) {
w().updateValue(gpio, data);
if (callback != undefined) {
callback(gpio, data);
}
});
}
else {
//console.log(w().GPIO[gpio].func);
}
}
WebIOPi.prototype.getFunction = function (gpio, callback) {
if (callback != undefined) {
$.get(w().context + 'GPIO/' + gpio + "/function", function(data) {
w().updateFunction(gpio, data);
callback(gpio, data);
});
}
return w().GPIO[gpio].func;
}
WebIOPi.prototype.setFunction = function (gpio, func, callback) {
$.post(w().context + 'GPIO/' + gpio + "/function/" + func, function(data) {
w().updateFunction(gpio, data);
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.toggleValue = function (gpio) {
var value = (w().GPIO[gpio].value == 1) ? 0 : 1;
w().digitalWrite(gpio, value);
}
WebIOPi.prototype.toggleFunction = function (gpio) {
var value = (w().GPIO[gpio].func == "IN") ? "OUT" : "IN";
w().setFunction(gpio, value)
}
WebIOPi.prototype.outputSequence = function (gpio, period, sequence, callback) {
$.post(w().context + 'GPIO/' + gpio + "/sequence/" + period + "," + sequence, function(data) {
w().updateValue(gpio, data);
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.callMacro = function (macro, args, callback) {
if (args == undefined) {
args = "";
}
$.post(w().context + 'macros/' + macro + "/" + args, function(data) {
if (callback != undefined) {
callback(macro, args, data);
}
});
}
WebIOPi.prototype.enablePWM = function(gpio, callback) {
$.post(w().context + 'GPIO/' + gpio + "/pwm/enable", function(data) {
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.disablePWM = function(gpio, callback) {
$.post(w().context + 'GPIO/' + gpio + "/pwm/disable", function(data) {
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.pulse = function(gpio, callback) {
$.post(w().context + 'GPIO/' + gpio + "/pulse/", function(data) {
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.pulseRatio = function(gpio, ratio, callback) {
$.post(w().context + 'GPIO/' + gpio + "/pulseRatio/" + ratio, function(data) {
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.pulseAngle = function(gpio, angle, callback) {
$.post(w().context + 'GPIO/' + gpio + "/pulseAngle/" + angle, function(data) {
if (callback != undefined) {
callback(gpio, data);
}
});
}
WebIOPi.prototype.setLabel = function (id, label) {
$("#" + id).val(label);
$("#" + id).text(label);
}
WebIOPi.prototype.setClass = function (id, cssClass) {
$("#" + id).attr("class", cssClass);
}
WebIOPi.prototype.createButton = function (id, label, callback, callbackUp) {
var button = $('<button type="button" class="Default">');
button.attr("id", id);
button.text(label);
if (callback != undefined) {
button.bind(BUTTON_DOWN, callback);
}
if (callbackUp != undefined) {
button.bind(BUTTON_UP, callbackUp);
}
return button;
}
WebIOPi.prototype.createGPIOButton = function (gpio, label) {
var button = w().createButton("gpio" + gpio, label);
button.bind(BUTTON_DOWN, function(event) {
w().toggleValue(gpio);
});
return button;
}
WebIOPi.prototype.createFunctionButton = function (gpio) {
var button = w().createButton("function" + gpio, " ");
button.attr("class", "FunctionBasic");
button.bind(BUTTON_DOWN, function(event) {
w().toggleFunction(gpio);
});
return button;
}
WebIOPi.prototype.createPulseButton = function (id, label, gpio) {
var button = webiopi().createButton(id, label);
button.bind(BUTTON_DOWN, function(event) {
webiopi().pulse(gpio);
});
return button;
}
WebIOPi.prototype.createMacroButton = function (id, label, macro, args) {
var button = webiopi().createButton(id, label);
button.bind(BUTTON_DOWN, function(event) {
webiopi().callMacro(macro, args);
});
return button;
}
WebIOPi.prototype.createSequenceButton = function (id, label, gpio, period, sequence) {
var button = webiopi().createButton(id, label);
button.bind(BUTTON_DOWN, function(event) {
webiopi().outputSequence(gpio, period, sequence);
});
return button;
}
WebIOPi.prototype.createRatioSlider = function(gpio) {
var slider = $('<input type="range" min="0.0" max="1.0" step="0.01">');
slider.attr("id", "ratio"+gpio);
slider.bind("change", function() {
w().pulseRatio(gpio, slider.val());
});
return slider;
}
WebIOPi.prototype.createAngleSlider = function(gpio) {
var slider = $('<input type="range" min="-45" max="45" step="1">');
slider.attr("id", "angle"+gpio);
slider.bind("change", function() {
w().pulseAngle(gpio, slider.val());
});
return slider;
}
WebIOPi.prototype.RPiHeader = function () {
if (w()._header == undefined) {
w()._header = new RPiHeader();
}
return w()._header;
}
function RPiHeader() {
}
RPiHeader.prototype.getPinCell = function (pin) {
var cell = $('<td align="center">');
var button;
if (w().PINS[pin].type.value == w().TYPE.GPIO.value) {
button = w().createGPIOButton(w().PINS[pin].value, pin);
}
else {
var button = $('<button type="button">');
button.val(pin);
button.text(pin);
button.attr("class", w().PINS[pin].type.style);
}
cell.append(button);
return cell;
}
RPiHeader.prototype.getDescriptionCell = function (pin, align) {
var cell = $('<td>');
cell.attr("align", align);
( run in 1.434 second using v1.01-cache-2.11-cpan-39bf76dae61 )