Tinkerforge-NodeJS/Tinkerforge/BrickletOLED64x48.js
2016-03-09 21:35:32 +01:00

130 lines
5.6 KiB
JavaScript

/* ***********************************************************
* This file was automatically generated on 2016-02-10. *
* *
* JavaScript Bindings Version 2.0.8 *
* *
* If you have a bugfix for this file and want to commit it, *
* please fix the bug in the generator. You can find a link *
* to the generators git repository on tinkerforge.com *
*************************************************************/
var Device = require('./Device');
BrickletOLED64x48.DEVICE_IDENTIFIER = 264;
BrickletOLED64x48.DEVICE_DISPLAY_NAME = 'OLED 64x48 Bricklet';
BrickletOLED64x48.FUNCTION_WRITE = 1;
BrickletOLED64x48.FUNCTION_NEW_WINDOW = 2;
BrickletOLED64x48.FUNCTION_CLEAR_DISPLAY = 3;
BrickletOLED64x48.FUNCTION_SET_DISPLAY_CONFIGURATION = 4;
BrickletOLED64x48.FUNCTION_GET_DISPLAY_CONFIGURATION = 5;
BrickletOLED64x48.FUNCTION_WRITE_LINE = 6;
BrickletOLED64x48.FUNCTION_GET_IDENTITY = 255;
function BrickletOLED64x48(uid, ipcon) {
//1.68cm (0.66") OLED with 64x48 pixels
/*
Creates an object with the unique device ID *uid* and adds it to
the IP Connection *ipcon*.
*/
Device.call(this, this, uid, ipcon);
BrickletOLED64x48.prototype = Object.create(Device);
this.responseExpected = {};
this.callbackFormats = {};
this.APIVersion = [2, 0, 0];
this.responseExpected[BrickletOLED64x48.FUNCTION_WRITE] = Device.RESPONSE_EXPECTED_FALSE;
this.responseExpected[BrickletOLED64x48.FUNCTION_NEW_WINDOW] = Device.RESPONSE_EXPECTED_FALSE;
this.responseExpected[BrickletOLED64x48.FUNCTION_CLEAR_DISPLAY] = Device.RESPONSE_EXPECTED_FALSE;
this.responseExpected[BrickletOLED64x48.FUNCTION_SET_DISPLAY_CONFIGURATION] = Device.RESPONSE_EXPECTED_FALSE;
this.responseExpected[BrickletOLED64x48.FUNCTION_GET_DISPLAY_CONFIGURATION] = Device.RESPONSE_EXPECTED_ALWAYS_TRUE;
this.responseExpected[BrickletOLED64x48.FUNCTION_WRITE_LINE] = Device.RESPONSE_EXPECTED_FALSE;
this.responseExpected[BrickletOLED64x48.FUNCTION_GET_IDENTITY] = Device.RESPONSE_EXPECTED_ALWAYS_TRUE;
this.write = function(data, returnCallback, errorCallback) {
/*
Appends 64 byte of data to the window as set by :func:`NewWindow`.
Each row has a height of 8 pixels which corresponds to one byte of data.
Example: if you call :func:`NewWindow` with column from 0 to 63 and row
from 0 to 5 (the whole display) each call of :func:`Write` (red arrow) will
write one row.
.. image:: /Images/Bricklets/bricklet_oled_64x48_display.png
:scale: 100 %
:alt: Display pixel order
:align: center
:target: ../../_images/Bricklets/bricklet_oled_64x48_display.png
The LSB (D0) of each data byte is at the top and the MSB (D7) is at the
bottom of the row.
The next call of :func:`Write` will write the second row and so on. To
fill the whole display you need to call :func:`Write` 6 times.
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_WRITE, [data], 'B64', '', returnCallback, errorCallback);
};
this.newWindow = function(columnFrom, columnTo, rowFrom, rowTo, returnCallback, errorCallback) {
/*
Sets the window in which you can write with :func:`Write`. One row
has a height of 8 pixels.
The columns have a range of 0 to 63 and the rows have a range of 0 to 5.
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_NEW_WINDOW, [columnFrom, columnTo, rowFrom, rowTo], 'B B B B', '', returnCallback, errorCallback);
};
this.clearDisplay = function(returnCallback, errorCallback) {
/*
Clears the current content of the window as set by :func:`NewWindow`.
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_CLEAR_DISPLAY, [], '', '', returnCallback, errorCallback);
};
this.setDisplayConfiguration = function(contrast, invert, returnCallback, errorCallback) {
/*
Sets the configuration of the display.
You can set a contrast value from 0 to 255 and you can invert the color
(black/white) of the display.
The default values are contrast 143 and inverting off.
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_SET_DISPLAY_CONFIGURATION, [contrast, invert], 'B ?', '', returnCallback, errorCallback);
};
this.getDisplayConfiguration = function(returnCallback, errorCallback) {
/*
Returns the configuration as set by :func:`SetDisplayConfiguration`.
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_GET_DISPLAY_CONFIGURATION, [], '', 'B ?', returnCallback, errorCallback);
};
this.writeLine = function(line, position, text, returnCallback, errorCallback) {
/*
Writes text to a specific line (0 to 5) with a specific position
(0 to 12). The text can have a maximum of 13 characters.
For example: (1, 4, "Hello") will write *Hello* in the middle of the
second line of the display.
You can draw to the display with :func:`Write` and then add text to it
afterwards.
The display uses a special 5x7 pixel charset. You can view the characters
of the charset in Brick Viewer.
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_WRITE_LINE, [line, position, text], 'B B s13', '', returnCallback, errorCallback);
};
this.getIdentity = function(returnCallback, errorCallback) {
/*
Returns the UID, the UID where the Bricklet is connected to,
the position, the hardware and firmware version as well as the
device identifier.
The position can be 'a', 'b', 'c' or 'd'.
The device identifier numbers can be found :ref:`here <device_identifier>`.
|device_identifier_constant|
*/
this.ipcon.sendRequest(this, BrickletOLED64x48.FUNCTION_GET_IDENTITY, [], '', 's8 s8 c B3 B3 H', returnCallback, errorCallback);
};
}
module.exports = BrickletOLED64x48;