@vessel-dsp/core 0.6.35 → 0.6.37
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/dist/formats/interchange/parser.js +16 -0
- package/dist/formats/interchange/parser.js.map +1 -1
- package/dist/formats/interchange/serializer.d.ts.map +1 -1
- package/dist/formats/interchange/serializer.js +14 -0
- package/dist/formats/interchange/serializer.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/model/device-terminal-roles.d.ts +20 -7
- package/dist/model/device-terminal-roles.d.ts.map +1 -1
- package/dist/model/device-terminal-roles.js +20 -7
- package/dist/model/device-terminal-roles.js.map +1 -1
- package/dist/model/types.d.ts +39 -3
- package/dist/model/types.d.ts.map +1 -1
- package/dist/model/types.js.map +1 -1
- package/dist/model/windings.d.ts +9 -1
- package/dist/model/windings.d.ts.map +1 -1
- package/dist/model/windings.js +60 -2
- package/dist/model/windings.js.map +1 -1
- package/package.json +1 -1
package/dist/model/windings.js
CHANGED
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
// refusal. `secondary_16`/`secondary_8`/`secondary_4` are three taps on one coil, and only the
|
|
18
18
|
// names say so.
|
|
19
19
|
//
|
|
20
|
-
// **Ends and taps are told apart by each terminal's own role**, `winding` against `windingTap
|
|
20
|
+
// **Ends and taps are told apart by each terminal's own role**, `winding` against `windingTap` or
|
|
21
|
+
// `windingCenterTap`,
|
|
21
22
|
// which the terminal vocabulary already carries. A winding entry therefore needs nothing but its
|
|
22
23
|
// role and its terminals in coil order.
|
|
23
24
|
export const WINDING_ROLES = [
|
|
@@ -121,6 +122,46 @@ export function validateComponentWindings(component) {
|
|
|
121
122
|
}
|
|
122
123
|
claimed.add(name);
|
|
123
124
|
}
|
|
125
|
+
for (const [index, rating] of (winding.impedances ?? []).entries()) {
|
|
126
|
+
const at = `winding "${label}" impedance ${index}`;
|
|
127
|
+
const [from, to] = rating.across;
|
|
128
|
+
if (from === to) {
|
|
129
|
+
issues.push({
|
|
130
|
+
code: "winding-impedance-degenerate",
|
|
131
|
+
severity: "error",
|
|
132
|
+
message: `${at} is rated across terminal "${from}" and itself, which measures nothing`,
|
|
133
|
+
componentId: component.id,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
for (const name of rating.across) {
|
|
137
|
+
// A rating across a terminal of a *different* coil is the mistake worth catching:
|
|
138
|
+
// it reads as a valid pair and silently rates the wrong winding.
|
|
139
|
+
if (!seenHere.has(name)) {
|
|
140
|
+
issues.push({
|
|
141
|
+
code: "winding-impedance-terminal-foreign",
|
|
142
|
+
severity: "error",
|
|
143
|
+
message: `${at} is rated across terminal "${name}", which is not on this winding`,
|
|
144
|
+
componentId: component.id,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (!(rating.impedance.value > 0)) {
|
|
149
|
+
issues.push({
|
|
150
|
+
code: "winding-impedance-not-positive",
|
|
151
|
+
severity: "error",
|
|
152
|
+
message: `${at} states ${rating.impedance.value}, and an impedance rating a turns ratio is derived from must be positive`,
|
|
153
|
+
componentId: component.id,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (winding.voltage !== undefined && !(winding.voltage.value > 0)) {
|
|
158
|
+
issues.push({
|
|
159
|
+
code: "winding-voltage-not-positive",
|
|
160
|
+
severity: "error",
|
|
161
|
+
message: `winding "${label}" states voltage ${winding.voltage.value}; a coil's rated AC voltage is an amplitude, so a sign here would state a phase the declaration cannot carry`,
|
|
162
|
+
componentId: component.id,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
124
165
|
}
|
|
125
166
|
for (const terminal of component.terminals) {
|
|
126
167
|
// A shield is deliberately not a coil: it is a grounded foil between windings, and
|
|
@@ -139,6 +180,22 @@ export function validateComponentWindings(component) {
|
|
|
139
180
|
}
|
|
140
181
|
return issues;
|
|
141
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* The rated impedance measured across `from` and `to`, in either order, or null.
|
|
185
|
+
*
|
|
186
|
+
* A consumer asking "what is this tap rated at" and a consumer asking "what is the turns ratio
|
|
187
|
+
* between these two pairs" both start here, and neither has to know which order a document wrote
|
|
188
|
+
* the pair in.
|
|
189
|
+
*/
|
|
190
|
+
export function windingImpedanceAcross(winding, from, to) {
|
|
191
|
+
for (const rating of winding.impedances ?? []) {
|
|
192
|
+
const [a, b] = rating.across;
|
|
193
|
+
if ((a === from && b === to) || (a === to && b === from)) {
|
|
194
|
+
return rating.impedance;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
142
199
|
/** The winding a terminal belongs to, or null. Keyed by terminal name. */
|
|
143
200
|
export function windingOfTerminal(component, terminalName) {
|
|
144
201
|
for (const winding of component.windings ?? []) {
|
|
@@ -159,7 +216,8 @@ export function windingEndsAndTaps(component, winding) {
|
|
|
159
216
|
const ends = [];
|
|
160
217
|
const taps = [];
|
|
161
218
|
for (const name of winding.terminals) {
|
|
162
|
-
|
|
219
|
+
const role = roleOf.get(name);
|
|
220
|
+
(role === "windingTap" || role === "windingCenterTap" ? taps : ends).push(name);
|
|
163
221
|
}
|
|
164
222
|
return { ends, taps };
|
|
165
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windings.js","sourceRoot":"","sources":["../../src/model/windings.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,gGAAgG;AAChG,6FAA6F;AAC7F,0FAA0F;AAC1F,kFAAkF;AAClF,EAAE;AACF,+FAA+F;AAC/F,mFAAmF;AACnF,EAAE;AACF,iGAAiG;AACjG,8FAA8F;AAC9F,kGAAkG;AAClG,EAAE;AACF,iGAAiG;AACjG,4FAA4F;AAC5F,+FAA+F;AAC/F,gBAAgB;AAChB,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"windings.js","sourceRoot":"","sources":["../../src/model/windings.ts"],"names":[],"mappings":"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"}
|