@mchp-mcc/scf-pic8-pwm-v2 4.2.4 → 4.2.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 +9 -0
- package/Readme.md +23 -44
- package/output/autoCreator.js +140 -15
- package/output/autoCreator.js.map +1 -1
- package/output/autoProcessor.js +140 -15
- package/output/autoProcessor.js.map +1 -1
- package/output/creator.js +140 -15
- package/output/creator.js.map +1 -1
- package/output/processor.js +140 -15
- package/output/processor.js.map +1 -1
- package/package.json +13 -5
- package/src/DerivedData.test.ts +616 -0
- package/src/DerivedData.ts +60 -6
- package/src/GeneratorModel.test.tsx +69 -0
- package/src/PinsLogic.test.ts +155 -0
- package/src/PwmCalculator.test.tsx +56 -0
- package/src/interfaces/pwm_general_parameters.test.tsx +40 -0
- package/src/moduleConfig.json +28 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mchp-mcc/scf-pic8-pwm-v2",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.5",
|
|
4
4
|
"scf": {
|
|
5
5
|
"reducer": "auto",
|
|
6
6
|
"creator": "output/creator.js",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"build-run-dir-future": "node config/extract-run-directory-future.js",
|
|
107
107
|
"release": "yarn build && yarn test && node -e 'require(\"./config/scf-project-scripts\").releaseProject()'",
|
|
108
108
|
"test:itf:all": "node ./node_modules/@mchp-mcc/ccl-itf/lib/index.js --sp=./tests/itf --rd=./run",
|
|
109
|
-
"test:itf:dev": "node ./node_modules/@mchp-mcc/ccl-itf/lib/index.js --sp=./tests/itf --rd=./run --sf=pwmV2.major.test.ts --df=\"
|
|
109
|
+
"test:itf:dev": "node ./node_modules/@mchp-mcc/ccl-itf/lib/index.js --sp=./tests/itf --rd=./run --sf=pwmV2.major.test.ts --df=\"PIC16F18076\"",
|
|
110
110
|
"postprocess": "node config/appendPrototype.js"
|
|
111
111
|
},
|
|
112
112
|
"husky": {
|
|
@@ -136,7 +136,15 @@
|
|
|
136
136
|
"<rootDir>/run"
|
|
137
137
|
],
|
|
138
138
|
"preset": "ts-jest",
|
|
139
|
-
"collectCoverage": true
|
|
139
|
+
"collectCoverage": true,
|
|
140
|
+
"coverageThreshold": {
|
|
141
|
+
"./src": {
|
|
142
|
+
"branches": 80,
|
|
143
|
+
"functions": 80,
|
|
144
|
+
"lines": 80,
|
|
145
|
+
"statements": 80
|
|
146
|
+
}
|
|
147
|
+
}
|
|
140
148
|
},
|
|
141
149
|
"dependencies": {
|
|
142
150
|
"@microchip/api-prefix-registration": "^0.1.0",
|
|
@@ -162,8 +170,8 @@
|
|
|
162
170
|
"@babel/preset-react": "^7.9.4",
|
|
163
171
|
"@babel/preset-typescript": "^7.9.0",
|
|
164
172
|
"@mchp-mcc/ccl-itf": "^0.2.16",
|
|
165
|
-
"@mchp-mcc/pic-8bit": "^5.
|
|
166
|
-
"@mchp-mcc/pic-8bit-types": "^5.
|
|
173
|
+
"@mchp-mcc/pic-8bit": "^5.9.0-dev.5",
|
|
174
|
+
"@mchp-mcc/pic-8bit-types": "^5.9.0-dev.5",
|
|
167
175
|
"@microchip/initializer-system": "^0.5.3",
|
|
168
176
|
"@microchip/melody-automodule-interface": "^1.5.1",
|
|
169
177
|
"@microchip/pic-8bit-types": "^5.0.1",
|
|
@@ -0,0 +1,616 @@
|
|
|
1
|
+
import { DerivedData } from "../generated_module/src/types/AutoModuleTypes";
|
|
2
|
+
import * as MyDerivedData from "./DerivedData";
|
|
3
|
+
import { AppModel, MyState } from "../generated_module/src/types/AutoModuleTypes";
|
|
4
|
+
import { getModel, mockState } from "../generated_module/tests/AppModel.test";
|
|
5
|
+
import { mockAssignedModule } from "../generated_module/tests/processor.test";
|
|
6
|
+
import { getDerivedData } from "./DerivedData";
|
|
7
|
+
|
|
8
|
+
export const getMockState = (
|
|
9
|
+
pwmenPwmcon: boolean | undefined,
|
|
10
|
+
timerSelection: string | undefined,
|
|
11
|
+
tmr2Dependency: string | undefined,
|
|
12
|
+
): MyState => {
|
|
13
|
+
return {
|
|
14
|
+
main: {
|
|
15
|
+
software: {
|
|
16
|
+
componentName: "PWM4",
|
|
17
|
+
tmr2Dependency: tmr2Dependency,
|
|
18
|
+
},
|
|
19
|
+
hardware: {
|
|
20
|
+
timerSelection: timerSelection,
|
|
21
|
+
dutyCycle: 50,
|
|
22
|
+
pwmdcValue: 511,
|
|
23
|
+
pwmPeriod: 0.001024,
|
|
24
|
+
pwmFrequency: 976.56,
|
|
25
|
+
pwmResolution: 10,
|
|
26
|
+
pwmpolPwmcon: "active_hi",
|
|
27
|
+
pwmenPwmcon: pwmenPwmcon,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
describe("Empty Derived Data Test ", () => {
|
|
34
|
+
const derivedData = getDerivedData((undefined as unknown) as AppModel);
|
|
35
|
+
|
|
36
|
+
it("Get My Functions Test ", () => {
|
|
37
|
+
expect(derivedData.getMyFunctions()).toStrictEqual({});
|
|
38
|
+
});
|
|
39
|
+
it("Get Model Test ", () => {
|
|
40
|
+
expect(derivedData.getModel()).toStrictEqual(undefined);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe("Import Interface test Cases ", () => {
|
|
45
|
+
const mockMod = mockAssignedModule(mockState());
|
|
46
|
+
const model = getModel(mockMod, MyDerivedData.getDerivedData);
|
|
47
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
48
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
49
|
+
|
|
50
|
+
const sysInitImport = {
|
|
51
|
+
initializer: {
|
|
52
|
+
name: "PWM_Initialize",
|
|
53
|
+
header: { name: "pwm.h", path: "pwm/" },
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
it("Test for initializer import interface name and version defined", () => {
|
|
57
|
+
expect(model?.getImports()?.initializer_system?.interfaceId.name).toEqual(
|
|
58
|
+
"initializer-system",
|
|
59
|
+
);
|
|
60
|
+
expect(
|
|
61
|
+
model?.getImports()?.initializer_system?.interfaceId.version,
|
|
62
|
+
).toBeDefined();
|
|
63
|
+
});
|
|
64
|
+
it("Test for initializer values", () => {
|
|
65
|
+
expect(derivedFunctions?.initializer_system_results()?.initializer?.name).toEqual(
|
|
66
|
+
sysInitImport?.initializer?.name,
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
it("Test for pin import interface name and version defined", () => {
|
|
70
|
+
expect(model?.getImports()?.pin_standard?.interfaceId.name).toEqual(
|
|
71
|
+
"pin-standard",
|
|
72
|
+
);
|
|
73
|
+
expect(model?.getImports()?.pin_standard?.interfaceId.version).toBeDefined();
|
|
74
|
+
});
|
|
75
|
+
it("Test for device_meta import interface name and version defined", () => {
|
|
76
|
+
expect(model?.getImports()?.device_meta?.interfaceId.name).toEqual("device-meta");
|
|
77
|
+
expect(model?.getImports()?.device_meta?.interfaceId.version).toBeDefined();
|
|
78
|
+
});
|
|
79
|
+
it("Test for pwm hw import interface name and version defined", () => {
|
|
80
|
+
expect(model?.getImports()?.scf_pic8_pwm_v2?.interfaceId.name).toEqual(
|
|
81
|
+
"scf-pic8-pwm-v2",
|
|
82
|
+
);
|
|
83
|
+
expect(model?.getImports()?.scf_pic8_pwm_v2?.interfaceId.version).toBeDefined();
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("Test for clock import interface name and version defined", () => {
|
|
87
|
+
expect(model?.getImports()?.osc_clocks?.interfaceId.name).toEqual("osc-clocks");
|
|
88
|
+
expect(model?.getImports()?.osc_clocks?.interfaceId.version).toBeDefined();
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// it("Import osc_clocks is undefined", () => {
|
|
92
|
+
// if (model) {
|
|
93
|
+
// model.getImportValue = (int_name: string): any => {
|
|
94
|
+
// return undefined;
|
|
95
|
+
// };
|
|
96
|
+
// }
|
|
97
|
+
// const systemClock = derivedFunctions?.systemClock?.();
|
|
98
|
+
// expect(systemClock).toBe("0.000 Hz");
|
|
99
|
+
// });
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
describe("Alert test Cases ", () => {
|
|
103
|
+
describe("Default: Timer 2 Dependency Selector ", () => {
|
|
104
|
+
const model = getModel(
|
|
105
|
+
mockAssignedModule(getMockState(true, "TMR2", "None")),
|
|
106
|
+
MyDerivedData.getDerivedData,
|
|
107
|
+
);
|
|
108
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
109
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
110
|
+
const alert1 = {
|
|
111
|
+
type: "warning",
|
|
112
|
+
text: "Please select TMR2 as the Timer Dependency.",
|
|
113
|
+
};
|
|
114
|
+
it("Test for Alerts value", () => {
|
|
115
|
+
expect(derivedFunctions.alerts?.()).toEqual([alert1]);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
describe("Default: Timer 4 Dependency Selector", () => {
|
|
119
|
+
const model = getModel(
|
|
120
|
+
mockAssignedModule(getMockState(true, "TMR4", "None")),
|
|
121
|
+
MyDerivedData.getDerivedData,
|
|
122
|
+
);
|
|
123
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
124
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
125
|
+
const alert1 = {
|
|
126
|
+
type: "warning",
|
|
127
|
+
text: "Please select TMR4 as the Timer Dependency.",
|
|
128
|
+
};
|
|
129
|
+
it("Test for Alerts value", () => {
|
|
130
|
+
expect(derivedFunctions.alerts?.()).toEqual([alert1]);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe("Default: Timer 6 Dependency Selector", () => {
|
|
134
|
+
const model = getModel(
|
|
135
|
+
mockAssignedModule(getMockState(true, "TMR6", "None")),
|
|
136
|
+
MyDerivedData.getDerivedData,
|
|
137
|
+
);
|
|
138
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
139
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
140
|
+
const alert1 = {
|
|
141
|
+
type: "warning",
|
|
142
|
+
text: "Please select TMR6 as the Timer Dependency.",
|
|
143
|
+
};
|
|
144
|
+
it("Test for Alerts value", () => {
|
|
145
|
+
expect(derivedFunctions.alerts?.()).toEqual([alert1]);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
describe("PWM Alerts: TMR dependency selector configured correctly", () => {
|
|
150
|
+
let mockModule = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
151
|
+
mockModule = {
|
|
152
|
+
...(mockModule ?? {}),
|
|
153
|
+
imports: {
|
|
154
|
+
...(mockModule?.imports ?? {}),
|
|
155
|
+
Timer: {
|
|
156
|
+
...(mockModule?.imports?.Timer ?? {}),
|
|
157
|
+
handle: {
|
|
158
|
+
...(mockModule?.imports?.Timer?.handle ?? {}),
|
|
159
|
+
providerId: "module15",
|
|
160
|
+
exportId: "timer_2_4_6_general_params",
|
|
161
|
+
label: "TMR2",
|
|
162
|
+
},
|
|
163
|
+
payload: {
|
|
164
|
+
...(mockModule?.imports?.Timer?.payload ?? {}),
|
|
165
|
+
moduleName: "TMR2",
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
171
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
172
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
173
|
+
const alert1 = {
|
|
174
|
+
type: "hint",
|
|
175
|
+
text: "PWM4 uses TMR2.",
|
|
176
|
+
};
|
|
177
|
+
const alert2 = {
|
|
178
|
+
type: "hint",
|
|
179
|
+
text:
|
|
180
|
+
"Postscaler setting in TMR2 does not affect the calculated parameters in PWM module.",
|
|
181
|
+
};
|
|
182
|
+
it("Test for Alerts value", () => {
|
|
183
|
+
expect(derivedFunctions.alerts?.()).toEqual([alert1, alert2]);
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
describe("DerivedData for APIs: FilterImports -- >", () => {
|
|
189
|
+
test("Filter imports", () => {
|
|
190
|
+
type importData = {
|
|
191
|
+
importKey: string;
|
|
192
|
+
importValue: string;
|
|
193
|
+
};
|
|
194
|
+
const data: importData[] = [
|
|
195
|
+
{ importKey: "Timer", importValue: "TMR2" },
|
|
196
|
+
{ importKey: "Timer", importValue: "DUMMY" },
|
|
197
|
+
];
|
|
198
|
+
for (let i = 0; i < data.length; i++) {
|
|
199
|
+
let mockState: MyState = {};
|
|
200
|
+
mockState = getMockState(true, "TMR2", data[i].importValue);
|
|
201
|
+
mockState = {
|
|
202
|
+
...mockState,
|
|
203
|
+
imports: {
|
|
204
|
+
...mockState.imports,
|
|
205
|
+
Timer: {
|
|
206
|
+
options: [
|
|
207
|
+
{
|
|
208
|
+
payload: {
|
|
209
|
+
moduleName: "Timer",
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
const model = getModel(
|
|
217
|
+
mockAssignedModule(mockState),
|
|
218
|
+
getDerivedData,
|
|
219
|
+
) as AppModel;
|
|
220
|
+
|
|
221
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
222
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
223
|
+
if (data[i].importValue !== "DUMMY") {
|
|
224
|
+
expect(
|
|
225
|
+
derivedFunctions?.filterImports?.(mockState?.imports)[
|
|
226
|
+
data[i].importKey
|
|
227
|
+
],
|
|
228
|
+
).toBeDefined();
|
|
229
|
+
} else {
|
|
230
|
+
expect(
|
|
231
|
+
derivedFunctions?.filterImports?.(mockState?.imports)[
|
|
232
|
+
data[i].importKey
|
|
233
|
+
],
|
|
234
|
+
).toEqual({
|
|
235
|
+
options: [],
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
describe("DerivedData for APIs: Processed payload -- >", () => {
|
|
243
|
+
describe("Timer 2 -->", () => {
|
|
244
|
+
const mockModule = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
245
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
246
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
247
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
248
|
+
it("Test for Selected Tmr", () => {
|
|
249
|
+
expect(derivedFunctions?.pwm_general_parameters_payload?.()).toBeDefined();
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
describe("DerivedData for APIs: Timer selection -- >", () => {
|
|
255
|
+
describe("Timer 2 -->", () => {
|
|
256
|
+
const mockModule = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
257
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
258
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
259
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
260
|
+
it("Test for Selected Tmr", () => {
|
|
261
|
+
expect(derivedFunctions?.ctselPwmtmrs?.()).toEqual("PWM4timer2");
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
describe("Timer 4 -->", () => {
|
|
265
|
+
const mockModule = mockAssignedModule(getMockState(true, "TMR4", "TMR4"));
|
|
266
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
267
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
268
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
269
|
+
it("Test for Selected Tmr", () => {
|
|
270
|
+
expect(derivedFunctions?.ctselPwmtmrs?.()).toEqual("PWM4timer4");
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
describe("No-->", () => {
|
|
274
|
+
const mockModule = mockAssignedModule(getMockState(true, "TMR6", "TMR6"));
|
|
275
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
276
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
277
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
278
|
+
it("Test for Selected Tmr", () => {
|
|
279
|
+
expect(derivedFunctions?.ctselPwmtmrs?.()).toEqual("PWM4timer6");
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
describe("No PWM Timer -->", () => {
|
|
283
|
+
const mockModule = mockAssignedModule(getMockState(true, undefined, "None"));
|
|
284
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
285
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
286
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
287
|
+
it("Test for Selected Tmr", () => {
|
|
288
|
+
expect(derivedFunctions?.ctselPwmtmrs?.()).toEqual("PWM4timer2");
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
describe("Invalid Timer 7 -->", () => {
|
|
292
|
+
const mockModule = mockAssignedModule(getMockState(true, "TMR7", "TMR7"));
|
|
293
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
294
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
295
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
296
|
+
it("Test for Selected Tmr", () => {
|
|
297
|
+
expect(derivedFunctions?.ctselPwmtmrs?.()).toBeUndefined();
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
describe("DerivedData for APIs: sdl help override -- >", () => {
|
|
303
|
+
describe("DerivedData for APIs -- >", () => {
|
|
304
|
+
const mockModule = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
305
|
+
const model = getModel(mockModule, MyDerivedData.getDerivedData);
|
|
306
|
+
const derivedData = model?.getDerivedData() as DerivedData;
|
|
307
|
+
const derivedFunctions = derivedData?.getMyFunctions();
|
|
308
|
+
it("Test for Pin Data value", () => {
|
|
309
|
+
expect(derivedFunctions?.pinData()).toEqual({});
|
|
310
|
+
});
|
|
311
|
+
it("Test for Module Name value", () => {
|
|
312
|
+
expect(derivedFunctions?.moduleName?.()).toEqual("PWM4");
|
|
313
|
+
});
|
|
314
|
+
// it("Test for Custom Name value", () => {
|
|
315
|
+
// expect(derivedFunctions?.componentName?.()).toEqual(undefined);
|
|
316
|
+
// });
|
|
317
|
+
it("Test for overrideDefaultValues", () => {
|
|
318
|
+
expect(derivedFunctions?.overrideOptions?.("componentName")).toEqual([]);
|
|
319
|
+
});
|
|
320
|
+
// it("Test for overrideOptions", () => {
|
|
321
|
+
// //expect(derivedFunctions?.overrideOptions?.("ccpTimer")).toEqual([]);
|
|
322
|
+
// expect(derivedFunctions?.overrideOptions?.("timerSelection")).toEqual([
|
|
323
|
+
// "TMR2",
|
|
324
|
+
// "TMR4",
|
|
325
|
+
// "TMR6"
|
|
326
|
+
// ]);
|
|
327
|
+
// });
|
|
328
|
+
it("Test for overrideOptions CCPTMRS1", () => {
|
|
329
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
330
|
+
mockAssignedMod = {
|
|
331
|
+
...(mockAssignedMod ?? {}),
|
|
332
|
+
imports: {
|
|
333
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
334
|
+
scf_pic8_pwm_v2: {
|
|
335
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
336
|
+
payload: {
|
|
337
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
338
|
+
registers: {
|
|
339
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
340
|
+
?.registers ?? {}),
|
|
341
|
+
CCPTMRS1: {
|
|
342
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
343
|
+
?.registers?.CCPTMRS1 ?? {}),
|
|
344
|
+
settings: undefined,
|
|
345
|
+
},
|
|
346
|
+
CCPTMRS: undefined,
|
|
347
|
+
PWMTMRS: undefined,
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
};
|
|
353
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
354
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
355
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
356
|
+
// expect(mockDerivedFunctions?.overrideOptions?.("ccpTimer")).toEqual([]);
|
|
357
|
+
expect(mockDerivedFunctions?.overrideOptions?.("timerSelection")).toEqual([]);
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
it("Test for overrideOptions PWMTMRS", () => {
|
|
361
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
362
|
+
mockAssignedMod = {
|
|
363
|
+
...(mockAssignedMod ?? {}),
|
|
364
|
+
imports: {
|
|
365
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
366
|
+
scf_pic8_pwm_v2: {
|
|
367
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
368
|
+
payload: {
|
|
369
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
370
|
+
registers: {
|
|
371
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
372
|
+
?.registers ?? {}),
|
|
373
|
+
PWMTMRS: {
|
|
374
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
375
|
+
?.registers?.PWMTMRS ?? {}),
|
|
376
|
+
settings: undefined,
|
|
377
|
+
},
|
|
378
|
+
CCPTMRS: undefined,
|
|
379
|
+
CCPTMRS1: undefined,
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
},
|
|
383
|
+
},
|
|
384
|
+
};
|
|
385
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
386
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
387
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
388
|
+
// expect(mockDerivedFunctions?.overrideOptions?.("ccpTimer")).toEqual([]);
|
|
389
|
+
expect(mockDerivedFunctions?.overrideOptions?.("timerSelection")).toEqual([]);
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
it("Test for no overrideOptions", () => {
|
|
393
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
394
|
+
mockAssignedMod = {
|
|
395
|
+
...(mockAssignedMod ?? {}),
|
|
396
|
+
imports: {
|
|
397
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
398
|
+
scf_pic8_pwm_v2: {
|
|
399
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
400
|
+
payload: {
|
|
401
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
402
|
+
registers: {
|
|
403
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
404
|
+
?.registers ?? {}),
|
|
405
|
+
PWMTMRS: undefined,
|
|
406
|
+
CCPTMRS: undefined,
|
|
407
|
+
CCPTMRS1: undefined,
|
|
408
|
+
},
|
|
409
|
+
},
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
414
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
415
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
416
|
+
// expect(mockDerivedFunctions?.overrideOptions?.("ccpTimer")).toEqual([]);
|
|
417
|
+
expect(mockDerivedFunctions?.overrideOptions?.("timerSelection")).toEqual([
|
|
418
|
+
"TMR2",
|
|
419
|
+
]);
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
it("Test for sdl help override dutyclyce and pwmdcValue", () => {
|
|
423
|
+
//expect(derivedFunctions?.overrideOptions?.("ccpTimer")).toEqual([]);
|
|
424
|
+
expect(derivedFunctions?.getHelpUrl?.("dutyCycle", "help")).toEqual("help");
|
|
425
|
+
expect(derivedFunctions?.getHelpUrl?.("pwmdcValue", "help")).toEqual("help");
|
|
426
|
+
});
|
|
427
|
+
it("Test for sdl help override ccp timer 1", () => {
|
|
428
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
429
|
+
mockAssignedMod = {
|
|
430
|
+
...(mockAssignedMod ?? {}),
|
|
431
|
+
imports: {
|
|
432
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
433
|
+
scf_pic8_pwm_v2: {
|
|
434
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
435
|
+
payload: {
|
|
436
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
437
|
+
registers: {
|
|
438
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
439
|
+
?.registers ?? {}),
|
|
440
|
+
CCPTMRS1: {
|
|
441
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
442
|
+
?.registers?.CCPTMRS1 ?? {}),
|
|
443
|
+
settings: undefined,
|
|
444
|
+
},
|
|
445
|
+
CCPTMRS: undefined,
|
|
446
|
+
PWMTMRS: undefined,
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
},
|
|
450
|
+
},
|
|
451
|
+
};
|
|
452
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
453
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
454
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
455
|
+
expect(
|
|
456
|
+
mockDerivedFunctions?.getHelpUrl?.("timerSelection", "ctselCcptmrs1"),
|
|
457
|
+
).toEqual("ctselCcptmrs1");
|
|
458
|
+
});
|
|
459
|
+
it("Test for sdl help override ccp timer", () => {
|
|
460
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
461
|
+
mockAssignedMod = {
|
|
462
|
+
...(mockAssignedMod ?? {}),
|
|
463
|
+
imports: {
|
|
464
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
465
|
+
scf_pic8_pwm_v2: {
|
|
466
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
467
|
+
payload: {
|
|
468
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
469
|
+
registers: {
|
|
470
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
471
|
+
?.registers ?? {}),
|
|
472
|
+
CCPTMRS: {
|
|
473
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
474
|
+
?.registers?.CCPTMRS ?? {}),
|
|
475
|
+
settings: undefined,
|
|
476
|
+
},
|
|
477
|
+
CCPTMRS1: undefined,
|
|
478
|
+
PWMTMRS: undefined,
|
|
479
|
+
},
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
};
|
|
484
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
485
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
486
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
487
|
+
expect(
|
|
488
|
+
mockDerivedFunctions?.getHelpUrl?.("timerSelection", "ctselCcptmrs"),
|
|
489
|
+
).toEqual("ctselCcptmrs");
|
|
490
|
+
});
|
|
491
|
+
it("Test for sdl help override pwm timer", () => {
|
|
492
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
493
|
+
mockAssignedMod = {
|
|
494
|
+
...(mockAssignedMod ?? {}),
|
|
495
|
+
imports: {
|
|
496
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
497
|
+
scf_pic8_pwm_v2: {
|
|
498
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
499
|
+
payload: {
|
|
500
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
501
|
+
registers: {
|
|
502
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
503
|
+
?.registers ?? {}),
|
|
504
|
+
PWMTMRS: {
|
|
505
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
506
|
+
?.registers?.PWMTMRS ?? {}),
|
|
507
|
+
settings: undefined,
|
|
508
|
+
},
|
|
509
|
+
CCPTMRS: undefined,
|
|
510
|
+
CCPTMRS1: undefined,
|
|
511
|
+
},
|
|
512
|
+
},
|
|
513
|
+
},
|
|
514
|
+
},
|
|
515
|
+
};
|
|
516
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
517
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
518
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
519
|
+
expect(
|
|
520
|
+
mockDerivedFunctions?.getHelpUrl?.("timerSelection", "ctselPwmtmrs"),
|
|
521
|
+
).toEqual("ctselPwmtmrs");
|
|
522
|
+
});
|
|
523
|
+
|
|
524
|
+
it("Test for sdl help override pwm timer", () => {
|
|
525
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
526
|
+
mockAssignedMod = {
|
|
527
|
+
...(mockAssignedMod ?? {}),
|
|
528
|
+
imports: {
|
|
529
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
530
|
+
scf_pic8_pwm_v2: {
|
|
531
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
532
|
+
payload: {
|
|
533
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
534
|
+
registers: {
|
|
535
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
536
|
+
?.registers ?? {}),
|
|
537
|
+
PWMTMRS: {
|
|
538
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
539
|
+
?.registers?.PWMTMRS ?? {}),
|
|
540
|
+
CTSEL: "PWM4timer2",
|
|
541
|
+
},
|
|
542
|
+
CCPTMRS: undefined,
|
|
543
|
+
CCPTMRS1: undefined,
|
|
544
|
+
},
|
|
545
|
+
},
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
};
|
|
549
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
550
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
551
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
552
|
+
expect(
|
|
553
|
+
mockDerivedFunctions?.getHelpUrl?.("timerSelection", "ctselPwmtmrs"),
|
|
554
|
+
).toEqual("ctselPwmtmrs");
|
|
555
|
+
});
|
|
556
|
+
|
|
557
|
+
it("Test for sdl help override register undefined", () => {
|
|
558
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
559
|
+
mockAssignedMod = {
|
|
560
|
+
...(mockAssignedMod ?? {}),
|
|
561
|
+
imports: {
|
|
562
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
563
|
+
scf_pic8_pwm_v2: {
|
|
564
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
565
|
+
payload: {
|
|
566
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload ?? {}),
|
|
567
|
+
registers: {
|
|
568
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2?.payload
|
|
569
|
+
?.registers ?? {}),
|
|
570
|
+
PWMTMRS: undefined,
|
|
571
|
+
CCPTMRS: undefined,
|
|
572
|
+
CCPTMRS1: undefined,
|
|
573
|
+
},
|
|
574
|
+
},
|
|
575
|
+
},
|
|
576
|
+
},
|
|
577
|
+
};
|
|
578
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
579
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
580
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
581
|
+
expect(
|
|
582
|
+
mockDerivedFunctions?.getHelpUrl?.("timerSelection", "ctselPwmtmrs"),
|
|
583
|
+
).toEqual("ctselPwmtmrs");
|
|
584
|
+
});
|
|
585
|
+
it("Test for sdl help override register undefined", () => {
|
|
586
|
+
let mockAssignedMod = mockAssignedModule(getMockState(true, "TMR2", "TMR2"));
|
|
587
|
+
mockAssignedMod = {
|
|
588
|
+
...(mockAssignedMod ?? {}),
|
|
589
|
+
imports: {
|
|
590
|
+
...(mockAssignedMod?.imports ?? {}),
|
|
591
|
+
scf_pic8_pwm_v2: {
|
|
592
|
+
...(mockAssignedMod?.imports?.scf_pic8_pwm_v2 ?? {}),
|
|
593
|
+
payload: undefined,
|
|
594
|
+
},
|
|
595
|
+
},
|
|
596
|
+
};
|
|
597
|
+
const mockModel = getModel(mockAssignedMod, MyDerivedData.getDerivedData);
|
|
598
|
+
const mockDerivedData = mockModel?.getDerivedData() as DerivedData;
|
|
599
|
+
const mockDerivedFunctions = mockDerivedData?.getMyFunctions();
|
|
600
|
+
expect(
|
|
601
|
+
mockDerivedFunctions?.getHelpUrl?.("timerSelection", "ctselPwmtmrs"),
|
|
602
|
+
).toEqual("ctselPwmtmrs");
|
|
603
|
+
});
|
|
604
|
+
describe("Empty DerivedData -- >", () => {
|
|
605
|
+
let emptyModel: AppModel;
|
|
606
|
+
it("Test for EmptyDerivedData", () => {
|
|
607
|
+
expect(
|
|
608
|
+
MyDerivedData?.getDerivedData(emptyModel)?.getMyFunctions(),
|
|
609
|
+
).toEqual({});
|
|
610
|
+
expect(
|
|
611
|
+
MyDerivedData?.getDerivedData(emptyModel)?.getModel(),
|
|
612
|
+
).toBeUndefined();
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
});
|
|
616
|
+
});
|