@mchp-mcc/scf-pic8-osc-v1 4.3.4 → 4.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Changelog.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [4.3.5] - 2023-08-10
5
+
6
+ ### Bug Fixes
7
+ - **CC8SCRIP-17418** :- Missing code to stabilize clock when clock source is "EXTOSC with 4x PLL" or "HFINTOSC with 2x PLL"
8
+
9
+
4
10
  ## [4.3.4] - 2023-05-12
5
11
 
6
12
  ### New Features
@@ -17,9 +23,3 @@ All notable changes to this project will be documented in this file.
17
23
  ### Bug Fixes
18
24
  - **CC8SCRIP-12772** :- Clock Control doesn't show up secondary oscillator option
19
25
  - **CC8SCRIP-5160** :- Unclear purpose of OSC sliders - Removed few toggle buttons from the UI
20
-
21
-
22
- ## [4.3.2] - 2022-02-07
23
-
24
- ### Bug Fixes
25
- - **CC8SCRIP-6647** :- OSCCON2 & OSCSTAT (Read Only Registers) are being written in CLOCK_Initialize()
package/Readme.md CHANGED
@@ -14,6 +14,12 @@ This driver generates the following files:
14
14
  # Changelog
15
15
  All notable changes to this project will be documented in this file.
16
16
 
17
+ ## [4.3.5] - 2023-08-10
18
+
19
+ ### Bug Fixes
20
+ - **CC8SCRIP-17418** :- Missing code to stabilize clock when clock source is "EXTOSC with 4x PLL" or "HFINTOSC with 2x PLL"
21
+
22
+
17
23
  ## [4.3.4] - 2023-05-12
18
24
 
19
25
  ### New Features
@@ -30,9 +36,3 @@ All notable changes to this project will be documented in this file.
30
36
  ### Bug Fixes
31
37
  - **CC8SCRIP-12772** :- Clock Control doesn't show up secondary oscillator option
32
38
  - **CC8SCRIP-5160** :- Unclear purpose of OSC sliders - Removed few toggle buttons from the UI
