generator

package
v1.0.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const AttributeUsedForGenerator = "senergy/local-mqtt"
View Source
const CommandAttribute = "senergy/local-mqtt/cmd-topic-tmpl"
View Source
const EventAttribute = "senergy/local-mqtt/event-topic-tmpl"
View Source
const FileNamePrefix = "generated_"
View Source
const ResponseAttribute = "senergy/local-mqtt/resp-topic-tmpl"

Variables

View Source
var TemplateLocalDeviceIdPlaceholders = []string{"Device", "LocalDeviceId"}
View Source
var TemplateLocalServiceIdPlaceholders = []string{"Service", "LocalServiceId"}

Functions

func EqualTopicDescription

func EqualTopicDescription(a model.TopicDescription, b model.TopicDescription) bool

func FilterDuplicates

func FilterDuplicates(topics []model.TopicDescription) []model.TopicDescription

func GenerateCommandServiceTopicDescriptions

func GenerateCommandServiceTopicDescriptions(device models.Device, service models.Service, truncateDevicePrefix string) (result []model.TopicDescription)

func GenerateDeviceTopicDescriptions

func GenerateDeviceTopicDescriptions(device models.Device, deviceType models.DeviceType, truncateDevicePrefix string) (result []model.TopicDescription)

func GenerateEventServiceTopicDescriptions

func GenerateEventServiceTopicDescriptions(device models.Device, service models.Service, truncateDevicePrefix string) (result []model.TopicDescription)

func GenerateServiceTopicDescriptions

func GenerateServiceTopicDescriptions(device models.Device, service models.Service, truncateDevicePrefix string) (result []model.TopicDescription)

func GenerateTopic

func GenerateTopic(topicTemplate string, deviceId string, serviceId string, truncateDevicePrefix string, attributes []models.Attribute) (result string, err error)

func GenerateTopicDescriptions

func GenerateTopicDescriptions(devices []models.Device, deviceTypes []models.DeviceType, truncateDevicePrefix string) (result []model.TopicDescription)

func GetAttributeValue

func GetAttributeValue(attributes []models.Attribute, key string) (result string, found bool)

func GetDeviceInfos

func GetDeviceInfos(repo *devicerepo.DeviceRepo, searchUrl string, filterDevicesByAttribute string) (devices []models.Device, deviceTypes []models.DeviceType, err error)

GetDeviceInfos returns all device-types with attribute AttributeUsedForGenerator and devices matching a device-type if filterDevicesByAttribute != "" the devices will be filtered by AttributeUsedForGenerator == filterDevicesByAttribute

func PermissionSearch

func PermissionSearch(token string, searchUrl string, query QueryMessage, result interface{}) (err error, code int)

func Store

func Store(descriptions []model.TopicDescription, dir string) (err error)

func StoreFile

func StoreFile(descriptions []model.TopicDescription, fileLocation string) (err error)

Types

type ConditionConfig

type ConditionConfig struct {
	Feature   string             `json:"feature,omitempty"`
	Operation QueryOperationType `json:"operation,omitempty"`
	Value     interface{}        `json:"value,omitempty"`
	Ref       string             `json:"ref,omitempty"`
}

type Permissions

type Permissions struct {
	A bool
	R bool
	W bool
	X bool
}

type QueryCheckIds

type QueryCheckIds struct {
	Ids    []string `json:"ids,omitempty"`
	Rights string   `json:"rights,omitempty"`
}

type QueryFind

type QueryFind struct {
	QueryListCommons
	Search string     `json:"search,omitempty"`
	Filter *Selection `json:"filter,omitempty"`
}

type QueryListCommons

type QueryListCommons struct {
	Limit    int    `json:"limit,omitempty"`
	Offset   int    `json:"offset,omitempty"`
	Rights   string `json:"rights,omitempty"`
	SortBy   string `json:"sort_by,omitempty"`
	SortDesc bool   `json:"sort_desc,omitempty"`
}

type QueryListIds

type QueryListIds struct {
	QueryListCommons
	Ids []string `json:"ids,omitempty"`
}

type QueryMessage

type QueryMessage struct {
	Resource      string         `json:"resource"`
	Find          *QueryFind     `json:"find,omitempty"`
	ListIds       *QueryListIds  `json:"list_ids,omitempty"`
	CheckIds      *QueryCheckIds `json:"check_ids,omitempty"`
	TermAggregate *string        `json:"term_aggregate,omitempty"`
}

type QueryOperationType

type QueryOperationType string
const (
	QueryEqualOperation             QueryOperationType = "=="
	QueryUnequalOperation           QueryOperationType = "!="
	QueryAnyValueInFeatureOperation QueryOperationType = "any_value_in_feature"
)

type Selection

type Selection struct {
	And       []Selection      `json:"and,omitempty"`
	Or        []Selection      `json:"or,omitempty"`
	Not       *Selection       `json:"not,omitempty"`
	Condition *ConditionConfig `json:"condition,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL