c2000ware-FreeRTOS/kernel/.meta/freertos_tool/semaphore.js

83 lines
2.0 KiB
JavaScript
Raw Normal View History

2023-06-27 09:09:22 +03:00
"use strict";
/*global exports, system*/
let CMDCommon = system.getScript("/kernel/freertos_tool/FREERTOSCommon.js");
var config = [
{
name: "$name",
hidden: false,
},
{
name: "semType",
displayName: "Semaphore Type",
hidden : false,
default : "BINARY_SEMAPHORE",
options : [
{name: "MUTEX_SEMAPHORE", displayName: "Mutex"},
{name: "RECURSIVE_MUTEX_SEMAPHORE", displayName: "Recursive Mutex"},
{name: "BINARY_SEMAPHORE", displayName: "Binary Semaphore"},
{name: "COUNTING_SEMAPHORE", displayName: "Counting Semaphore"},
],
onChange: (inst, ui)=>{
if(inst.semType == "COUNTING_SEMAPHORE")
{
ui.semMaxCount.hidden = false
ui.semInitialCount.hidden = false
}
}
},
{
name: "semMaxCount",
displayName: "Maximum Count value",
hidden: true,
default: 0,
},
{
name: "semInitialCount",
displayName: "Initial Count value",
hidden: true,
default: 0,
},
{
name: "semHandle",
displayName: "Semaphore Handle",
default: "NULL",
getValue: (inst)=>{
return(inst.$name + "Handle")
}
},
{
name: "semBuffer",
displayName: "Semaphore Buffer",
default: "NULL",
getValue: (inst)=>{
return(inst.$name + "Buffer")
}
},
{
name: "createDynamicSem",
displayName: "Create Dynamic Semaphore",
default: false,
onChange: (inst, ui)=>{
if(inst.createDynamicSem == true)
{
ui.semBuffer.hidden = true;
}
else
{
ui.semBuffer.hidden = false;
}
}
}
];
// Define the common/portable base Semaphore
exports = {
displayName : "Semaphore",
defaultInstanceName : "mySemaphore",
config : config
};