UNPKG

sensorium

Version:

makeblock mainboards protocol api

70 lines (64 loc) 1.74 kB
import { validateNumber, warnNotSupport } from '../core/validate'; import Electronic from './electronic'; import LedMatrixChar from './led_matrix_char'; import LedMatrixEmotion from './led_matrix_emotion'; import LedMatrixNumber from './led_matrix_number'; import LedMatrixTime from './led_matrix_time'; import { fiterWithBinaryStr } from '../core/utils'; import { SUPPORTLIST } from '../settings'; /** * LedMatrix sensor module, who can be play as 'charMode','emotionMode','numberMode','timeMode' * @extends Electronic * * @example * // char mode * mcore.LedMatrix(1).charMode().x(10).y(12).char('hello').run() * * // char mode * mcore.LedMatrix(1).charMode().content('hello', 10, 12).run() * * // emotion mode * mcore.LedMatrix(1).emotionMode().x(10).y(12).emotion('0010011101010101001010').run() * * // emotion mode * mcore.LedMatrix(1).timeMode().separator(':').hour(12).minute(12).run() * * // number mode * mcore.LedMatrix(1).numberMode().number('9999).run() */ class LedMatrix extends Electronic { constructor(port) { super(); let host = warnNotSupport(arguments[arguments.length - 1]) || ''; port = validateNumber(port); //宿主 this.hostname = host.toLowerCase(); //字符模式 this.charMode = function() { return new LedMatrixChar(port); } //表情模式 this.emotionMode = function() { return new LedMatrixEmotion(port); } //数字模式 this.numberMode = function() { return new LedMatrixNumber(port); } //时间模式 this.timeMode = function() { return new LedMatrixTime(port); } } static get SUPPORT() { return fiterWithBinaryStr(SUPPORTLIST, '1110'); } } export default LedMatrix;