155 lines
4.2 KiB
JavaScript
155 lines
4.2 KiB
JavaScript
/*
|
|
* Copyright (c) 2019-2020, Texas Instruments Incorporated - http://www.ti.com
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* * Neither the name of Texas Instruments Incorporated nor the names of
|
|
* its contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* ======== LED.syscfg.js ========
|
|
*/
|
|
|
|
"use strict";
|
|
let Common = system.getScript("/driverlib/Common.js");
|
|
|
|
/* generic configuration parameters for LED instances */
|
|
let config = [
|
|
|
|
];
|
|
|
|
function _getPinResources(inst)
|
|
{
|
|
let mod;
|
|
let pin;
|
|
|
|
mod = system.getScript("/driverlib/gpio.js");
|
|
pin = mod._getPinResources(inst.gpioPin);
|
|
|
|
return (pin);
|
|
}
|
|
|
|
|
|
/*
|
|
* ========= filterHardware ========
|
|
* param component - hardware object describing signals and
|
|
* resources
|
|
*
|
|
* returns Boolean indicating whether or not to allow the component to
|
|
* be assigned to an instance's $hardware config
|
|
*/
|
|
function filterHardware(component)
|
|
{
|
|
if (component.type) {
|
|
if (Common.typeMatches(component.type, ["LED"])) {
|
|
return (true);
|
|
}
|
|
}
|
|
return (false);
|
|
}
|
|
|
|
/*
|
|
* ======== validate ========
|
|
* Validate this inst's configuration
|
|
*
|
|
* param inst - LED instance to be validated
|
|
* param validation - object to hold detected validation issues
|
|
*/
|
|
function validate(inst, validation)
|
|
{
|
|
|
|
}
|
|
|
|
/*
|
|
* ======== moduleInstances ========
|
|
* Add a pwm or gpio instance to the module depending on if the LED is
|
|
* dimmable or not.
|
|
*/
|
|
function moduleInstances(inst)
|
|
{
|
|
|
|
let devInstance;
|
|
devInstance = {
|
|
displayName: "GPIO",
|
|
name: "gpio",
|
|
description: "This LED is driven by a GPIO",
|
|
moduleName: "/driverlib/gpio.js",
|
|
args: {
|
|
$name: inst.$name + "_GPIO"
|
|
},
|
|
requiredArgs: {
|
|
direction : "GPIO_DIR_MODE_OUT"
|
|
}
|
|
};
|
|
devInstance.hardware = inst.$hardware;
|
|
return ([devInstance]);
|
|
}
|
|
|
|
/*
|
|
* ======== onHardwareChanged ========
|
|
* Handle new hardware selection
|
|
*
|
|
* @param inst - LED instance to be validated
|
|
* @param ui - object with properties for each configurable whose value
|
|
* is an object that allows us to control the GUI display of
|
|
* the configurable (hidden, readonly, ...)
|
|
*/
|
|
function onHardwareChanged(inst, ui)
|
|
{
|
|
|
|
}
|
|
|
|
/*
|
|
* ======== base ========
|
|
* Define the base properties and methods
|
|
*/
|
|
let base = {
|
|
displayName: "LED",
|
|
description: "LED Driver",
|
|
longDescription: "",
|
|
defaultInstanceName: "myBoardLED",
|
|
|
|
config: config,
|
|
|
|
validate: validate,
|
|
moduleInstances: moduleInstances,
|
|
filterHardware: filterHardware,
|
|
|
|
/* make GUI changes in response to HW model changes */
|
|
onHardwareChanged: onHardwareChanged,
|
|
|
|
templates: {
|
|
boardc: "/driverlib/board_components/led/led.board.c.xdt",
|
|
boardh: "/driverlib/board_components/led/led.board.h.xdt"
|
|
},
|
|
|
|
_getPinResources: _getPinResources
|
|
};
|
|
|
|
exports = base;
|