123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /*jslint node:true, vars:true, bitwise:true, unparam:true */
- /*jshint unused:true */
-
- /*
- * Author: Jon Trulson <jtrulson@ics.com>
- * Copyright (c) 2015 Intel Corporation.
- *
- * Author: Tyler Gibson <tgibson@microsoft.com>
- * Copyright (c) 2015 Microsoft Corporation.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
- var lcdObj = require('jsupm_i2clcd');
- var oled = new lcdObj.EBOLED();
-
- var sample = 0;
- var samples = 13;
-
- function exit()
- {
- oled = null;
- lcdObj.cleanUp();
- lcdObj = null;
- process.exit(0);
- }
-
- setInterval( function()
- {
- if(sample>samples)
- {
- exit();
- }
- oled.clearScreenBuffer();
- runSample(sample++);
- oled.refresh();
- }, 1500);
-
- function runSample(sample)
- {
- switch(sample) {
- case 0:
- // x/y coords are 0 based, using 1 here for padding.
- oled.setCursor(1,1);
- // nowrap = 0, wrapping = 1
- oled.setTextWrap(1);
- oled.write("HELLO WORLD! Mixed with #123 and y's, g's and q's.");
- break;
- case 1:
- oled.setCursor(12, 1);
- //multiply text size, only integers
- oled.setTextSize(3);
- oled.write("BOO!");
- oled.setTextSize(1);
- break;
- case 2:
- oled.drawRectangleFilled(0,0,48,9);
- oled.setCursor(1,1);
- // 0=Black, 1=White, 2=Xor (Toggle)
- oled.setTextColor(2);
- oled.write("Cutout");
- break;
- case 3:
- var total = Math.random()*100;
- for(var stars=0; stars<total; stars++ )
- oled.drawPixel(Math.floor(Math.random()*63), Math.floor(Math.random()*47), 1);
- break;
- case 4:
- for(var burst=0; burst<12; burst++)
- oled.drawLine(31, 24, Math.floor(Math.random()*63), Math.floor(Math.random()*47), 1);
- break;
- case 5:
- var lastPeak = 24;
- for(var peak=0; peak < 64; peak++)
- {
- var thisPeak = Math.abs(lastPeak + Math.floor(Math.random()*(-6) + Math.random()*6));
- oled.drawLine(peak, thisPeak, peak, 47, 1);
- lastPeak = thisPeak;
- }
- break;
- case 6:
- for(var y=0; y<47; y++)
- {
- oled.drawLineHorizontal(0,y+1,63,2);
- oled.refresh();
- oled.drawLineHorizontal(0,y,63,2);
- }
- break;
- case 7:
- var eqbarHeights = [ Math.floor(Math.random()*32),
- Math.floor(Math.random()*32),
- Math.floor(Math.random()*32),
- Math.floor(Math.random()*32),
- Math.floor(Math.random()*32),
- Math.floor(Math.random()*32),
- Math.floor(Math.random()*32) ];
- var begin = Date.now();
- while(Date.now()-begin < 2000)
- {
- oled.clearScreenBuffer();
- for(var eqbar=0; eqbar<7; eqbar++)
- {
- oled.drawRectangleFilled(eqbar*9, 49 - eqbarHeights[eqbar], 8, eqbarHeights[eqbar], 1);
- eqbarHeights[eqbar] = eqbarHeights[eqbar] + Math.random()*(-2) + Math.random()*2;
- if(eqbarHeights[eqbar]<0)
- eqbarHeights[eqbar] = 1;
- }
- oled.refresh();
- }
- oled.clear();
- break;
- case 8:
- oled.drawRoundedRectangle(8, 8, 48, 16, 4, 1);
- oled.setCursor(12, 16);
- oled.write("Cancel");
- break;
- case 9:
- oled.drawTriangle(2, 2, 52, 7, 17, 37, 1);
- break;
- case 10:
- oled.drawTriangleFilled(2, 2, 52, 7, 17, 37, 1);
- break;
- case 11:
- oled.drawCircle(32, 24, 14, 1);
- break;
- case 12:
- oled.drawCircleFilled(32, 24, 14, 1);
- break;
- case 13:
- oled.fillScreen(1);
- break;
- }
- }
|