You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/08/05 11:56:12 UTC
[plc4x] 01/02: refactor(plc4go): added a IsAPlcMessage() bool method to plc_message
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 65adaaaa38e300e9af83d32c8f0ec92253c0bcb7
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Aug 5 13:21:09 2022 +0200
refactor(plc4go): added a IsAPlcMessage() bool method to plc_message
---
plc4go/internal/spi/model/DefaultBrowseRequest.go | 15 ++++++++-------
plc4go/internal/spi/model/DefaultRequest.go | 4 ++++
plc4go/internal/spi/model/DefaultResponse.go | 4 ++++
plc4go/pkg/api/model/plc_message.go | 1 +
plc4go/tools/plc4xbrowser/commands.go | 3 +++
plc4go/tools/plc4xbrowser/config.go | 2 ++
plc4go/tools/plc4xbrowser/ui.go | 1 +
7 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/plc4go/internal/spi/model/DefaultBrowseRequest.go b/plc4go/internal/spi/model/DefaultBrowseRequest.go
index f80a13917..03a253857 100644
--- a/plc4go/internal/spi/model/DefaultBrowseRequest.go
+++ b/plc4go/internal/spi/model/DefaultBrowseRequest.go
@@ -50,10 +50,18 @@ func (m *DefaultPlcBrowseRequestBuilder) Build() (model.PlcBrowseRequest, error)
}
type DefaultPlcBrowseRequest struct {
+ DefaultRequest
queries map[string]string
browser spi.PlcBrowser
}
+func NewDefaultPlcBrowseResponse(request model.PlcBrowseRequest, results map[string][]model.PlcBrowseQueryResult) DefaultPlcBrowseResponse {
+ return DefaultPlcBrowseResponse{
+ request: request,
+ results: results,
+ }
+}
+
func (d DefaultPlcBrowseRequest) GetQueryNames() []string {
var queryNames []string
for queryName := range d.queries {
@@ -79,13 +87,6 @@ type DefaultPlcBrowseResponse struct {
results map[string][]model.PlcBrowseQueryResult
}
-func NewDefaultPlcBrowseResponse(request model.PlcBrowseRequest, results map[string][]model.PlcBrowseQueryResult) DefaultPlcBrowseResponse {
- return DefaultPlcBrowseResponse{
- request: request,
- results: results,
- }
-}
-
func (d DefaultPlcBrowseResponse) GetRequest() model.PlcBrowseRequest {
return d.request
}
diff --git a/plc4go/internal/spi/model/DefaultRequest.go b/plc4go/internal/spi/model/DefaultRequest.go
index 27eae24c5..ce1993b4d 100644
--- a/plc4go/internal/spi/model/DefaultRequest.go
+++ b/plc4go/internal/spi/model/DefaultRequest.go
@@ -26,6 +26,10 @@ type DefaultRequest struct {
fieldNames []string
}
+func (m DefaultRequest) IsAPlcMessage() bool {
+ return true
+}
+
func NewDefaultRequest(Fields map[string]model.PlcField, FieldNames []string) DefaultRequest {
return DefaultRequest{Fields, FieldNames}
}
diff --git a/plc4go/internal/spi/model/DefaultResponse.go b/plc4go/internal/spi/model/DefaultResponse.go
index 530c8acdf..2d3ff5666 100644
--- a/plc4go/internal/spi/model/DefaultResponse.go
+++ b/plc4go/internal/spi/model/DefaultResponse.go
@@ -25,6 +25,10 @@ type DefaultResponse struct {
responseCodes map[string]model.PlcResponseCode
}
+func (m DefaultResponse) IsAPlcMessage() bool {
+ return true
+}
+
func (m DefaultResponse) GetResponseCode(name string) model.PlcResponseCode {
return m.responseCodes[name]
}
diff --git a/plc4go/pkg/api/model/plc_message.go b/plc4go/pkg/api/model/plc_message.go
index 7242f0e4b..834323281 100644
--- a/plc4go/pkg/api/model/plc_message.go
+++ b/plc4go/pkg/api/model/plc_message.go
@@ -20,4 +20,5 @@
package model
type PlcMessage interface {
+ IsAPlcMessage() bool
}
diff --git a/plc4go/tools/plc4xbrowser/commands.go b/plc4go/tools/plc4xbrowser/commands.go
index 6a77134b4..7afb90fe2 100644
--- a/plc4go/tools/plc4xbrowser/commands.go
+++ b/plc4go/tools/plc4xbrowser/commands.go
@@ -29,6 +29,7 @@ import (
"github.com/rs/zerolog/log"
"net/url"
"strings"
+ "time"
)
const rootCommandIndicator = "rootCommand"
@@ -156,7 +157,9 @@ var rootCommand = Command{
AddEventQuery("subscriptionField", split[1]).
AddItemHandler(func(event model.PlcSubscriptionEvent) {
messagesReceived++
+ start := time.Now()
_, _ = fmt.Fprintf(messageOutput, "[\"%d\"]\n%s[\"\"]", messagesReceived, event)
+ plc4xBrowserLog.Debug().Msgf("write took %f seconds", time.Now().Sub(start).Seconds())
}).
Build()
if err != nil {
diff --git a/plc4go/tools/plc4xbrowser/config.go b/plc4go/tools/plc4xbrowser/config.go
index 13313402f..24da0242c 100644
--- a/plc4go/tools/plc4xbrowser/config.go
+++ b/plc4go/tools/plc4xbrowser/config.go
@@ -41,6 +41,8 @@ type Config struct {
AutoRegisterDrivers []string `yaml:"auto_register_driver"`
LastUpdated time.Time `yaml:"last_updated"`
LogLevel string `yaml:"log_level"`
+ MaxConsoleLines int `yaml:"max_console_lines"`
+ MaxOutputLines int `yaml:"max_output_lines"`
}
func init() {
diff --git a/plc4go/tools/plc4xbrowser/ui.go b/plc4go/tools/plc4xbrowser/ui.go
index 39ac34fdf..e9cad8fdf 100644
--- a/plc4go/tools/plc4xbrowser/ui.go
+++ b/plc4go/tools/plc4xbrowser/ui.go
@@ -248,6 +248,7 @@ func buildOutputArea(newPrimitive func(text string) tview.Primitive, application
{
consoleView := tview.NewTextView().
SetDynamicColors(true).
+ SetMaxLines(config.MaxConsoleLines).
SetChangedFunc(func() {
application.Draw()
})