Skip to content
forked from andig/gosunspec

SunSpec domain model and use cases for Go

License

Notifications You must be signed in to change notification settings

LibreWB/gosunspec

 
 

Repository files navigation

SunSpec tools for Go

This package contains Go data types representing the SunSpec information model. Subpackages implement particular use-cases that rely on this domain model:

  • /impl contains the types used by the remainder of the library
  • /smdx contains types that represent (XML) SMDX models defined by the Sunspec specification
  • /generators implements code generators that transform the SMDX models into Go code
  • /models contains one generated package for each SMDX model
  • /xml contains utilities for exchanging SunSpec data using XML format
  • /modbus contains utilities for talking to SunSpec devices via Modbus TCP

This implementation is based on the original work from crabmusket/gosunspec.

Generated code

This package uses typesafe representations of each model type. To avoid excessive manual maintenance, structs for each type of model defined by SunSpec are generated from the SMDX model files. To regenerate this code, first initialise the spec submodule with:

git submodule update --init spec

And from the spec directory:

git pull origin master

Then run the generators:

go generate ./models

About

SunSpec domain model and use cases for Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%