const inputTerminalUid = "af0a65ba-5351-5e31-c509-4264744f3aa3";
const outputTerminalUid = "04440962-5e81-1b1d-a392-5c6605ae578f";
const inputTerminalElement = flux.getNodeById(inputTerminalUid, "elementTerminal"); //P1
const outputTerminalElement = flux.getNodeById(outputTerminalUid, "elementTerminal"); //P2
const voltageOutputNode = flux.createOutputNode("v2");
const currentOutputNode = flux.createOutputNode("a2");
// Setup Event
flux.on("setup", () => {
const current = Number(flux.properties.find((prop) => prop.name === "Current")?.value) || 10;
flux.simulationModel = {
type: "currentSource",
current_value: current,
map_input_to_terminal_uid: inputTerminalUid,
map_output_to_terminal_uid: outputTerminalUid
};
});
// Calculation Event
flux.on("afterStep", () => {
voltageOutputNode.name = "V";
voltageOutputNode.value = Math.abs((outputTerminalElement?.voltage ?? 0) - (inputTerminalElement?.voltage ?? 0));
voltageOutputNode.unit = "V";
voltageOutputNode.displayInline = false;
currentOutputNode.name = "I";
currentOutputNode.value = Number(outputTerminalElement?.current);
currentOutputNode.unit = "A";