Added BaseMessages with messageid

This commit is contained in:
simon 2025-04-27 12:57:42 +02:00
parent 09e2afe329
commit 73a7c8469a
3 changed files with 19 additions and 3 deletions

View File

@ -27,7 +27,7 @@ type ProtoMessage struct {
type ProtoMessagePayload struct { type ProtoMessagePayload struct {
Name string `json:"name"` Name string `json:"name"`
DataType string `json:"type"` DataType string `json:"type"`
ArrayLength int `json:"array,omitempty"` ArrayLength int `json:"array,omitempty"` // optional falls kein array
} }
type Proto struct { type Proto struct {

View File

@ -31,6 +31,20 @@ typedef union {
} PayloadUnion; } PayloadUnion;
{{end}} {{end}}
{{define "basemessage"}}
typdef struct {
uint8_t version;
MessageID {{.CenumPCTOESP.EnumName}};
PayloadUnion payload;
} PCTOESPBaseMessage;
typdef struct {
uint8_t version;
MessageID {{.CenumESPTOPC.EnumName}};
PayloadUnion payload;
} ESPTOPCBaseMessage;
{{end}}
{{define "handler"}} {{define "handler"}}
{{- range . }} {{- range . }}
void (*on_{{ .Name | snake }})({{ .Name }}Payload*) = NULL; void (*on_{{ .Name | snake }})({{ .Name }}Payload*) = NULL;
@ -38,7 +52,7 @@ void (*on_{{ .Name | snake }})({{ .Name }}Payload*) = NULL;
{{end}} {{end}}
{{define "dispatcher"}} {{define "dispatcher"}}
void dispatch_message(uint8_t msg_id, void* payload) { void dispatch_message(uint8_t msg_id, void *payload) {
switch (msg_id) { switch (msg_id) {
{{- range . }} {{- range . }}
case {{ .Name }}: case {{ .Name }}:
@ -55,7 +69,7 @@ void dispatch_message(uint8_t msg_id, void* payload) {
{{define "send_functions"}} {{define "send_functions"}}
{{- range .}} {{- range .}}
{{ $argLen := len .Payload }} {{ $argLen := len .Payload }}
void send_{{.Name | snake}}({{- range $i, $p := .Payload}}{{$p.DataType}} {{$p.Name}} {{- if not (isLast $argLen $i) }}, {{ end}} {{- end}}) { void send_{{.Name | snake}}({{- range $i, $p := .Payload}}{{$p.DataType}} {{if .ArrayLength}}*{{end}}{{$p.Name}} {{- if not (isLast $argLen $i) }}, {{ end}} {{- end}}) {
{{.Name}}Payload payload; {{.Name}}Payload payload;
// Payload-Daten zuweisen // Payload-Daten zuweisen

View File

@ -11,5 +11,7 @@
{{ block "union" .PayloadStructs }} {{ end }} {{ block "union" .PayloadStructs }} {{ end }}
{{ block "basemessage" . }} {{ end }}
#endif #endif
{{- end -}} {{- end -}}