Skip to content

Create missing APIs #11

Closed
Closed
@PMeira

Description

@PMeira

Right now, none of the APIs (DSS C-API, COM, DDLL) support all OpenDSS classes.

The alternative is usually to use the DSSProperty API or drop down to the DSS scripting language. Some classes like LineGeometry have non-trivial properties as described in dss-extensions/OpenDSSDirect.py#19.

Exposing the missing classes would be ideal since it would simplify the usage, remove many type conversions, and reduce DSS scripting language usage.

Since adding this to COM would also benefit users that, e.g., run OpenDSS through Microsoft Office or other restrictive contexts that don't allow using the dss_capi DLL, it would be ideal to create a COM version of the new interface classes. This should be done as such that it is easy to integrate in the official OpenDSS repository if desired down the line, while not forcing additional workload on EPRI.

From a quick look comparing the exposed COM classes and the classes listed in DSS.Classes, the following classes are not exposed (ordered loosely based on priority, feedback is welcome),

(To do for v0.10)

  • LineGeometry
  • WireData
  • LineSpacing
  • CNData
  • TSData
  • Reactor

(For v0.11+)

  • Storage (basic version added upstream)
  • StorageController
  • XfmrCode
  • Spectrum
  • Fault
  • ESPVLControl
  • ExpControl
  • GICLine
  • GICTransformer
  • GenDispatcher
  • GrowthShape
  • IndMach012
  • InvControl
  • PriceShape
  • TCC_Curve
  • UPFC
  • UPFCControl
  • VCCS
  • VSConverter

Classes that don't expose all properties (most classes actually, listing only ones with explicit requests):

  • PVSystem
  • Storage

Some classes are not essential since their usage would be rare. There are also auxiliary data classes that are not listed but might be necessary.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions