|
| 1 | +import type { IOpenCORSimulationDataValue } from '../../index.ts'; |
| 2 | + |
1 | 3 | import * as locApi from '../libopencor/locApi.ts'; |
2 | 4 |
|
3 | 5 | import * as common from './common.ts'; |
@@ -341,23 +343,44 @@ export const simulationDataInfo = (instanceTask: locApi.SedInstanceTask, name: s |
341 | 343 | }; |
342 | 344 | }; |
343 | 345 |
|
344 | | -// A method to retrieve the simulation data for a given name from an instance task. |
| 346 | +// A method to retrieve the simulation data value for a given name from an instance task. |
345 | 347 |
|
346 | | -export const simulationData = (instanceTask: locApi.SedInstanceTask, info: ISimulationDataInfo): Float64Array => { |
| 348 | +export const simulationDataValue = ( |
| 349 | + instanceTask: locApi.SedInstanceTask, |
| 350 | + info: ISimulationDataInfo |
| 351 | +): IOpenCORSimulationDataValue => { |
347 | 352 | switch (info.type) { |
348 | 353 | case ESimulationDataInfoType.VOI: |
349 | | - return instanceTask.voi(); |
| 354 | + return { |
| 355 | + data: instanceTask.voi(), |
| 356 | + unit: instanceTask.voiUnit() |
| 357 | + }; |
350 | 358 | case ESimulationDataInfoType.STATE: |
351 | | - return instanceTask.state(info.index); |
| 359 | + return { |
| 360 | + data: instanceTask.state(info.index), |
| 361 | + unit: instanceTask.stateUnit(info.index) |
| 362 | + }; |
352 | 363 | case ESimulationDataInfoType.RATE: |
353 | | - return instanceTask.rate(info.index); |
| 364 | + return { |
| 365 | + data: instanceTask.rate(info.index), |
| 366 | + unit: instanceTask.rateUnit(info.index) |
| 367 | + }; |
354 | 368 | case ESimulationDataInfoType.CONSTANT: |
355 | | - return instanceTask.constant(info.index); |
| 369 | + return { |
| 370 | + data: instanceTask.constant(info.index), |
| 371 | + unit: instanceTask.constantUnit(info.index) |
| 372 | + }; |
356 | 373 | case ESimulationDataInfoType.COMPUTED_CONSTANT: |
357 | | - return instanceTask.computedConstant(info.index); |
| 374 | + return { |
| 375 | + data: instanceTask.computedConstant(info.index), |
| 376 | + unit: instanceTask.computedConstantUnit(info.index) |
| 377 | + }; |
358 | 378 | case ESimulationDataInfoType.ALGEBRAIC: |
359 | | - return instanceTask.algebraicVariable(info.index); |
| 379 | + return { |
| 380 | + data: instanceTask.algebraicVariable(info.index), |
| 381 | + unit: instanceTask.algebraicVariableUnit(info.index) |
| 382 | + }; |
360 | 383 | default: |
361 | | - return new Float64Array(); |
| 384 | + return { ...common.UNDEFINED_SIMULATION_DATA_VALUE }; |
362 | 385 | } |
363 | 386 | }; |
0 commit comments