33
-
34
-
35
- ## [4.3.2] - 2022-02-07
36
-
37
- ### Bug Fixes
38
- - **CC8SCRIP-6647** :- OSCCON2 & OSCSTAT (Read Only Registers) are being written in CLOCK_Initialize()
@@ -1087,13 +1087,15 @@ var MyDerivedData = function MyDerivedData(dataModel) {
1087
1087
  var actualOscValue;
1088
1088
 
1089
1089
  if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("4x PLL")) !== -1) {
1090
- actualOscValue = "EXTOSC with 4x PLL";
1090
+ actualOscValue = "EXTOSC with 4x PLL";
1091
1091
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("Secondary Oscillator")) !== -1) {
1092
1092
  actualOscValue = "SOSC";
1093
1093
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("Low-Frequency")) !== -1) {
1094
1094
  actualOscValue = "LFINTOSC";
1095
1095
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("HFINTOSC with HFFRQ = 4 MHz and CDIV = 4:1")) !== -1) {
1096
1096
  actualOscValue = "HFINTOSC";
1097
+ } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1")) !== -1) {
1098
+ actualOscValue = "HFINTOSC";
1097
1099
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("FEXTOSC")) !== -1) {
1098
1100
  actualOscValue = "EXTOSC";
1099
1101
  } else {
@@ -1108,10 +1110,16 @@ var MyDerivedData = function MyDerivedData(dataModel) {
1108
1110
 
1109
1111
  var pllEnable = _this.dataModel.isComponentValue("pllenOscen");
1110
1112
 
1111
- if (pllStatus === "EXTOSC with 4x PLL") {
1113
+ var clkSrcVal = _this.dataModel.getComponentValue("noscOsccon1");
1114
+
1115
+ if (pllStatus === "EXTOSC with 4x PLL") {
1112
1116
  return true;
1113
1117
  } else if (pllEnable === true) {
1114
1118
  return true;
1119
+ } else if ((clkSrcVal === null || clkSrcVal === void 0 ? void 0 : clkSrcVal.indexOf("4x PLL")) !== -1) {
1120
+ return true;
1121
+ } else if ((clkSrcVal === null || clkSrcVal === void 0 ? void 0 : clkSrcVal.indexOf("2x PLL")) !== -1) {
1122
+ return true;
1115
1123
  } else {
1116
1124
  return false;
1117
1125
  }
@@ -1617,7 +1625,7 @@ _defineProperty(StringConstants, "HFINTOSC_2xPLL", "HFINTOSC with 2x PLL");
1617
1625
 
1618
1626
  _defineProperty(StringConstants, "EXTOSC", "EXTOSC");
1619
1627
 
1620
- _defineProperty(StringConstants, "EXTOSC_4xPLL", "EXTOSC with 4x PLL");
1628
+ _defineProperty(StringConstants, "EXTOSC_4xPLL", "EXTOSC with 4x PLL");
1621
1629
 
1622
1630
  _defineProperty(StringConstants, "OSC_NOT_NEEDED", "Oscillator not needed");
1623
1631
 
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://autoCreator/webpack/bootstrap","webpack://autoCreator/./generated_module/src/autoCreator.ts","webpack://autoCreator/./generated_module/src/getUserData.ts","webpack://autoCreator/./generated_module/src/pins/PCPHelper.ts","webpack://autoCreator/./node_modules/@microchip/initializer-system/lib/src/index.js","webpack://autoCreator/./node_modules/@microchip/initializer-system/lib/src/initializer-system.js","webpack://autoCreator/./node_modules/@microchip/pin-standard/lib/index.js","webpack://autoCreator/./node_modules/@microchip/pin-standard/lib/pin-standard.js","webpack://autoCreator/./node_modules/@microchip/scf-common/lib/Processor.js","webpack://autoCreator/./node_modules/@microchip/scf-interface/lib/c-function-types.js","webpack://autoCreator/./node_modules/@microchip/scf-interface/lib/helpers.js","webpack://autoCreator/./node_modules/@microchip/scf-interface/lib/index.js","webpack://autoCreator/./src/ClockCalculator.ts","webpack://autoCreator/./src/CreatorFunctions.ts","webpack://autoCreator/./src/DerivedData.ts","webpack://autoCreator/./src/PinsLogic.ts","webpack://autoCreator/./src/StringConstants.ts"],"names":["createAutoCreator","getCreatorFunctions","getModuleConfig","getModuleConfigFromFile","getCreatorFunctionsUser","getPinsDataFromFile","require","undefined","getPinsLogicFromFile","mockPinsLogic","getPinsData","getCompletePinData","appModel","getRowData","rowData","rows","getPinsLogic","pinsLogic","ClockCalculator","oscSelect","HFInternalClk","externalClk","clkDivider","currentSystemClk","HFClk","StringConstants","SOSC","LFINTOSC","HFINTOSC","parseInt","replace","HFINTOSC_2xPLL","EXTOSC","MIN_PLL","MAX_PLL","Math","round","mfintosc","mfintosc_31KHz","lfintosc","toString","sosc","shouldImport","importKey","state","getDerivedData","dataModel","MyDerivedData","EmptyDerivedData","clockCalculator","getModel","getComponentValue","moduleName","getModuleName","alerts","getMyAlerts","isEnabled","isVisible","coscOsccon2","getResOscValue","getClockCalculator","getCurrentSystemClk","initializer_system_results","config_device_results","templateData","getTemplateData","config_request_args","getOscClocksProcessedPayload","doNotShow","importName","friendlyImportName","resetOscValue","getDynamicComponetDefaultValue","actualOscValue","indexOf","pllStatus","pllEnable","isComponentValue","oscObj","extosc","getExtOsc","fosc","hfintosc","getHfIntOsc","getLfIntOsc","getMfIntOsc","mfintosc_31Khz","getMfIntOsc_31KHz","getSosc","hasSosc","soscEnabled","soscPowerMode","headers","name","path","registerValues","getRegisterValues","deviceFrequency","header","moduleNameUpperCase","toUpperCase","moduleNameLowerCase","toLowerCase","isPllEnabled","getPLLStatus","initializer","priority","initializer_system","START","componentName","componentValue","EXTOSC_4xPLL","externalClkSelectedOptions","getImportValue","selectedOptionVal","noscOsccon1","push","type","Processor","Hint","text","Warning","ExtClkFreq_64MHz","ExtClkFreq_20MHz","ExtClkFreq_32MHz","retRowJSONdata","rowActions","clockOutEnable","selectedOption","behaviourMeta","lockPinRegEx","isPic18ClkOut","actionArr","getPCPHelper","stateActionBuilder","rowWithName","forComponent","addIfLockedSetValue","addIfUnLockedSetValue","build","eachAction","lockedState","pin_state","LOCKED","meta","to","getAssignedImport","handle","providerId","unlockedState","UNLOCK","extClkSelect","mclrKey","getComponent","component","concat","mclrEnable","lvpEnable","selectedMclrOption","selectedLvpOption","isPic18Mclr","isQ10Mclr","actions"],"mappings":"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AACA,SAAS;AACT,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8C;;;;;;;;;;;;ACtGa;AACb,8CAA8C,cAAc;AAC5D,qBAAqB,mBAAO,CAAC,kFAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;ACXa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4EAA4E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wFAAwF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,+EAA+E;AAChF;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,2BAA2B;AAC3B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,wC;;;;;;;;;;;;ACnQa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"autoCreator.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./generated_module/src/autoCreator.ts\");\n","import { CreatorFunctions } from \"@microchip/melody-automodule-interface\";\nimport {\n getCreatorFunctions as getCreatorFunctionsUser,\n getModuleConfigFromFile,\n} from \"./getUserData\";\n\nconst createAutoCreator = (\n getCreatorFunctions: () => CreatorFunctions,\n): (() => CreatorFunctions) => {\n return (): CreatorFunctions => {\n return {\n getModuleConfig: getModuleConfigFromFile,\n ...getCreatorFunctions(),\n };\n };\n};\n\nexport const getCreatorFunctions = createAutoCreator(getCreatorFunctionsUser);\n","import { ModuleConfig } from \"@microchip/melody-automodule-interface/lib/src/ModuleConfig\";\nimport { PinsData } from \"@microchip/melody-automodule-interface/lib/src/pins\";\nimport { PinsLogic } from \"@microchip/melody-automodule-interface/lib/src/types\";\nexport { getCreatorFunctions } from \"../../src/CreatorFunctions\";\nexport { getDerivedData } from \"../../src/DerivedData\";\n\nexport const getPinsDataFromFile = (): PinsData | undefined => {\n try {\n return require(\"../../src/pinsdata.json\");\n } catch {\n return undefined;\n }\n};\n\nexport const getPinsLogicFromFile = (): PinsLogic | undefined => {\n try {\n return require(\"../../src/PinsLogic.ts\");\n } catch {\n return undefined;\n }\n};\n\nexport const getModuleConfigFromFile = (): ModuleConfig | undefined => {\n try {\n return require(\"../../src/moduleConfig.json\");\n } catch {\n return undefined;\n }\n};\n","import { pin_row } from \"@microchip/pin-standard\";\nimport { PinsData } from \"@microchip/melody-automodule-interface/lib/src/pins\";\nimport {\n AppModel,\n PinsLogic,\n} from \"@microchip/melody-automodule-interface/lib/src/types\";\nimport { getPinsDataFromFile, getPinsLogicFromFile } from \"../getUserData\";\n\nconst mockPinsLogic = (getPinsData: GetPinsData): PinsLogic => {\n const getCompletePinData = (appModel: AppModel): any => {\n return {};\n };\n const getRowData = (appModel: AppModel, rowData: pin_row): pin_row => {\n return rowData;\n };\n return {\n getCompletePinData: getCompletePinData,\n getRowData: getRowData,\n getPinsData: getPinsData,\n };\n};\n\ntype GetPinsData = typeof getPinsData;\nexport const getPinsData = (): PinsData => getPinsDataFromFile() ?? { rows: [] };\n\nexport const getPinsLogic = (): PinsLogic => {\n const pinsLogic = getPinsLogicFromFile();\n if (pinsLogic) {\n return {\n ...pinsLogic,\n getPinsData: getPinsData,\n };\n } else {\n return mockPinsLogic(getPinsData);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar initializer_system_1 = require(\"./initializer-system\");\nexports.Interface = initializer_system_1.Interface;\nexports.INIT_PRIORITY = initializer_system_1.INIT_PRIORITY;\nexports.sortInitializers = initializer_system_1.sortInitializers;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InterfaceTypes = __importStar(require(\"@microchip/scf-interface\"));\nvar pkgJson = __importStar(require(\"../package.json\"));\nvar getInterfaceId = function () {\n return {\n name: InterfaceTypes.getInterfaceName(pkgJson),\n version: InterfaceTypes.getInterfaceVersion(pkgJson),\n };\n};\nexports.sortInitializers = function (initializers) {\n var retinitializers = __spreadArrays(initializers);\n retinitializers.sort(prioritySorter);\n return retinitializers;\n};\nvar prioritySorter = function (a, b) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var result = 0;\n var apriority = (_b = (_a = a === null || a === void 0 ? void 0 : a.initializer) === null || _a === void 0 ? void 0 : _a.priority) !== null && _b !== void 0 ? _b : INIT_PRIORITY.DEFAULT;\n var bpriority = (_d = (_c = b === null || b === void 0 ? void 0 : b.initializer) === null || _c === void 0 ? void 0 : _c.priority) !== null && _d !== void 0 ? _d : INIT_PRIORITY.DEFAULT;\n if (apriority < bpriority) {\n result = -1;\n }\n else if (apriority > bpriority) {\n result = 1;\n }\n else {\n //same priority sort via intializer name alphabetically\n result = (_h = (_f = (_e = a === null || a === void 0 ? void 0 : a.initializer) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.localeCompare((_g = b === null || b === void 0 ? void 0 : b.initializer) === null || _g === void 0 ? void 0 : _g.name)) !== null && _h !== void 0 ? _h : 0;\n }\n return result;\n};\nvar INIT_PRIORITY;\n(function (INIT_PRIORITY) {\n INIT_PRIORITY[INIT_PRIORITY[\"START\"] = 1] = \"START\";\n INIT_PRIORITY[INIT_PRIORITY[\"PRE_PERIPHERAL\"] = 50] = \"PRE_PERIPHERAL\";\n INIT_PRIORITY[INIT_PRIORITY[\"PERIPHERAL\"] = 100] = \"PERIPHERAL\";\n INIT_PRIORITY[INIT_PRIORITY[\"POST_PERIPHERAL\"] = 150] = \"POST_PERIPHERAL\";\n INIT_PRIORITY[INIT_PRIORITY[\"DEFAULT\"] = 200] = \"DEFAULT\";\n INIT_PRIORITY[INIT_PRIORITY[\"PRE_SOFTWARE\"] = 250] = \"PRE_SOFTWARE\";\n INIT_PRIORITY[INIT_PRIORITY[\"SOFTWARE\"] = 300] = \"SOFTWARE\";\n INIT_PRIORITY[INIT_PRIORITY[\"POST_SOFTWARE\"] = 350] = \"POST_SOFTWARE\";\n INIT_PRIORITY[INIT_PRIORITY[\"END\"] = 400] = \"END\";\n})(INIT_PRIORITY = exports.INIT_PRIORITY || (exports.INIT_PRIORITY = {}));\nvar createMock = function () {\n return {\n interfaceId: getInterfaceId(),\n payload: {\n moduleName: \"MyModule\",\n },\n args: {},\n results: {\n requestId: {\n initializer: {\n name: \"mymodule_init\",\n header: {\n name: \"mymodule.h\",\n path: \"include/\",\n },\n },\n registerInit: [\n {\n name: \"OSCCON1\",\n comment: \"//Comments\",\n value: 55,\n valueAsHex: \"0x55\",\n },\n ],\n },\n },\n };\n};\nvar createPrototypeImport = function () {\n return {\n interfaceId: getInterfaceId(),\n };\n};\nvar createPrototypeExport = function () {\n return {\n interfaces: [{ interfaceId: getInterfaceId() }],\n };\n};\nexports.Interface = {\n createPrototypeExport: createPrototypeExport,\n createPrototypeImport: createPrototypeImport,\n getInterfaceId: getInterfaceId,\n createMock: createMock,\n};\n//# sourceMappingURL=initializer-system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pin_standard_1 = require(\"./pin-standard\");\nexports.pin_standard = pin_standard_1.pin_standard;\nexports.pin_state = pin_standard_1.pin_state;\nexports.direction = pin_standard_1.direction;\nexports.behaviour = pin_standard_1.behaviour;\nexports.data_schema = pin_standard_1.data_schema;\nexports.pin_attribs_enum = pin_standard_1.pin_attribs_enum;\nexports.actiontype = pin_standard_1.actiontype;\nexports.QueryAdapterKey = pin_standard_1.QueryAdapterKey;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pin_standard = function () {\n return {\n interfaceId: {\n name: \"pin-standard\",\n version: \"0.1.0\",\n },\n };\n};\nvar QueryAdapterKey;\n(function (QueryAdapterKey) {\n QueryAdapterKey[\"ALLPINS\"] = \"allpins\";\n QueryAdapterKey[\"ALLPINS_FOR_ATTRIBS\"] = \"allpins_for_attribs\";\n QueryAdapterKey[\"PPS\"] = \"pps\";\n QueryAdapterKey[\"PORTMUX\"] = \"portmux\";\n QueryAdapterKey[\"HASPPS\"] = \"hasPPS\";\n})(QueryAdapterKey = exports.QueryAdapterKey || (exports.QueryAdapterKey = {}));\nvar pin_state;\n(function (pin_state) {\n pin_state[\"EMPTY\"] = \"E\";\n pin_state[\"LOCKED\"] = \"L\";\n pin_state[\"UNLOCK\"] = \"UL\";\n pin_state[\"DiSABLE_LOCK\"] = \"DL\";\n pin_state[\"UNLOCKED_DISABLED\"] = \"DUL\";\n pin_state[\"LOCKED_LINK\"] = \"LL\";\n pin_state[\"UNLOCKED_MUX\"] = \"MUL\";\n pin_state[\"LOCKED_CONFLICT\"] = \"CL\";\n})(pin_state = exports.pin_state || (exports.pin_state = {}));\nvar pin_interrupts_enum;\n(function (pin_interrupts_enum) {\n pin_interrupts_enum[\"INTDIS_BUFFEN\"] = \"INTDIS_BUFFEN\";\n pin_interrupts_enum[\"BOTH_EDGES\"] = \"BOTH_EDGES\";\n pin_interrupts_enum[\"RISING_EDGE\"] = \"RISING_EDGE\";\n pin_interrupts_enum[\"FALLING_EDGE\"] = \"FALLING_EDGE\";\n pin_interrupts_enum[\"NONE\"] = \"NONE\";\n pin_interrupts_enum[\"LOW_LEVEL\"] = \"LOW_LEVEL\";\n})(pin_interrupts_enum = exports.pin_interrupts_enum || (exports.pin_interrupts_enum = {}));\nvar pin_attribs_enum;\n(function (pin_attribs_enum) {\n pin_attribs_enum[\"aliasReEx\"] = \"aliasReEx\";\n pin_attribs_enum[\"cname\"] = \"cname\";\n pin_attribs_enum[\"high\"] = \"high\";\n pin_attribs_enum[\"inv\"] = \"inv\";\n pin_attribs_enum[\"wpu\"] = \"wpu\";\n pin_attribs_enum[\"wpd\"] = \"wpd\";\n pin_attribs_enum[\"od\"] = \"od\";\n pin_attribs_enum[\"analog\"] = \"analog\";\n pin_attribs_enum[\"ioc\"] = \"ioc\";\n pin_attribs_enum[\"intcallback\"] = \"intcallback\";\n pin_attribs_enum[\"alias\"] = \"alias\";\n})(pin_attribs_enum = exports.pin_attribs_enum || (exports.pin_attribs_enum = {}));\nvar actiontype;\n(function (actiontype) {\n actiontype[\"SETACTION\"] = \"SETACTION\";\n actiontype[\"ATTRIBACTION\"] = \"ATTRIBACTION\";\n})(actiontype = exports.actiontype || (exports.actiontype = {}));\nvar direction;\n(function (direction) {\n direction[\"output\"] = \"output\";\n direction[\"input\"] = \"input\";\n direction[\"bidirectional\"] = \"bidirectional\";\n})(direction = exports.direction || (exports.direction = {}));\nvar behaviour;\n(function (behaviour) {\n behaviour[\"LOCK_UNLOCK\"] = \"LOCK_UNLOCK\";\n behaviour[\"ALWAYS_LOCKED\"] = \"ALWAYS_LOCKED\";\n behaviour[\"SINGLE_PIN_MUX\"] = \"SINGLE_PIN_MUX\";\n behaviour[\"OPTIONAL_PIN_MUX\"] = \"OPTIONAL_PIN_MUX\";\n behaviour[\"PPS\"] = \"PPS\";\n behaviour[\"PORTMUX\"] = \"PORTMUX\";\n behaviour[\"EXCLUSIVE_LOCK\"] = \"EXCLUSIVE_LOCK\";\n behaviour[\"LOCKED_DISABLED\"] = \"LOCKED_DISABLED\";\n})(behaviour = exports.behaviour || (exports.behaviour = {}));\n//------------------------------------ schema ------------------------------------//\nexports.data_schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $ref: \"#/definitions/intf_data\",\n definitions: {\n intf_data: {\n type: \"object\",\n properties: {\n rows: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_row\",\n },\n },\n },\n required: [\"rows\"],\n additionalProperties: false,\n },\n pin_row: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n module: {\n type: \"string\",\n },\n function: {\n type: \"string\",\n },\n direction: {\n $ref: \"#/definitions/direction\",\n },\n filter: {\n $ref: \"#/definitions/filter\",\n },\n behaviour: {\n $ref: \"#/definitions/behaviour\",\n },\n behaviourMeta: {\n $ref: \"#/definitions/behaviourMeta\",\n },\n attribs: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_attribs\",\n },\n },\n groupsdata: {\n $ref: \"#/definitions/pingroups_data\",\n },\n actions: {},\n },\n required: [\"name\", \"module\", \"function\", \"direction\", \"filter\", \"behaviour\"],\n additionalProperties: false,\n },\n direction: {\n type: \"string\",\n enum: [\"output\", \"input\", \"bidirectional\"],\n },\n filter: {\n type: \"object\",\n properties: {\n module: {\n type: \"string\",\n },\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"module\", \"aliasReEx\"],\n additionalProperties: false,\n },\n behaviour: {\n type: \"string\",\n enum: [\n \"LOCK_UNLOCK\",\n \"ALWAYS_LOCKED\",\n \"SINGLE_PIN_MUX\",\n \"OPTIONAL_PIN_MUX\",\n \"PPS\",\n \"PORTMUX\",\n \"EXCLUSIVE_LOCK\",\n \"LOCKED_DISABLED\",\n ],\n },\n behaviourMeta: {\n type: \"object\",\n properties: {\n lockPinRegEx: {\n type: \"string\",\n },\n },\n required: [\"lockPinRegEx\"],\n additionalProperties: false,\n },\n pin_attribs: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n cname: {\n type: \"string\",\n },\n high: {\n type: \"boolean\",\n },\n inv: {\n type: \"boolean\",\n },\n wpu: {\n type: \"boolean\",\n },\n wpd: {\n type: \"boolean\",\n },\n od: {\n type: \"boolean\",\n },\n analog: {\n type: \"boolean\",\n },\n ioc: {\n $ref: \"#/definitions/pin_interrupts_enum\",\n },\n bidirection_out: {\n type: \"boolean\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n pin_interrupts_enum: {\n type: \"string\",\n enum: [\n \"INTDIS_BUFFEN\",\n \"BOTH_EDGES\",\n \"RISING_EDGE\",\n \"FALLING_EDGE\",\n \"NONE\",\n \"LOW_LEVEL\",\n ],\n },\n pingroups_data: {\n type: \"object\",\n properties: {\n groups: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pins_group\",\n },\n },\n },\n required: [\"groups\"],\n additionalProperties: false,\n },\n pins_group: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n filter: {\n $ref: \"#/definitions/grpfilter\",\n },\n datapath: {\n type: \"string\",\n },\n },\n required: [\"name\", \"filter\"],\n additionalProperties: false,\n },\n grpfilter: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n },\n};\n//# sourceMappingURL=pin-standard.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOptionLabels = exports.filterOptions = exports.isSingleton = exports.isUnassigned = exports.isAssigned = exports.hasOptions = exports.AlertTypes = void 0;\nvar AlertTypes;\n(function (AlertTypes) {\n AlertTypes[\"Error\"] = \"error\";\n AlertTypes[\"Warning\"] = \"warning\";\n AlertTypes[\"Hint\"] = \"hint\";\n})(AlertTypes = exports.AlertTypes || (exports.AlertTypes = {}));\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction hasOptions(dep) {\n return dep.options !== undefined;\n}\nexports.hasOptions = hasOptions;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isAssigned(dep) {\n return typeof dep.handle !== \"undefined\";\n}\nexports.isAssigned = isAssigned;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isUnassigned(dep) {\n return typeof dep.handle === \"undefined\";\n}\nexports.isUnassigned = isUnassigned;\n/**\n * Type guard function for SingletonExport\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n * @param resource the export to check on being a singleton\n * @deprecated No longer used. Replaced with dynamic singleton identification\n * at runtime.\n */\nfunction isSingleton(resource) {\n return typeof resource.isSingleton !== \"undefined\" && resource.isSingleton;\n}\nexports.isSingleton = isSingleton;\n/**\n * Returns a copy of `populatedImport` with all options removed which\n * cause `optionFilter` to return false.\n */\nfunction filterOptions(populatedImport, optionFilter) {\n if (populatedImport.options) {\n return __assign(__assign({}, populatedImport), { options: populatedImport.options.filter(optionFilter) });\n }\n return populatedImport;\n}\nexports.filterOptions = filterOptions;\n/**\n * Returns a copy of `populatedImport` with the options' handle labels\n * mapped according to `labelFactory`.\n */\nfunction mapOptionLabels(populatedImport, labelFactory) {\n if (populatedImport.options) {\n return __assign(__assign({}, populatedImport), { options: populatedImport.options.map(function (option) {\n return __assign(__assign({}, option), { handle: __assign(__assign({}, option.handle), { label: labelFactory(option) }) });\n }) });\n }\n return populatedImport;\n}\nexports.mapOptionLabels = mapOptionLabels;\n//# sourceMappingURL=Processor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildSimpleApi = function (functions) {\n var api = {};\n for (var key in functions) {\n api[key] = buildFunction(functions[key]);\n }\n return api;\n};\nvar buildFunction = function (cFunction) {\n return cFunction.returns + \" \" + cFunction.name + \"(\" + buildArguments(cFunction.arguments) + \")\";\n};\nvar buildArguments = function (args) {\n if (args) {\n return args.map(function (arg) { return arg.type + \" \" + arg.name; }).join(\", \");\n }\n else {\n return \"void\";\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInterfaceName = function (pkgJson) {\n var strReplace = \"@microchip/\";\n var interfaceName;\n if (pkgJson) {\n interfaceName = pkgJson[\"name\"];\n if (interfaceName) {\n interfaceName = interfaceName.replace(strReplace, \"\");\n }\n }\n if (!interfaceName) {\n throw new Error(\"Invalid Interface Name...!\");\n }\n return interfaceName;\n};\nexports.getInterfaceVersion = function (pkgJson) {\n var versionRegex = new RegExp(\"\\\\d+.\\\\d+.\\\\d+\");\n var version;\n if (pkgJson) {\n version = pkgJson[\"version\"];\n }\n if (!version && !versionRegex.test(version)) {\n throw new Error(\"Invalid Interface Version...!\");\n }\n return version;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar c_function_types_1 = require(\"./c-function-types\");\nexports.buildSimpleApi = c_function_types_1.buildSimpleApi;\nvar helpers_1 = require(\"./helpers\");\nexports.getInterfaceName = helpers_1.getInterfaceName;\nexports.getInterfaceVersion = helpers_1.getInterfaceVersion;\n","import { StringConstants } from \"./StringConstants\";\n\nexport class ClockCalculator {\n private lfintosc = \"31000\";\n private mfintosc = \"500000\";\n private mfintosc_31KHz = \"31250\";\n private sosc = \"32768\";\n private oscSelect: string;\n private HFInternalClk: string;\n private externalClk: number;\n private clkDivider: number;\n\n MAX_PLL = 16000000; // in Hz\n MIN_PLL = 3000000; // in Hz\n\n public constructor(\n oscSelect: string,\n HFInternalClk: string,\n externalClk: number,\n clkDivider: number,\n ) {\n this.oscSelect = oscSelect;\n this.HFInternalClk = HFInternalClk;\n this.externalClk = externalClk;\n this.clkDivider = clkDivider;\n }\n\n public getCurrentSystemClk = (): number => {\n let currentSystemClk: number;\n let HFClk: number;\n\n if (this.oscSelect === StringConstants.SOSC) {\n currentSystemClk = 32768 / this.clkDivider;\n } else if (this.oscSelect === StringConstants.LFINTOSC) {\n currentSystemClk = 31000 / this.clkDivider;\n } else if (this.oscSelect === StringConstants.HFINTOSC) {\n HFClk = parseInt(this.HFInternalClk?.replace(\"_MHz\", \"\") ?? \"1000000\");\n currentSystemClk = (HFClk * 1000000) / this.clkDivider;\n } else if (this.oscSelect === StringConstants.HFINTOSC_2xPLL) {\n HFClk = parseInt(this.HFInternalClk?.replace(\"_MHz\", \"\") ?? \"1000000\");\n if (HFClk == 8 || HFClk == 12 || HFClk == 16) {\n currentSystemClk = (HFClk * 2 * 1000000) / this.clkDivider;\n } else {\n currentSystemClk = (HFClk * 1000000) / this.clkDivider;\n }\n } else if (this.oscSelect === StringConstants.EXTOSC) {\n currentSystemClk = this.externalClk / this.clkDivider;\n } else {\n if (this.externalClk <= this.MIN_PLL || this.externalClk > this.MAX_PLL) {\n currentSystemClk = this.externalClk / this.clkDivider;\n } else {\n currentSystemClk = (this.externalClk * 4) / this.clkDivider;\n }\n }\n return Math.round(currentSystemClk);\n };\n\n public getHfIntOsc = (): string => {\n return this.HFInternalClk?.replace(\"_MHz\", \"000000\") ?? \"1000000\";\n };\n\n public getMfIntOsc = (): string => {\n return this.mfintosc;\n };\n\n public getMfIntOsc_31KHz = (): string => {\n return this.mfintosc_31KHz;\n };\n\n public getLfIntOsc = (): string => {\n return this.lfintosc;\n };\n\n public getExtOsc = (): string => {\n return this.externalClk.toString();\n };\n\n public getSosc = (): string => {\n return this.sosc;\n };\n}\n","import { CreatorFunctions } from \"@microchip/melody-automodule-interface\";\nimport { State } from \"../generated_module/src/types/State\";\n\nexport const getCreatorFunctions = (): CreatorFunctions => {\n return {\n shouldImport: shouldImport,\n };\n};\n\nconst shouldImport = (importKey: string, state: State): boolean => {\n return true;\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { ClockCalculator } from \"./ClockCalculator\";\nimport * as initializer_system from \"@microchip/initializer-system\";\nimport * as config_device from \"@microchip/config-device\";\nimport { StringConstants } from \"./StringConstants\";\nimport osc_clocks from \"@microchip/osc-clocks\";\nimport * as config_request from \"@microchip/config-request\";\nimport {\n AppModel,\n DerivedData,\n DerivedFunctions,\n} from \"../generated_module/src/types/AutoModuleTypes\";\nimport * as InterfaceTypes from \"@microchip/scf-interface\";\nimport { getPinsLogic } from \"../generated_module/src/pins/PCPHelper\";\n\nexport const getDerivedData = (dataModel: AppModel): DerivedData => {\n if (dataModel) {\n return new MyDerivedData(dataModel);\n }\n return new EmptyDerivedData();\n};\n\n//This data will be used at the creator stage and relies on only the state\nexport class EmptyDerivedData implements DerivedData {\n getMyFunctions = (): DerivedFunctions => {\n return {};\n };\n getModel = (): AppModel | undefined => {\n return undefined;\n };\n}\n\n//This data will be used at the processor stage\nexport class MyDerivedData implements DerivedData {\n private dataModel: AppModel;\n private clockCalculator: ClockCalculator;\n\n constructor(dataModel: AppModel) {\n this.dataModel = dataModel;\n }\n\n getClockCalculator = (): ClockCalculator => {\n if (!this.clockCalculator) {\n this.clockCalculator = new ClockCalculator(\n this.getModel().getComponentValue(\"noscOsccon1\") ?? \"\",\n this.getModel().getComponentValue(\"hffrqOscfrq\") ?? \"\",\n this.getModel().getComponentValue(\"externalClk\") ?? 32768,\n parseInt(this.getModel().getComponentValue(\"ndivOsccon1\") ?? \"\"),\n );\n }\n return this.clockCalculator;\n };\n\n getMyFunctions = (): DerivedFunctions => {\n return {\n moduleName: this.getModuleName,\n alerts: this.getMyAlerts,\n isEnabled: this.isEnabled,\n isVisible: this.isVisible,\n coscOsccon2: this.getResOscValue,\n currentSystemClk: (): number =>\n this.getClockCalculator().getCurrentSystemClk(),\n \"fosc-hz_payload\": (): string =>\n this.getClockCalculator().getCurrentSystemClk().toString(),\n initializer_system_results: this.initializer_system_results,\n config_device_results: this.config_device_results,\n templateData: this.getTemplateData,\n config_request_args: (): config_request.Arguments => [\n \"FEXTOSC\",\n \"CLKOUTEN\",\n \"MCLRE\",\n \"LVP\",\n \"RSTOSC\",\n ],\n \"osc-clocks_payload\": this.getOscClocksProcessedPayload,\n doNotShow: (): boolean => false,\n getPinsLogic: getPinsLogic,\n importName: this.friendlyImportName,\n };\n };\n private friendlyImportName = (importKey: string): string => {\n if (importKey === \"scf_pic8_osc_v1\") return \"Oscillator Hardware\";\n if (importKey === \"initializer_system\") return \"system.c Initialize()\";\n if (importKey === \"config_device\") return \"Configuration Device\";\n if (importKey === \"config_request\") return \"Configuration Request\";\n if (importKey === \"pin_standard\") return \"Pins\";\n return importKey;\n };\n\n private getResOscValue = (): string => {\n const resetOscValue = this.getDynamicComponetDefaultValue(\"RSTOSC\");\n let actualOscValue;\n if (resetOscValue?.indexOf(\"4x PLL\") !== -1) {\n actualOscValue = \"EXTOSC with 4x PLL\";\n } else if (resetOscValue?.indexOf(\"Secondary Oscillator\") !== -1) {\n actualOscValue = \"SOSC\";\n } else if (resetOscValue?.indexOf(\"Low-Frequency\") !== -1) {\n actualOscValue = \"LFINTOSC\";\n } else if (\n resetOscValue?.indexOf(\"HFINTOSC with HFFRQ = 4 MHz and CDIV = 4:1\") !== -1\n ) {\n actualOscValue = \"HFINTOSC\";\n } else if (resetOscValue?.indexOf(\"FEXTOSC\") !== -1) {\n actualOscValue = \"EXTOSC\";\n } else {\n actualOscValue = undefined;\n }\n return actualOscValue;\n };\n\n private getPLLStatus = (): boolean => {\n const pllStatus = this.getResOscValue();\n const pllEnable = this.dataModel.isComponentValue(\"pllenOscen\");\n if (pllStatus === \"EXTOSC with 4x PLL\") {\n return true;\n } else if (pllEnable === true) {\n return true;\n } else {\n return false;\n }\n };\n\n private getOscClocksProcessedPayload = (): osc_clocks.ProcessedPayload => {\n const oscObj: osc_clocks.ProcessedPayload = {\n extosc: this.getClockCalculator().getExtOsc() ?? \"32768\",\n fosc: this.getClockCalculator().getCurrentSystemClk().toString() ?? \"1000000\",\n hfintosc: this.getClockCalculator().getHfIntOsc() ?? \"1000000\",\n lfintosc: this.getClockCalculator().getLfIntOsc() ?? \"31000\",\n mfintosc: this.getClockCalculator().getMfIntOsc() ?? \"500000\",\n mfintosc_31Khz: this.getClockCalculator().getMfIntOsc_31KHz() ?? \"31250\",\n sosc: this.getClockCalculator().getSosc() ?? \"32768\",\n };\n const hasSosc: boolean =\n this.dataModel.isComponentValue(\"soscenOscen\") !== undefined ? true : false;\n if (hasSosc) {\n oscObj.hasSosc = true;\n oscObj.soscEnabled = this.dataModel.isComponentValue(\"soscenOscen\");\n oscObj.soscPowerMode = this.dataModel.getComponentValue(\"soscpwrOsccon3\");\n }\n return oscObj;\n };\n\n public getModuleName = (): string => {\n return \"Clock Control\";\n };\n public getModel = (): AppModel => {\n return this.dataModel;\n };\n\n private getTemplateData = (): any => {\n const headers: InterfaceTypes.HeaderFile = {\n name: \"clock.h\",\n path: \"../\",\n };\n // const initRegisters = this.dataModel.getRegisterValues() ;\n const registerValues = this.dataModel.getRegisterValues();\n return {\n deviceFrequency: this.getClockCalculator().getCurrentSystemClk().toString(),\n\n // initRegisters: initRegisters,\n header: headers,\n\n moduleNameUpperCase: this.getModuleName().toUpperCase(),\n moduleNameLowerCase: this.getModuleName().toLowerCase(),\n isPllEnabled: this.getPLLStatus() ?? false,\n ...registerValues,\n };\n };\n private initializer_system_results = (): initializer_system.Results => {\n return {\n initializer: {\n name: \"CLOCK_Initialize\",\n header: {\n name: \"clock.h\",\n path: \"system/\",\n },\n priority: initializer_system.INIT_PRIORITY.START,\n },\n };\n };\n\n private config_device_results = (): config_device.Results => {\n return {\n headers: [\n {\n name: \"clock.h\",\n path: \"system/\",\n },\n ],\n };\n };\n\n private isEnabled = (componentName: string): boolean => {\n switch (componentName) {\n case \"hffrqOscfrq\":\n return (\n this.dataModel.getComponentValue(\"noscOsccon1\")?.indexOf(\"HF\") != -1\n );\n case \"currentSystemClk\":\n return false;\n case \"lfIntOscFreq\":\n return false;\n default:\n return true;\n }\n };\n\n private isVisible = (componentName: string): boolean => {\n const componentValue = this.dataModel.getComponentValue(\"noscOsccon1\");\n switch (componentName) {\n case \"externalClk\":\n if (\n componentValue === StringConstants.EXTOSC ||\n componentValue === StringConstants.EXTOSC_4xPLL\n ) {\n return true;\n } else {\n return false;\n }\n case \"lfIntOscFreq\":\n if (componentValue != StringConstants.LFINTOSC) {\n return false;\n } else {\n return true;\n }\n case \"hffrqOscfrq\":\n if (\n componentValue != StringConstants.HFINTOSC &&\n componentValue != StringConstants.HFINTOSC_2xPLL\n ) {\n return false;\n } else {\n return true;\n }\n default:\n return true;\n }\n };\n\n private getDynamicComponetDefaultValue = (\n componentName: string,\n ): string | undefined => {\n const externalClkSelectedOptions = this.dataModel.getImportValue(\n \"config_request\",\n )?.[componentName];\n let selectedOptionVal: string | undefined;\n if (externalClkSelectedOptions) {\n selectedOptionVal = externalClkSelectedOptions[\"defaultValue\"][\"value\"];\n }\n return selectedOptionVal ?? undefined;\n };\n\n private getMyAlerts = (): Processor.Alert[] => {\n const alerts: Processor.Alert[] = [];\n const selectedOptionVal: string =\n this.getDynamicComponetDefaultValue(\"FEXTOSC\") ?? \"\";\n const noscOsccon1 = this.dataModel.getComponentValue(\"noscOsccon1\");\n\n if (\n noscOsccon1 === StringConstants.EXTOSC_4xPLL ||\n noscOsccon1 === StringConstants.EXTOSC\n ) {\n alerts.push({\n type: Processor.AlertTypes.Hint,\n text:\n 'Please configure required \"External Oscillator Selection\" in System Module config bits',\n });\n }\n\n if (\n noscOsccon1 === StringConstants.EXTOSC_4xPLL &&\n ((this.getModel().getComponentValue(\"externalClk\") ?? 0) <=\n this.getClockCalculator().MIN_PLL ||\n (this.getModel().getComponentValue(\"externalClk\") ?? 0) >\n this.getClockCalculator().MAX_PLL)\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"The frequency selected does not fall within the PLL locking range. Therefore, the actual frequency produced by hardware maybe unpredictable when the PLL is enabled. Either change the clock frequency or select a different option in Oscillator select.\",\n });\n }\n\n if (\n noscOsccon1 === StringConstants.EXTOSC_4xPLL ||\n noscOsccon1 === StringConstants.EXTOSC\n ) {\n if (\n selectedOptionVal?.indexOf(\"external clock\") != -1 &&\n this.getClockCalculator().getCurrentSystemClk() >\n StringConstants.ExtClkFreq_64MHz\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"External clock frequency is greater than recommended value (\" +\n StringConstants.ExtClkFreq_64MHz +\n \" Hz)\",\n });\n }\n\n if (\n selectedOptionVal?.indexOf(\"crystal oscillator\") != -1 &&\n (this.getModel().getComponentValue(\"externalClk\") ?? 0) > 16000000 &&\n this.getClockCalculator().getCurrentSystemClk() >\n StringConstants.ExtClkFreq_20MHz\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"External clock frequency is greater than recommended value (\" +\n StringConstants.ExtClkFreq_20MHz +\n \" Hz)\",\n });\n }\n\n if (\n selectedOptionVal.indexOf(\"Oscillator not enabled\") != -1 &&\n this.getClockCalculator().getCurrentSystemClk() >\n StringConstants.ExtClkFreq_32MHz\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"External clock frequency is greater than recommended value (\" +\n StringConstants.ExtClkFreq_32MHz +\n \" Hz)\",\n });\n }\n }\n\n const HFClk = parseInt(\n this.dataModel.getComponentValue(\"hffrqOscfrq\")?.replace(\"_MHz\", \"\") ?? \"0\",\n );\n if (\n this.dataModel.getComponentValue(\"noscOsccon1\") ===\n StringConstants.HFINTOSC_2xPLL &&\n (HFClk == 1 || HFClk == 2 || HFClk == 4 || HFClk == 32)\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"The frequency set in HF Internal Clock may not get generated by the clock hardware properly since it does not fall within the 2xPLL range of 8-16 MHz. Therefore, it is recommended that the option 'HFINTOSC' be selected in the Oscillator select combo box.\",\n });\n }\n\n return alerts;\n };\n}\n","import { pin_row, pin_state } from \"@microchip/pin-standard\";\nimport { AppModel } from \"../generated_module/src/types/AutoModuleTypes\";\n\n// provide complete dynamic data for all pin rows. It overrides static pindata.json\nexport const getCompletePinData = (appModel: AppModel): any => {\n // way to programatically override the json data\n return {};\n};\n\n// overrides pin data for a particular row based on model.\nexport function getRowData(appModel: AppModel, rowData: pin_row): pin_row | undefined {\n let retRowJSONdata: pin_row | undefined = rowData;\n let rowActions: any = [];\n const clockOutEnable = appModel.getImportValue(\"config_request\")?.[\"CLKOUTEN\"];\n\n if (clockOutEnable) {\n delete clockOutEnable[\"setting\"];\n delete clockOutEnable[\"displayOptionSetting\"];\n const selectedOption: string = clockOutEnable[\"defaultValue\"][\"value\"];\n\n if (selectedOption.indexOf(\"CLKOUT function is enabled\") != -1) {\n if (rowData.name === \"clockout\") {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"CLKOUT\" },\n };\n }\n }\n\n const isPic18ClkOut: boolean =\n selectedOption === \"CLKOUT function is enabled\" ||\n selectedOption === \"CLKOUT function is disabled\"\n ? true\n : false;\n const actionArr = appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"clockout\")\n .forComponent(clockOutEnable)\n .addIfLockedSetValue(\n \"CLKOUT\",\n isPic18ClkOut\n ? \"CLKOUT function is enabled\"\n : \"CLKOUT function is enabled; FOSC/4 clock appears at OSC2\",\n )\n .addIfUnLockedSetValue(\n \".*\",\n isPic18ClkOut\n ? \"CLKOUT function is disabled\"\n : \"CLKOUT function is disabled; i/o or oscillator function on OSC2\",\n )\n .build();\n // Provide the module reference(scriptID) of remote config bits module\n for (const eachAction of actionArr) {\n const lockedState = eachAction.state[pin_state.LOCKED];\n if (lockedState) {\n lockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle?.providerId,\n };\n }\n const unlockedState = eachAction.state[pin_state.UNLOCK];\n if (unlockedState) {\n unlockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle?.providerId,\n };\n }\n rowActions.push(eachAction);\n }\n }\n\n const extClkSelect = appModel.getImportValue(\"config_request\")?.[\"FEXTOSC\"];\n\n if (extClkSelect) {\n delete extClkSelect[\"setting\"];\n delete extClkSelect[\"displayOptionSetting\"];\n\n const selectedOption: string = extClkSelect[\"defaultValue\"][\"value\"];\n\n if (\n selectedOption.indexOf(\"(external clock)\") != -1 ||\n selectedOption.indexOf(\"EC\") != -1\n ) {\n if (rowData.name === \"osc1\" || rowData.name === \"osc2\") {\n retRowJSONdata = undefined;\n }\n }\n\n if (selectedOption.indexOf(\"(crystal oscillator)\") != -1) {\n if (rowData.name === \"clockin\") {\n retRowJSONdata = undefined;\n }\n }\n\n if (\n selectedOption.indexOf(\"Oscillator not enabled\") != -1 ||\n selectedOption.indexOf(\"Reserved\") != -1\n ) {\n if (\n rowData.name === \"clockin\" ||\n rowData.name === \"osc1\" ||\n rowData.name === \"osc2\"\n ) {\n retRowJSONdata = undefined;\n }\n }\n // Restricting pin actions for clockin, osc1 and osc2 pin rows\n const mclrKey = appModel.getComponent(\"mclrUnusedKey\")?.component;\n if (mclrKey) {\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"clockin\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"osc1\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"osc2\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n }\n }\n\n const mclrEnable = appModel.getImportValue(\"config_request\")?.[\"MCLRE\"];\n const lvpEnable = appModel.getImportValue(\"config_request\")?.[\"LVP\"];\n\n if (mclrEnable && lvpEnable) {\n delete mclrEnable[\"setting\"];\n delete mclrEnable[\"displayOptionSetting\"];\n const selectedMclrOption: string = mclrEnable[\"defaultValue\"][\"value\"];\n\n delete lvpEnable[\"setting\"];\n delete lvpEnable[\"displayOptionSetting\"];\n const selectedLvpOption: string = lvpEnable[\"defaultValue\"][\"value\"];\n\n if (\n selectedLvpOption.indexOf(\"HV on MCLR/VPP must be used for programming\") !=\n -1 ||\n selectedLvpOption.indexOf(\n \"High Voltage on MCLR/Vpp must be used for programming\",\n ) != -1\n ) {\n if (\n selectedMclrOption.indexOf(\"MCLR pin is MCLR\") != -1 ||\n selectedMclrOption.indexOf(\"MCLR pin is Master Clear function\") != -1 ||\n selectedMclrOption === \"MCLR pin (RE3) is MCLR\"\n ) {\n if (rowData.name === \"reset\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"MCLR\" },\n };\n }\n }\n const isPic18Mclr: boolean =\n selectedMclrOption ===\n \"If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is MCLR \" ||\n selectedMclrOption ===\n \"If LVP = 0, MCLR pin function is port defined function; If LVP =1, RE3 pin fuction is MCLR\"\n ? true\n : false;\n const isQ10Mclr: boolean =\n selectedMclrOption === \"MCLR pin (RE3) is MCLR\" ||\n selectedMclrOption ===\n \"If LVP = 0, MCLR pin (RE3) is an input; If LVP =1, MCLR pin (RE3) is MCLR\"\n ? true\n : false;\n let actionArr: any = [];\n\n // For handling Q10 devices\n if (isQ10Mclr) {\n actionArr = appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"reset\")\n .forComponent(mclrEnable)\n .addIfLockedSetValue(\"MCLR\", \"MCLR pin (RE3) is MCLR\")\n .addIfUnLockedSetValue(\n \".*\",\n \"If LVP = 0, MCLR pin (RE3) is an input; If LVP =1, MCLR pin (RE3) is MCLR\",\n )\n .build();\n } else {\n actionArr = appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"reset\")\n .forComponent(mclrEnable)\n .addIfLockedSetValue(\n \"MCLR\",\n isPic18Mclr\n ? \"If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is MCLR \"\n : \"MCLR pin is Master Clear function\",\n )\n .addIfUnLockedSetValue(\n \".*\",\n isPic18Mclr\n ? \"If LVP = 0, MCLR pin function is port defined function; If LVP =1, RE3 pin fuction is MCLR\"\n : \"MCLR pin function is port defined function\",\n )\n .build();\n }\n\n // Provide the module reference(scriptID) of remote config bits module\n for (const eachAction of actionArr) {\n const lockedState = eachAction.state[pin_state.LOCKED];\n if (lockedState) {\n lockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle\n ?.providerId,\n };\n }\n const unlockedState = eachAction.state[pin_state.UNLOCK];\n if (unlockedState) {\n unlockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle\n ?.providerId,\n };\n }\n rowActions.push(eachAction);\n }\n } else {\n if (selectedMclrOption) {\n if (rowData.name === \"reset\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"MCLR\" },\n };\n }\n }\n const mclrKey = appModel.getComponent(\"mclrUnusedKey\")?.component;\n if (mclrKey) {\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"reset\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n }\n }\n }\n\n const noscOsccon1 = appModel.getComponentValue(\"noscOsccon1\");\n if (\n noscOsccon1 === \"HFINTOSC\" ||\n noscOsccon1 === \"LFINTOSC\" ||\n noscOsccon1 === \"SOSC\" ||\n noscOsccon1 === \"HFINTOSC with 2x PLL\"\n ) {\n if (rowData.name === \"clockin\") {\n retRowJSONdata = undefined;\n }\n if (rowData.name === \"osc1\") {\n retRowJSONdata = undefined;\n }\n if (rowData.name === \"osc2\") {\n retRowJSONdata = undefined;\n }\n }\n\n if (rowData.name === \"sosci\") {\n if (noscOsccon1 === \"SOSC\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"SOSCI\" },\n };\n } else {\n retRowJSONdata = undefined;\n }\n }\n\n if (rowData.name === \"sosco\") {\n if (noscOsccon1 === \"SOSC\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"SOSCO\" },\n };\n } else {\n retRowJSONdata = undefined;\n }\n }\n\n if (retRowJSONdata) retRowJSONdata = { ...retRowJSONdata, actions: rowActions };\n\n return retRowJSONdata;\n}\n","export class StringConstants {\n static readonly SOSC = \"SOSC\";\n static readonly LFINTOSC = \"LFINTOSC\";\n static readonly HFINTOSC = \"HFINTOSC\";\n static readonly HFINTOSC_2xPLL = \"HFINTOSC with 2x PLL\";\n static readonly EXTOSC = \"EXTOSC\";\n static readonly EXTOSC_4xPLL = \"EXTOSC with 4x PLL\";\n static readonly OSC_NOT_NEEDED = \"Oscillator not needed\";\n static readonly ON = \"ON\";\n static readonly ExtClkFreq_64MHz = 64000000;\n static readonly ExtClkFreq_20MHz = 20000000;\n static readonly ExtClkFreq_32MHz = 32000000;\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://autoCreator/webpack/bootstrap","webpack://autoCreator/./generated_module/src/autoCreator.ts","webpack://autoCreator/./generated_module/src/getUserData.ts","webpack://autoCreator/./generated_module/src/pins/PCPHelper.ts","webpack://autoCreator/./node_modules/@microchip/initializer-system/lib/src/index.js","webpack://autoCreator/./node_modules/@microchip/initializer-system/lib/src/initializer-system.js","webpack://autoCreator/./node_modules/@microchip/pin-standard/lib/index.js","webpack://autoCreator/./node_modules/@microchip/pin-standard/lib/pin-standard.js","webpack://autoCreator/./node_modules/@microchip/scf-common/lib/Processor.js","webpack://autoCreator/./node_modules/@microchip/scf-interface/lib/c-function-types.js","webpack://autoCreator/./node_modules/@microchip/scf-interface/lib/helpers.js","webpack://autoCreator/./node_modules/@microchip/scf-interface/lib/index.js","webpack://autoCreator/./src/ClockCalculator.ts","webpack://autoCreator/./src/CreatorFunctions.ts","webpack://autoCreator/./src/DerivedData.ts","webpack://autoCreator/./src/PinsLogic.ts","webpack://autoCreator/./src/StringConstants.ts"],"names":["createAutoCreator","getCreatorFunctions","getModuleConfig","getModuleConfigFromFile","getCreatorFunctionsUser","getPinsDataFromFile","require","undefined","getPinsLogicFromFile","mockPinsLogic","getPinsData","getCompletePinData","appModel","getRowData","rowData","rows","getPinsLogic","pinsLogic","ClockCalculator","oscSelect","HFInternalClk","externalClk","clkDivider","currentSystemClk","HFClk","StringConstants","SOSC","LFINTOSC","HFINTOSC","parseInt","replace","HFINTOSC_2xPLL","EXTOSC","MIN_PLL","MAX_PLL","Math","round","mfintosc","mfintosc_31KHz","lfintosc","toString","sosc","shouldImport","importKey","state","getDerivedData","dataModel","MyDerivedData","EmptyDerivedData","clockCalculator","getModel","getComponentValue","moduleName","getModuleName","alerts","getMyAlerts","isEnabled","isVisible","coscOsccon2","getResOscValue","getClockCalculator","getCurrentSystemClk","initializer_system_results","config_device_results","templateData","getTemplateData","config_request_args","getOscClocksProcessedPayload","doNotShow","importName","friendlyImportName","resetOscValue","getDynamicComponetDefaultValue","actualOscValue","indexOf","pllStatus","pllEnable","isComponentValue","clkSrcVal","oscObj","extosc","getExtOsc","fosc","hfintosc","getHfIntOsc","getLfIntOsc","getMfIntOsc","mfintosc_31Khz","getMfIntOsc_31KHz","getSosc","hasSosc","soscEnabled","soscPowerMode","headers","name","path","registerValues","getRegisterValues","deviceFrequency","header","moduleNameUpperCase","toUpperCase","moduleNameLowerCase","toLowerCase","isPllEnabled","getPLLStatus","initializer","priority","initializer_system","START","componentName","componentValue","EXTOSC_4xPLL","externalClkSelectedOptions","getImportValue","selectedOptionVal","noscOsccon1","push","type","Processor","Hint","text","Warning","ExtClkFreq_64MHz","ExtClkFreq_20MHz","ExtClkFreq_32MHz","retRowJSONdata","rowActions","clockOutEnable","selectedOption","behaviourMeta","lockPinRegEx","isPic18ClkOut","actionArr","getPCPHelper","stateActionBuilder","rowWithName","forComponent","addIfLockedSetValue","addIfUnLockedSetValue","build","eachAction","lockedState","pin_state","LOCKED","meta","to","getAssignedImport","handle","providerId","unlockedState","UNLOCK","extClkSelect","mclrKey","getComponent","component","concat","mclrEnable","lvpEnable","selectedMclrOption","selectedLvpOption","isPic18Mclr","isQ10Mclr","actions"],"mappings":"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AACA,SAAS;AACT,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8C;;;;;;;;;;;;ACtGa;AACb,8CAA8C,cAAc;AAC5D,qBAAqB,mBAAO,CAAC,kFAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;ACXa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4EAA4E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wFAAwF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,+EAA+E;AAChF;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,2BAA2B;AAC3B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,wC;;;;;;;;;;;;ACnQa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"autoCreator.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./generated_module/src/autoCreator.ts\");\n","import { CreatorFunctions } from \"@microchip/melody-automodule-interface\";\nimport {\n getCreatorFunctions as getCreatorFunctionsUser,\n getModuleConfigFromFile,\n} from \"./getUserData\";\n\nconst createAutoCreator = (\n getCreatorFunctions: () => CreatorFunctions,\n): (() => CreatorFunctions) => {\n return (): CreatorFunctions => {\n return {\n getModuleConfig: getModuleConfigFromFile,\n ...getCreatorFunctions(),\n };\n };\n};\n\nexport const getCreatorFunctions = createAutoCreator(getCreatorFunctionsUser);\n","import { ModuleConfig } from \"@microchip/melody-automodule-interface/lib/src/ModuleConfig\";\nimport { PinsData } from \"@microchip/melody-automodule-interface/lib/src/pins\";\nimport { PinsLogic } from \"@microchip/melody-automodule-interface/lib/src/types\";\nexport { getCreatorFunctions } from \"../../src/CreatorFunctions\";\nexport { getDerivedData } from \"../../src/DerivedData\";\n\nexport const getPinsDataFromFile = (): PinsData | undefined => {\n try {\n return require(\"../../src/pinsdata.json\");\n } catch {\n return undefined;\n }\n};\n\nexport const getPinsLogicFromFile = (): PinsLogic | undefined => {\n try {\n return require(\"../../src/PinsLogic.ts\");\n } catch {\n return undefined;\n }\n};\n\nexport const getModuleConfigFromFile = (): ModuleConfig | undefined => {\n try {\n return require(\"../../src/moduleConfig.json\");\n } catch {\n return undefined;\n }\n};\n","import { pin_row } from \"@microchip/pin-standard\";\nimport { PinsData } from \"@microchip/melody-automodule-interface/lib/src/pins\";\nimport {\n AppModel,\n PinsLogic,\n} from \"@microchip/melody-automodule-interface/lib/src/types\";\nimport { getPinsDataFromFile, getPinsLogicFromFile } from \"../getUserData\";\n\nconst mockPinsLogic = (getPinsData: GetPinsData): PinsLogic => {\n const getCompletePinData = (appModel: AppModel): any => {\n return {};\n };\n const getRowData = (appModel: AppModel, rowData: pin_row): pin_row => {\n return rowData;\n };\n return {\n getCompletePinData: getCompletePinData,\n getRowData: getRowData,\n getPinsData: getPinsData,\n };\n};\n\ntype GetPinsData = typeof getPinsData;\nexport const getPinsData = (): PinsData => getPinsDataFromFile() ?? { rows: [] };\n\nexport const getPinsLogic = (): PinsLogic => {\n const pinsLogic = getPinsLogicFromFile();\n if (pinsLogic) {\n return {\n ...pinsLogic,\n getPinsData: getPinsData,\n };\n } else {\n return mockPinsLogic(getPinsData);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar initializer_system_1 = require(\"./initializer-system\");\nexports.Interface = initializer_system_1.Interface;\nexports.INIT_PRIORITY = initializer_system_1.INIT_PRIORITY;\nexports.sortInitializers = initializer_system_1.sortInitializers;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InterfaceTypes = __importStar(require(\"@microchip/scf-interface\"));\nvar pkgJson = __importStar(require(\"../package.json\"));\nvar getInterfaceId = function () {\n return {\n name: InterfaceTypes.getInterfaceName(pkgJson),\n version: InterfaceTypes.getInterfaceVersion(pkgJson),\n };\n};\nexports.sortInitializers = function (initializers) {\n var retinitializers = __spreadArrays(initializers);\n retinitializers.sort(prioritySorter);\n return retinitializers;\n};\nvar prioritySorter = function (a, b) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var result = 0;\n var apriority = (_b = (_a = a === null || a === void 0 ? void 0 : a.initializer) === null || _a === void 0 ? void 0 : _a.priority) !== null && _b !== void 0 ? _b : INIT_PRIORITY.DEFAULT;\n var bpriority = (_d = (_c = b === null || b === void 0 ? void 0 : b.initializer) === null || _c === void 0 ? void 0 : _c.priority) !== null && _d !== void 0 ? _d : INIT_PRIORITY.DEFAULT;\n if (apriority < bpriority) {\n result = -1;\n }\n else if (apriority > bpriority) {\n result = 1;\n }\n else {\n //same priority sort via intializer name alphabetically\n result = (_h = (_f = (_e = a === null || a === void 0 ? void 0 : a.initializer) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.localeCompare((_g = b === null || b === void 0 ? void 0 : b.initializer) === null || _g === void 0 ? void 0 : _g.name)) !== null && _h !== void 0 ? _h : 0;\n }\n return result;\n};\nvar INIT_PRIORITY;\n(function (INIT_PRIORITY) {\n INIT_PRIORITY[INIT_PRIORITY[\"START\"] = 1] = \"START\";\n INIT_PRIORITY[INIT_PRIORITY[\"PRE_PERIPHERAL\"] = 50] = \"PRE_PERIPHERAL\";\n INIT_PRIORITY[INIT_PRIORITY[\"PERIPHERAL\"] = 100] = \"PERIPHERAL\";\n INIT_PRIORITY[INIT_PRIORITY[\"POST_PERIPHERAL\"] = 150] = \"POST_PERIPHERAL\";\n INIT_PRIORITY[INIT_PRIORITY[\"DEFAULT\"] = 200] = \"DEFAULT\";\n INIT_PRIORITY[INIT_PRIORITY[\"PRE_SOFTWARE\"] = 250] = \"PRE_SOFTWARE\";\n INIT_PRIORITY[INIT_PRIORITY[\"SOFTWARE\"] = 300] = \"SOFTWARE\";\n INIT_PRIORITY[INIT_PRIORITY[\"POST_SOFTWARE\"] = 350] = \"POST_SOFTWARE\";\n INIT_PRIORITY[INIT_PRIORITY[\"END\"] = 400] = \"END\";\n})(INIT_PRIORITY = exports.INIT_PRIORITY || (exports.INIT_PRIORITY = {}));\nvar createMock = function () {\n return {\n interfaceId: getInterfaceId(),\n payload: {\n moduleName: \"MyModule\",\n },\n args: {},\n results: {\n requestId: {\n initializer: {\n name: \"mymodule_init\",\n header: {\n name: \"mymodule.h\",\n path: \"include/\",\n },\n },\n registerInit: [\n {\n name: \"OSCCON1\",\n comment: \"//Comments\",\n value: 55,\n valueAsHex: \"0x55\",\n },\n ],\n },\n },\n };\n};\nvar createPrototypeImport = function () {\n return {\n interfaceId: getInterfaceId(),\n };\n};\nvar createPrototypeExport = function () {\n return {\n interfaces: [{ interfaceId: getInterfaceId() }],\n };\n};\nexports.Interface = {\n createPrototypeExport: createPrototypeExport,\n createPrototypeImport: createPrototypeImport,\n getInterfaceId: getInterfaceId,\n createMock: createMock,\n};\n//# sourceMappingURL=initializer-system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pin_standard_1 = require(\"./pin-standard\");\nexports.pin_standard = pin_standard_1.pin_standard;\nexports.pin_state = pin_standard_1.pin_state;\nexports.direction = pin_standard_1.direction;\nexports.behaviour = pin_standard_1.behaviour;\nexports.data_schema = pin_standard_1.data_schema;\nexports.pin_attribs_enum = pin_standard_1.pin_attribs_enum;\nexports.actiontype = pin_standard_1.actiontype;\nexports.QueryAdapterKey = pin_standard_1.QueryAdapterKey;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pin_standard = function () {\n return {\n interfaceId: {\n name: \"pin-standard\",\n version: \"0.1.0\",\n },\n };\n};\nvar QueryAdapterKey;\n(function (QueryAdapterKey) {\n QueryAdapterKey[\"ALLPINS\"] = \"allpins\";\n QueryAdapterKey[\"ALLPINS_FOR_ATTRIBS\"] = \"allpins_for_attribs\";\n QueryAdapterKey[\"PPS\"] = \"pps\";\n QueryAdapterKey[\"PORTMUX\"] = \"portmux\";\n QueryAdapterKey[\"HASPPS\"] = \"hasPPS\";\n})(QueryAdapterKey = exports.QueryAdapterKey || (exports.QueryAdapterKey = {}));\nvar pin_state;\n(function (pin_state) {\n pin_state[\"EMPTY\"] = \"E\";\n pin_state[\"LOCKED\"] = \"L\";\n pin_state[\"UNLOCK\"] = \"UL\";\n pin_state[\"DiSABLE_LOCK\"] = \"DL\";\n pin_state[\"UNLOCKED_DISABLED\"] = \"DUL\";\n pin_state[\"LOCKED_LINK\"] = \"LL\";\n pin_state[\"UNLOCKED_MUX\"] = \"MUL\";\n pin_state[\"LOCKED_CONFLICT\"] = \"CL\";\n})(pin_state = exports.pin_state || (exports.pin_state = {}));\nvar pin_interrupts_enum;\n(function (pin_interrupts_enum) {\n pin_interrupts_enum[\"INTDIS_BUFFEN\"] = \"INTDIS_BUFFEN\";\n pin_interrupts_enum[\"BOTH_EDGES\"] = \"BOTH_EDGES\";\n pin_interrupts_enum[\"RISING_EDGE\"] = \"RISING_EDGE\";\n pin_interrupts_enum[\"FALLING_EDGE\"] = \"FALLING_EDGE\";\n pin_interrupts_enum[\"NONE\"] = \"NONE\";\n pin_interrupts_enum[\"LOW_LEVEL\"] = \"LOW_LEVEL\";\n})(pin_interrupts_enum = exports.pin_interrupts_enum || (exports.pin_interrupts_enum = {}));\nvar pin_attribs_enum;\n(function (pin_attribs_enum) {\n pin_attribs_enum[\"aliasReEx\"] = \"aliasReEx\";\n pin_attribs_enum[\"cname\"] = \"cname\";\n pin_attribs_enum[\"high\"] = \"high\";\n pin_attribs_enum[\"inv\"] = \"inv\";\n pin_attribs_enum[\"wpu\"] = \"wpu\";\n pin_attribs_enum[\"wpd\"] = \"wpd\";\n pin_attribs_enum[\"od\"] = \"od\";\n pin_attribs_enum[\"analog\"] = \"analog\";\n pin_attribs_enum[\"ioc\"] = \"ioc\";\n pin_attribs_enum[\"intcallback\"] = \"intcallback\";\n pin_attribs_enum[\"alias\"] = \"alias\";\n})(pin_attribs_enum = exports.pin_attribs_enum || (exports.pin_attribs_enum = {}));\nvar actiontype;\n(function (actiontype) {\n actiontype[\"SETACTION\"] = \"SETACTION\";\n actiontype[\"ATTRIBACTION\"] = \"ATTRIBACTION\";\n})(actiontype = exports.actiontype || (exports.actiontype = {}));\nvar direction;\n(function (direction) {\n direction[\"output\"] = \"output\";\n direction[\"input\"] = \"input\";\n direction[\"bidirectional\"] = \"bidirectional\";\n})(direction = exports.direction || (exports.direction = {}));\nvar behaviour;\n(function (behaviour) {\n behaviour[\"LOCK_UNLOCK\"] = \"LOCK_UNLOCK\";\n behaviour[\"ALWAYS_LOCKED\"] = \"ALWAYS_LOCKED\";\n behaviour[\"SINGLE_PIN_MUX\"] = \"SINGLE_PIN_MUX\";\n behaviour[\"OPTIONAL_PIN_MUX\"] = \"OPTIONAL_PIN_MUX\";\n behaviour[\"PPS\"] = \"PPS\";\n behaviour[\"PORTMUX\"] = \"PORTMUX\";\n behaviour[\"EXCLUSIVE_LOCK\"] = \"EXCLUSIVE_LOCK\";\n behaviour[\"LOCKED_DISABLED\"] = \"LOCKED_DISABLED\";\n})(behaviour = exports.behaviour || (exports.behaviour = {}));\n//------------------------------------ schema ------------------------------------//\nexports.data_schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $ref: \"#/definitions/intf_data\",\n definitions: {\n intf_data: {\n type: \"object\",\n properties: {\n rows: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_row\",\n },\n },\n },\n required: [\"rows\"],\n additionalProperties: false,\n },\n pin_row: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n module: {\n type: \"string\",\n },\n function: {\n type: \"string\",\n },\n direction: {\n $ref: \"#/definitions/direction\",\n },\n filter: {\n $ref: \"#/definitions/filter\",\n },\n behaviour: {\n $ref: \"#/definitions/behaviour\",\n },\n behaviourMeta: {\n $ref: \"#/definitions/behaviourMeta\",\n },\n attribs: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_attribs\",\n },\n },\n groupsdata: {\n $ref: \"#/definitions/pingroups_data\",\n },\n actions: {},\n },\n required: [\"name\", \"module\", \"function\", \"direction\", \"filter\", \"behaviour\"],\n additionalProperties: false,\n },\n direction: {\n type: \"string\",\n enum: [\"output\", \"input\", \"bidirectional\"],\n },\n filter: {\n type: \"object\",\n properties: {\n module: {\n type: \"string\",\n },\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"module\", \"aliasReEx\"],\n additionalProperties: false,\n },\n behaviour: {\n type: \"string\",\n enum: [\n \"LOCK_UNLOCK\",\n \"ALWAYS_LOCKED\",\n \"SINGLE_PIN_MUX\",\n \"OPTIONAL_PIN_MUX\",\n \"PPS\",\n \"PORTMUX\",\n \"EXCLUSIVE_LOCK\",\n \"LOCKED_DISABLED\",\n ],\n },\n behaviourMeta: {\n type: \"object\",\n properties: {\n lockPinRegEx: {\n type: \"string\",\n },\n },\n required: [\"lockPinRegEx\"],\n additionalProperties: false,\n },\n pin_attribs: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n cname: {\n type: \"string\",\n },\n high: {\n type: \"boolean\",\n },\n inv: {\n type: \"boolean\",\n },\n wpu: {\n type: \"boolean\",\n },\n wpd: {\n type: \"boolean\",\n },\n od: {\n type: \"boolean\",\n },\n analog: {\n type: \"boolean\",\n },\n ioc: {\n $ref: \"#/definitions/pin_interrupts_enum\",\n },\n bidirection_out: {\n type: \"boolean\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n pin_interrupts_enum: {\n type: \"string\",\n enum: [\n \"INTDIS_BUFFEN\",\n \"BOTH_EDGES\",\n \"RISING_EDGE\",\n \"FALLING_EDGE\",\n \"NONE\",\n \"LOW_LEVEL\",\n ],\n },\n pingroups_data: {\n type: \"object\",\n properties: {\n groups: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pins_group\",\n },\n },\n },\n required: [\"groups\"],\n additionalProperties: false,\n },\n pins_group: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n filter: {\n $ref: \"#/definitions/grpfilter\",\n },\n datapath: {\n type: \"string\",\n },\n },\n required: [\"name\", \"filter\"],\n additionalProperties: false,\n },\n grpfilter: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n },\n};\n//# sourceMappingURL=pin-standard.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOptionLabels = exports.filterOptions = exports.isSingleton = exports.isUnassigned = exports.isAssigned = exports.hasOptions = exports.AlertTypes = void 0;\nvar AlertTypes;\n(function (AlertTypes) {\n AlertTypes[\"Error\"] = \"error\";\n AlertTypes[\"Warning\"] = \"warning\";\n AlertTypes[\"Hint\"] = \"hint\";\n})(AlertTypes = exports.AlertTypes || (exports.AlertTypes = {}));\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction hasOptions(dep) {\n return dep.options !== undefined;\n}\nexports.hasOptions = hasOptions;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isAssigned(dep) {\n return typeof dep.handle !== \"undefined\";\n}\nexports.isAssigned = isAssigned;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isUnassigned(dep) {\n return typeof dep.handle === \"undefined\";\n}\nexports.isUnassigned = isUnassigned;\n/**\n * Type guard function for SingletonExport\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n * @param resource the export to check on being a singleton\n * @deprecated No longer used. Replaced with dynamic singleton identification\n * at runtime.\n */\nfunction isSingleton(resource) {\n return typeof resource.isSingleton !== \"undefined\" && resource.isSingleton;\n}\nexports.isSingleton = isSingleton;\n/**\n * Returns a copy of `populatedImport` with all options removed which\n * cause `optionFilter` to return false.\n */\nfunction filterOptions(populatedImport, optionFilter) {\n if (populatedImport.options) {\n return __assign(__assign({}, populatedImport), { options: populatedImport.options.filter(optionFilter) });\n }\n return populatedImport;\n}\nexports.filterOptions = filterOptions;\n/**\n * Returns a copy of `populatedImport` with the options' handle labels\n * mapped according to `labelFactory`.\n */\nfunction mapOptionLabels(populatedImport, labelFactory) {\n if (populatedImport.options) {\n return __assign(__assign({}, populatedImport), { options: populatedImport.options.map(function (option) {\n return __assign(__assign({}, option), { handle: __assign(__assign({}, option.handle), { label: labelFactory(option) }) });\n }) });\n }\n return populatedImport;\n}\nexports.mapOptionLabels = mapOptionLabels;\n//# sourceMappingURL=Processor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildSimpleApi = function (functions) {\n var api = {};\n for (var key in functions) {\n api[key] = buildFunction(functions[key]);\n }\n return api;\n};\nvar buildFunction = function (cFunction) {\n return cFunction.returns + \" \" + cFunction.name + \"(\" + buildArguments(cFunction.arguments) + \")\";\n};\nvar buildArguments = function (args) {\n if (args) {\n return args.map(function (arg) { return arg.type + \" \" + arg.name; }).join(\", \");\n }\n else {\n return \"void\";\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInterfaceName = function (pkgJson) {\n var strReplace = \"@microchip/\";\n var interfaceName;\n if (pkgJson) {\n interfaceName = pkgJson[\"name\"];\n if (interfaceName) {\n interfaceName = interfaceName.replace(strReplace, \"\");\n }\n }\n if (!interfaceName) {\n throw new Error(\"Invalid Interface Name...!\");\n }\n return interfaceName;\n};\nexports.getInterfaceVersion = function (pkgJson) {\n var versionRegex = new RegExp(\"\\\\d+.\\\\d+.\\\\d+\");\n var version;\n if (pkgJson) {\n version = pkgJson[\"version\"];\n }\n if (!version && !versionRegex.test(version)) {\n throw new Error(\"Invalid Interface Version...!\");\n }\n return version;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar c_function_types_1 = require(\"./c-function-types\");\nexports.buildSimpleApi = c_function_types_1.buildSimpleApi;\nvar helpers_1 = require(\"./helpers\");\nexports.getInterfaceName = helpers_1.getInterfaceName;\nexports.getInterfaceVersion = helpers_1.getInterfaceVersion;\n","import { StringConstants } from \"./StringConstants\";\n\nexport class ClockCalculator {\n private lfintosc = \"31000\";\n private mfintosc = \"500000\";\n private mfintosc_31KHz = \"31250\";\n private sosc = \"32768\";\n private oscSelect: string;\n private HFInternalClk: string;\n private externalClk: number;\n private clkDivider: number;\n\n MAX_PLL = 16000000; // in Hz\n MIN_PLL = 3000000; // in Hz\n\n public constructor(\n oscSelect: string,\n HFInternalClk: string,\n externalClk: number,\n clkDivider: number,\n ) {\n this.oscSelect = oscSelect;\n this.HFInternalClk = HFInternalClk;\n this.externalClk = externalClk;\n this.clkDivider = clkDivider;\n }\n\n public getCurrentSystemClk = (): number => {\n let currentSystemClk: number;\n let HFClk: number;\n\n if (this.oscSelect === StringConstants.SOSC) {\n currentSystemClk = 32768 / this.clkDivider;\n } else if (this.oscSelect === StringConstants.LFINTOSC) {\n currentSystemClk = 31000 / this.clkDivider;\n } else if (this.oscSelect === StringConstants.HFINTOSC) {\n HFClk = parseInt(this.HFInternalClk?.replace(\"_MHz\", \"\") ?? \"1000000\");\n currentSystemClk = (HFClk * 1000000) / this.clkDivider;\n } else if (this.oscSelect === StringConstants.HFINTOSC_2xPLL) {\n HFClk = parseInt(this.HFInternalClk?.replace(\"_MHz\", \"\") ?? \"1000000\");\n if (HFClk == 8 || HFClk == 12 || HFClk == 16) {\n currentSystemClk = (HFClk * 2 * 1000000) / this.clkDivider;\n } else {\n currentSystemClk = (HFClk * 1000000) / this.clkDivider;\n }\n } else if (this.oscSelect === StringConstants.EXTOSC) {\n currentSystemClk = this.externalClk / this.clkDivider;\n } else {\n if (this.externalClk <= this.MIN_PLL || this.externalClk > this.MAX_PLL) {\n currentSystemClk = this.externalClk / this.clkDivider;\n } else {\n currentSystemClk = (this.externalClk * 4) / this.clkDivider;\n }\n }\n return Math.round(currentSystemClk);\n };\n\n public getHfIntOsc = (): string => {\n return this.HFInternalClk?.replace(\"_MHz\", \"000000\") ?? \"1000000\";\n };\n\n public getMfIntOsc = (): string => {\n return this.mfintosc;\n };\n\n public getMfIntOsc_31KHz = (): string => {\n return this.mfintosc_31KHz;\n };\n\n public getLfIntOsc = (): string => {\n return this.lfintosc;\n };\n\n public getExtOsc = (): string => {\n return this.externalClk.toString();\n };\n\n public getSosc = (): string => {\n return this.sosc;\n };\n}\n","import { CreatorFunctions } from \"@microchip/melody-automodule-interface\";\nimport { State } from \"../generated_module/src/types/State\";\n\nexport const getCreatorFunctions = (): CreatorFunctions => {\n return {\n shouldImport: shouldImport,\n };\n};\n\nconst shouldImport = (importKey: string, state: State): boolean => {\n return true;\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { ClockCalculator } from \"./ClockCalculator\";\nimport * as initializer_system from \"@microchip/initializer-system\";\nimport * as config_device from \"@microchip/config-device\";\nimport { StringConstants } from \"./StringConstants\";\nimport osc_clocks from \"@microchip/osc-clocks\";\nimport * as config_request from \"@microchip/config-request\";\nimport {\n AppModel,\n DerivedData,\n DerivedFunctions,\n} from \"../generated_module/src/types/AutoModuleTypes\";\nimport * as InterfaceTypes from \"@microchip/scf-interface\";\nimport { getPinsLogic } from \"../generated_module/src/pins/PCPHelper\";\n\nexport const getDerivedData = (dataModel: AppModel): DerivedData => {\n if (dataModel) {\n return new MyDerivedData(dataModel);\n }\n return new EmptyDerivedData();\n};\n\n//This data will be used at the creator stage and relies on only the state\nexport class EmptyDerivedData implements DerivedData {\n getMyFunctions = (): DerivedFunctions => {\n return {};\n };\n getModel = (): AppModel | undefined => {\n return undefined;\n };\n}\n\n//This data will be used at the processor stage\nexport class MyDerivedData implements DerivedData {\n private dataModel: AppModel;\n private clockCalculator: ClockCalculator;\n\n constructor(dataModel: AppModel) {\n this.dataModel = dataModel;\n }\n\n getClockCalculator = (): ClockCalculator => {\n if (!this.clockCalculator) {\n this.clockCalculator = new ClockCalculator(\n this.getModel().getComponentValue(\"noscOsccon1\") ?? \"\",\n this.getModel().getComponentValue(\"hffrqOscfrq\") ?? \"\",\n this.getModel().getComponentValue(\"externalClk\") ?? 32768,\n parseInt(this.getModel().getComponentValue(\"ndivOsccon1\") ?? \"\"),\n );\n }\n return this.clockCalculator;\n };\n\n getMyFunctions = (): DerivedFunctions => {\n return {\n moduleName: this.getModuleName,\n alerts: this.getMyAlerts,\n isEnabled: this.isEnabled,\n isVisible: this.isVisible,\n coscOsccon2: this.getResOscValue,\n currentSystemClk: (): number =>\n this.getClockCalculator().getCurrentSystemClk(),\n \"fosc-hz_payload\": (): string =>\n this.getClockCalculator().getCurrentSystemClk().toString(),\n initializer_system_results: this.initializer_system_results,\n config_device_results: this.config_device_results,\n templateData: this.getTemplateData,\n config_request_args: (): config_request.Arguments => [\n \"FEXTOSC\",\n \"CLKOUTEN\",\n \"MCLRE\",\n \"LVP\",\n \"RSTOSC\",\n ],\n \"osc-clocks_payload\": this.getOscClocksProcessedPayload,\n doNotShow: (): boolean => false,\n getPinsLogic: getPinsLogic,\n importName: this.friendlyImportName,\n };\n };\n private friendlyImportName = (importKey: string): string => {\n if (importKey === \"scf_pic8_osc_v1\") return \"Oscillator Hardware\";\n if (importKey === \"initializer_system\") return \"system.c Initialize()\";\n if (importKey === \"config_device\") return \"Configuration Device\";\n if (importKey === \"config_request\") return \"Configuration Request\";\n if (importKey === \"pin_standard\") return \"Pins\";\n return importKey;\n };\n\n private getResOscValue = (): string => {\n const resetOscValue = this.getDynamicComponetDefaultValue(\"RSTOSC\");\n let actualOscValue;\n if (resetOscValue?.indexOf(\"4x PLL\") !== -1) {\n actualOscValue = \"EXTOSC with 4x PLL\";\n } else if (resetOscValue?.indexOf(\"Secondary Oscillator\") !== -1) {\n actualOscValue = \"SOSC\";\n } else if (resetOscValue?.indexOf(\"Low-Frequency\") !== -1) {\n actualOscValue = \"LFINTOSC\";\n } else if (\n resetOscValue?.indexOf(\"HFINTOSC with HFFRQ = 4 MHz and CDIV = 4:1\") !== -1\n ) {\n actualOscValue = \"HFINTOSC\";\n } else if (\n resetOscValue?.indexOf(\"HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1\") !== -1\n ) {\n actualOscValue = \"HFINTOSC\";\n } else if (resetOscValue?.indexOf(\"FEXTOSC\") !== -1) {\n actualOscValue = \"EXTOSC\";\n } else {\n actualOscValue = undefined;\n }\n return actualOscValue;\n };\n\n private getPLLStatus = (): boolean => {\n const pllStatus = this.getResOscValue();\n const pllEnable = this.dataModel.isComponentValue(\"pllenOscen\");\n const clkSrcVal = this.dataModel.getComponentValue(\"noscOsccon1\");\n if (pllStatus === \"EXTOSC with 4x PLL\") {\n return true;\n } else if (pllEnable === true) {\n return true;\n } else if (clkSrcVal?.indexOf(\"4x PLL\") !== -1) {\n return true;\n } else if (clkSrcVal?.indexOf(\"2x PLL\") !== -1) {\n return true;\n } else {\n return false;\n }\n };\n\n private getOscClocksProcessedPayload = (): osc_clocks.ProcessedPayload => {\n const oscObj: osc_clocks.ProcessedPayload = {\n extosc: this.getClockCalculator().getExtOsc() ?? \"32768\",\n fosc: this.getClockCalculator().getCurrentSystemClk().toString() ?? \"1000000\",\n hfintosc: this.getClockCalculator().getHfIntOsc() ?? \"1000000\",\n lfintosc: this.getClockCalculator().getLfIntOsc() ?? \"31000\",\n mfintosc: this.getClockCalculator().getMfIntOsc() ?? \"500000\",\n mfintosc_31Khz: this.getClockCalculator().getMfIntOsc_31KHz() ?? \"31250\",\n sosc: this.getClockCalculator().getSosc() ?? \"32768\",\n };\n const hasSosc: boolean =\n this.dataModel.isComponentValue(\"soscenOscen\") !== undefined ? true : false;\n if (hasSosc) {\n oscObj.hasSosc = true;\n oscObj.soscEnabled = this.dataModel.isComponentValue(\"soscenOscen\");\n oscObj.soscPowerMode = this.dataModel.getComponentValue(\"soscpwrOsccon3\");\n }\n return oscObj;\n };\n\n public getModuleName = (): string => {\n return \"Clock Control\";\n };\n public getModel = (): AppModel => {\n return this.dataModel;\n };\n\n private getTemplateData = (): any => {\n const headers: InterfaceTypes.HeaderFile = {\n name: \"clock.h\",\n path: \"../\",\n };\n // const initRegisters = this.dataModel.getRegisterValues() ;\n const registerValues = this.dataModel.getRegisterValues();\n return {\n deviceFrequency: this.getClockCalculator().getCurrentSystemClk().toString(),\n\n // initRegisters: initRegisters,\n header: headers,\n\n moduleNameUpperCase: this.getModuleName().toUpperCase(),\n moduleNameLowerCase: this.getModuleName().toLowerCase(),\n isPllEnabled: this.getPLLStatus() ?? false,\n ...registerValues,\n };\n };\n private initializer_system_results = (): initializer_system.Results => {\n return {\n initializer: {\n name: \"CLOCK_Initialize\",\n header: {\n name: \"clock.h\",\n path: \"system/\",\n },\n priority: initializer_system.INIT_PRIORITY.START,\n },\n };\n };\n\n private config_device_results = (): config_device.Results => {\n return {\n headers: [\n {\n name: \"clock.h\",\n path: \"system/\",\n },\n ],\n };\n };\n\n private isEnabled = (componentName: string): boolean => {\n switch (componentName) {\n case \"hffrqOscfrq\":\n return (\n this.dataModel.getComponentValue(\"noscOsccon1\")?.indexOf(\"HF\") != -1\n );\n case \"currentSystemClk\":\n return false;\n case \"lfIntOscFreq\":\n return false;\n default:\n return true;\n }\n };\n\n private isVisible = (componentName: string): boolean => {\n const componentValue = this.dataModel.getComponentValue(\"noscOsccon1\");\n switch (componentName) {\n case \"externalClk\":\n if (\n componentValue === StringConstants.EXTOSC ||\n componentValue === StringConstants.EXTOSC_4xPLL\n ) {\n return true;\n } else {\n return false;\n }\n case \"lfIntOscFreq\":\n if (componentValue != StringConstants.LFINTOSC) {\n return false;\n } else {\n return true;\n }\n case \"hffrqOscfrq\":\n if (\n componentValue != StringConstants.HFINTOSC &&\n componentValue != StringConstants.HFINTOSC_2xPLL\n ) {\n return false;\n } else {\n return true;\n }\n default:\n return true;\n }\n };\n\n private getDynamicComponetDefaultValue = (\n componentName: string,\n ): string | undefined => {\n const externalClkSelectedOptions = this.dataModel.getImportValue(\n \"config_request\",\n )?.[componentName];\n let selectedOptionVal: string | undefined;\n if (externalClkSelectedOptions) {\n selectedOptionVal = externalClkSelectedOptions[\"defaultValue\"][\"value\"];\n }\n return selectedOptionVal ?? undefined;\n };\n\n private getMyAlerts = (): Processor.Alert[] => {\n const alerts: Processor.Alert[] = [];\n const selectedOptionVal: string =\n this.getDynamicComponetDefaultValue(\"FEXTOSC\") ?? \"\";\n const noscOsccon1 = this.dataModel.getComponentValue(\"noscOsccon1\");\n\n if (\n noscOsccon1 === StringConstants.EXTOSC_4xPLL ||\n noscOsccon1 === StringConstants.EXTOSC\n ) {\n alerts.push({\n type: Processor.AlertTypes.Hint,\n text:\n 'Please configure required \"External Oscillator Selection\" in System Module config bits',\n });\n }\n\n if (\n noscOsccon1 === StringConstants.EXTOSC_4xPLL &&\n ((this.getModel().getComponentValue(\"externalClk\") ?? 0) <=\n this.getClockCalculator().MIN_PLL ||\n (this.getModel().getComponentValue(\"externalClk\") ?? 0) >\n this.getClockCalculator().MAX_PLL)\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"The frequency selected does not fall within the PLL locking range. Therefore, the actual frequency produced by hardware maybe unpredictable when the PLL is enabled. Either change the clock frequency or select a different option in Oscillator select.\",\n });\n }\n\n if (\n noscOsccon1 === StringConstants.EXTOSC_4xPLL ||\n noscOsccon1 === StringConstants.EXTOSC\n ) {\n if (\n selectedOptionVal?.indexOf(\"external clock\") != -1 &&\n this.getClockCalculator().getCurrentSystemClk() >\n StringConstants.ExtClkFreq_64MHz\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"External clock frequency is greater than recommended value (\" +\n StringConstants.ExtClkFreq_64MHz +\n \" Hz)\",\n });\n }\n\n if (\n selectedOptionVal?.indexOf(\"crystal oscillator\") != -1 &&\n (this.getModel().getComponentValue(\"externalClk\") ?? 0) > 16000000 &&\n this.getClockCalculator().getCurrentSystemClk() >\n StringConstants.ExtClkFreq_20MHz\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"External clock frequency is greater than recommended value (\" +\n StringConstants.ExtClkFreq_20MHz +\n \" Hz)\",\n });\n }\n\n if (\n selectedOptionVal.indexOf(\"Oscillator not enabled\") != -1 &&\n this.getClockCalculator().getCurrentSystemClk() >\n StringConstants.ExtClkFreq_32MHz\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"External clock frequency is greater than recommended value (\" +\n StringConstants.ExtClkFreq_32MHz +\n \" Hz)\",\n });\n }\n }\n\n const HFClk = parseInt(\n this.dataModel.getComponentValue(\"hffrqOscfrq\")?.replace(\"_MHz\", \"\") ?? \"0\",\n );\n if (\n this.dataModel.getComponentValue(\"noscOsccon1\") ===\n StringConstants.HFINTOSC_2xPLL &&\n (HFClk == 1 || HFClk == 2 || HFClk == 4 || HFClk == 32)\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"The frequency set in HF Internal Clock may not get generated by the clock hardware properly since it does not fall within the 2xPLL range of 8-16 MHz. Therefore, it is recommended that the option 'HFINTOSC' be selected in the Oscillator select combo box.\",\n });\n }\n\n return alerts;\n };\n}\n","import { pin_row, pin_state } from \"@microchip/pin-standard\";\nimport { AppModel } from \"../generated_module/src/types/AutoModuleTypes\";\n\n// provide complete dynamic data for all pin rows. It overrides static pindata.json\nexport const getCompletePinData = (appModel: AppModel): any => {\n // way to programatically override the json data\n return {};\n};\n\n// overrides pin data for a particular row based on model.\nexport function getRowData(appModel: AppModel, rowData: pin_row): pin_row | undefined {\n let retRowJSONdata: pin_row | undefined = rowData;\n let rowActions: any = [];\n const clockOutEnable = appModel.getImportValue(\"config_request\")?.[\"CLKOUTEN\"];\n\n if (clockOutEnable) {\n delete clockOutEnable[\"setting\"];\n delete clockOutEnable[\"displayOptionSetting\"];\n const selectedOption: string = clockOutEnable[\"defaultValue\"][\"value\"];\n\n if (selectedOption.indexOf(\"CLKOUT function is enabled\") != -1) {\n if (rowData.name === \"clockout\") {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"CLKOUT\" },\n };\n }\n }\n\n const isPic18ClkOut: boolean =\n selectedOption === \"CLKOUT function is enabled\" ||\n selectedOption === \"CLKOUT function is disabled\"\n ? true\n : false;\n const actionArr = appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"clockout\")\n .forComponent(clockOutEnable)\n .addIfLockedSetValue(\n \"CLKOUT\",\n isPic18ClkOut\n ? \"CLKOUT function is enabled\"\n : \"CLKOUT function is enabled; FOSC/4 clock appears at OSC2\",\n )\n .addIfUnLockedSetValue(\n \".*\",\n isPic18ClkOut\n ? \"CLKOUT function is disabled\"\n : \"CLKOUT function is disabled; i/o or oscillator function on OSC2\",\n )\n .build();\n // Provide the module reference(scriptID) of remote config bits module\n for (const eachAction of actionArr) {\n const lockedState = eachAction.state[pin_state.LOCKED];\n if (lockedState) {\n lockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle?.providerId,\n };\n }\n const unlockedState = eachAction.state[pin_state.UNLOCK];\n if (unlockedState) {\n unlockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle?.providerId,\n };\n }\n rowActions.push(eachAction);\n }\n }\n\n const extClkSelect = appModel.getImportValue(\"config_request\")?.[\"FEXTOSC\"];\n\n if (extClkSelect) {\n delete extClkSelect[\"setting\"];\n delete extClkSelect[\"displayOptionSetting\"];\n\n const selectedOption: string = extClkSelect[\"defaultValue\"][\"value\"];\n\n if (\n selectedOption.indexOf(\"(external clock)\") != -1 ||\n selectedOption.indexOf(\"EC\") != -1\n ) {\n if (rowData.name === \"osc1\" || rowData.name === \"osc2\") {\n retRowJSONdata = undefined;\n }\n }\n\n if (selectedOption.indexOf(\"(crystal oscillator)\") != -1) {\n if (rowData.name === \"clockin\") {\n retRowJSONdata = undefined;\n }\n }\n\n if (\n selectedOption.indexOf(\"Oscillator not enabled\") != -1 ||\n selectedOption.indexOf(\"Reserved\") != -1\n ) {\n if (\n rowData.name === \"clockin\" ||\n rowData.name === \"osc1\" ||\n rowData.name === \"osc2\"\n ) {\n retRowJSONdata = undefined;\n }\n }\n // Restricting pin actions for clockin, osc1 and osc2 pin rows\n const mclrKey = appModel.getComponent(\"mclrUnusedKey\")?.component;\n if (mclrKey) {\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"clockin\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"osc1\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"osc2\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n }\n }\n\n const mclrEnable = appModel.getImportValue(\"config_request\")?.[\"MCLRE\"];\n const lvpEnable = appModel.getImportValue(\"config_request\")?.[\"LVP\"];\n\n if (mclrEnable && lvpEnable) {\n delete mclrEnable[\"setting\"];\n delete mclrEnable[\"displayOptionSetting\"];\n const selectedMclrOption: string = mclrEnable[\"defaultValue\"][\"value\"];\n\n delete lvpEnable[\"setting\"];\n delete lvpEnable[\"displayOptionSetting\"];\n const selectedLvpOption: string = lvpEnable[\"defaultValue\"][\"value\"];\n\n if (\n selectedLvpOption.indexOf(\"HV on MCLR/VPP must be used for programming\") !=\n -1 ||\n selectedLvpOption.indexOf(\n \"High Voltage on MCLR/Vpp must be used for programming\",\n ) != -1\n ) {\n if (\n selectedMclrOption.indexOf(\"MCLR pin is MCLR\") != -1 ||\n selectedMclrOption.indexOf(\"MCLR pin is Master Clear function\") != -1 ||\n selectedMclrOption === \"MCLR pin (RE3) is MCLR\"\n ) {\n if (rowData.name === \"reset\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"MCLR\" },\n };\n }\n }\n const isPic18Mclr: boolean =\n selectedMclrOption ===\n \"If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is MCLR \" ||\n selectedMclrOption ===\n \"If LVP = 0, MCLR pin function is port defined function; If LVP =1, RE3 pin fuction is MCLR\"\n ? true\n : false;\n const isQ10Mclr: boolean =\n selectedMclrOption === \"MCLR pin (RE3) is MCLR\" ||\n selectedMclrOption ===\n \"If LVP = 0, MCLR pin (RE3) is an input; If LVP =1, MCLR pin (RE3) is MCLR\"\n ? true\n : false;\n let actionArr: any = [];\n\n // For handling Q10 devices\n if (isQ10Mclr) {\n actionArr = appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"reset\")\n .forComponent(mclrEnable)\n .addIfLockedSetValue(\"MCLR\", \"MCLR pin (RE3) is MCLR\")\n .addIfUnLockedSetValue(\n \".*\",\n \"If LVP = 0, MCLR pin (RE3) is an input; If LVP =1, MCLR pin (RE3) is MCLR\",\n )\n .build();\n } else {\n actionArr = appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"reset\")\n .forComponent(mclrEnable)\n .addIfLockedSetValue(\n \"MCLR\",\n isPic18Mclr\n ? \"If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is MCLR \"\n : \"MCLR pin is Master Clear function\",\n )\n .addIfUnLockedSetValue(\n \".*\",\n isPic18Mclr\n ? \"If LVP = 0, MCLR pin function is port defined function; If LVP =1, RE3 pin fuction is MCLR\"\n : \"MCLR pin function is port defined function\",\n )\n .build();\n }\n\n // Provide the module reference(scriptID) of remote config bits module\n for (const eachAction of actionArr) {\n const lockedState = eachAction.state[pin_state.LOCKED];\n if (lockedState) {\n lockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle\n ?.providerId,\n };\n }\n const unlockedState = eachAction.state[pin_state.UNLOCK];\n if (unlockedState) {\n unlockedState.meta = {\n to: appModel.getAssignedImport(\"config_request\")?.handle\n ?.providerId,\n };\n }\n rowActions.push(eachAction);\n }\n } else {\n if (selectedMclrOption) {\n if (rowData.name === \"reset\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"MCLR\" },\n };\n }\n }\n const mclrKey = appModel.getComponent(\"mclrUnusedKey\")?.component;\n if (mclrKey) {\n rowActions = rowActions.concat(\n appModel\n .getPCPHelper?.()\n .stateActionBuilder(rowData)\n .rowWithName(\"reset\")\n .forComponent(mclrKey)\n .addIfLockedSetValue(\".*\", \"\")\n .addIfUnLockedSetValue(\".*\", \"\")\n .build(),\n );\n }\n }\n }\n\n const noscOsccon1 = appModel.getComponentValue(\"noscOsccon1\");\n if (\n noscOsccon1 === \"HFINTOSC\" ||\n noscOsccon1 === \"LFINTOSC\" ||\n noscOsccon1 === \"SOSC\" ||\n noscOsccon1 === \"HFINTOSC with 2x PLL\"\n ) {\n if (rowData.name === \"clockin\") {\n retRowJSONdata = undefined;\n }\n if (rowData.name === \"osc1\") {\n retRowJSONdata = undefined;\n }\n if (rowData.name === \"osc2\") {\n retRowJSONdata = undefined;\n }\n }\n\n if (rowData.name === \"sosci\") {\n if (noscOsccon1 === \"SOSC\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"SOSCI\" },\n };\n } else {\n retRowJSONdata = undefined;\n }\n }\n\n if (rowData.name === \"sosco\") {\n if (noscOsccon1 === \"SOSC\" && retRowJSONdata) {\n retRowJSONdata = {\n ...retRowJSONdata,\n behaviourMeta: { lockPinRegEx: \"SOSCO\" },\n };\n } else {\n retRowJSONdata = undefined;\n }\n }\n\n if (retRowJSONdata) retRowJSONdata = { ...retRowJSONdata, actions: rowActions };\n\n return retRowJSONdata;\n}\n","export class StringConstants {\n static readonly SOSC = \"SOSC\";\n static readonly LFINTOSC = \"LFINTOSC\";\n static readonly HFINTOSC = \"HFINTOSC\";\n static readonly HFINTOSC_2xPLL = \"HFINTOSC with 2x PLL\";\n static readonly EXTOSC = \"EXTOSC\";\n static readonly EXTOSC_4xPLL = \"EXTOSC with 4x PLL\";\n static readonly OSC_NOT_NEEDED = \"Oscillator not needed\";\n static readonly ON = \"ON\";\n static readonly ExtClkFreq_64MHz = 64000000;\n static readonly ExtClkFreq_20MHz = 20000000;\n static readonly ExtClkFreq_32MHz = 32000000;\n}\n"],"sourceRoot":""}
@@ -1089,13 +1089,15 @@ var MyDerivedData = function MyDerivedData(dataModel) {
1089
1089
  var actualOscValue;
1090
1090
 
1091
1091
  if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("4x PLL")) !== -1) {
1092
- actualOscValue = "EXTOSC with 4x PLL";
1092
+ actualOscValue = "EXTOSC with 4x PLL";
1093
1093
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("Secondary Oscillator")) !== -1) {
1094
1094
  actualOscValue = "SOSC";
1095
1095
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("Low-Frequency")) !== -1) {
1096
1096
  actualOscValue = "LFINTOSC";
1097
1097
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("HFINTOSC with HFFRQ = 4 MHz and CDIV = 4:1")) !== -1) {
1098
1098
  actualOscValue = "HFINTOSC";
1099
+ } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1")) !== -1) {
1100
+ actualOscValue = "HFINTOSC";
1099
1101
  } else if ((resetOscValue === null || resetOscValue === void 0 ? void 0 : resetOscValue.indexOf("FEXTOSC")) !== -1) {
1100
1102
  actualOscValue = "EXTOSC";
1101
1103
  } else {
@@ -1110,10 +1112,16 @@ var MyDerivedData = function MyDerivedData(dataModel) {
1110
1112
 
1111
1113
  var pllEnable = _this.dataModel.isComponentValue("pllenOscen");
1112
1114
 
1113
- if (pllStatus === "EXTOSC with 4x PLL") {
1115
+ var clkSrcVal = _this.dataModel.getComponentValue("noscOsccon1");
1116
+
1117
+ if (pllStatus === "EXTOSC with 4x PLL") {
1114
1118
  return true;
1115
1119
  } else if (pllEnable === true) {
1116
1120
  return true;
1121
+ } else if ((clkSrcVal === null || clkSrcVal === void 0 ? void 0 : clkSrcVal.indexOf("4x PLL")) !== -1) {
1122
+ return true;
1123
+ } else if ((clkSrcVal === null || clkSrcVal === void 0 ? void 0 : clkSrcVal.indexOf("2x PLL")) !== -1) {
1124
+ return true;
1117
1125
  } else {
1118
1126
  return false;
1119
1127
  }
@@ -1619,7 +1627,7 @@ _defineProperty(StringConstants, "HFINTOSC_2xPLL", "HFINTOSC with 2x PLL");
1619
1627
 
1620
1628
  _defineProperty(StringConstants, "EXTOSC", "EXTOSC");
1621
1629
 
1622
- _defineProperty(StringConstants, "EXTOSC_4xPLL", "EXTOSC with 4x PLL");
1630
+ _defineProperty(StringConstants, "EXTOSC_4xPLL", "EXTOSC with 4x PLL");
1623
1631
 
1624
1632
  _defineProperty(StringConstants, "OSC_NOT_NEEDED", "Oscillator not needed");
1625
1633