Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
E
ems-esp-logger
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jonas Leder
ems-esp-logger
Commits
fa62046e
Commit
fa62046e
authored
1 month ago
by
Jonas Leder
Browse files
Options
Downloads
Patches
Plain Diff
sort keys by alphabet and fix time in csv
parent
1796d852
No related branches found
No related tags found
No related merge requests found
Pipeline
#54468
passed
1 month ago
Stage: build
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
csv/main.go
+12
-9
12 additions, 9 deletions
csv/main.go
helper/sortMapKeys.go
+13
-0
13 additions, 0 deletions
helper/sortMapKeys.go
mqttclient/main.go
+1
-0
1 addition, 0 deletions
mqttclient/main.go
with
26 additions
and
9 deletions
csv/main.go
+
12
−
9
View file @
fa62046e
...
@@ -15,7 +15,7 @@ func JsonToCsv(jsonData string) {
...
@@ -15,7 +15,7 @@ func JsonToCsv(jsonData string) {
panic
(
err
)
panic
(
err
)
}
}
currentDate
:=
time
.
Now
()
.
Format
(
"2006-01-02 1
3:44
"
)
currentDate
:=
time
.
Now
()
.
Local
()
.
Format
(
"2006-01-02 1
5:04:05
"
)
file
,
err
:=
os
.
OpenFile
(
os
.
Getenv
(
"OUTPUT_FILE_NAME"
),
os
.
O_APPEND
|
os
.
O_CREATE
|
os
.
O_WRONLY
,
0644
)
file
,
err
:=
os
.
OpenFile
(
os
.
Getenv
(
"OUTPUT_FILE_NAME"
),
os
.
O_APPEND
|
os
.
O_CREATE
|
os
.
O_WRONLY
,
0644
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -23,28 +23,31 @@ func JsonToCsv(jsonData string) {
...
@@ -23,28 +23,31 @@ func JsonToCsv(jsonData string) {
}
}
defer
file
.
Close
()
defer
file
.
Close
()
// Create a CSV writer
writer
:=
csv
.
NewWriter
(
file
)
writer
:=
csv
.
NewWriter
(
file
)
defer
writer
.
Flush
()
defer
writer
.
Flush
()
// Check if file is empty to write header
fileInfo
,
err
:=
file
.
Stat
()
fileInfo
,
err
:=
file
.
Stat
()
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
// Sort keys for consistent column order
keys
:=
helper
.
SortMapKeys
(
data
)
// Write the header if the file is empty
if
fileInfo
.
Size
()
==
0
{
if
fileInfo
.
Size
()
==
0
{
// Write header
header
:=
append
([]
string
{
"Date"
},
keys
...
)
header
:=
[]
string
{
"Date"
}
for
key
:=
range
data
{
header
=
append
(
header
,
key
)
}
if
err
:=
writer
.
Write
(
header
);
err
!=
nil
{
if
err
:=
writer
.
Write
(
header
);
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
}
}
// Write data
as a single line
with the date
// Write data
row
with the
current
date
row
:=
[]
string
{
currentDate
}
row
:=
[]
string
{
currentDate
}
for
_
,
value
:=
range
data
{
for
_
,
key
:=
range
keys
{
row
=
append
(
row
,
helper
.
AnyToString
(
value
))
row
=
append
(
row
,
helper
.
AnyToString
(
data
[
key
]
))
}
}
if
err
:=
writer
.
Write
(
row
);
err
!=
nil
{
if
err
:=
writer
.
Write
(
row
);
err
!=
nil
{
panic
(
err
)
panic
(
err
)
...
...
This diff is collapsed.
Click to expand it.
helper/sortMapKeys.go
0 → 100644
+
13
−
0
View file @
fa62046e
package
helper
import
"sort"
// Helper function to get sorted keys from a map
func
SortMapKeys
(
data
map
[
string
]
interface
{})
[]
string
{
keys
:=
make
([]
string
,
0
,
len
(
data
))
for
key
:=
range
data
{
keys
=
append
(
keys
,
key
)
}
sort
.
Strings
(
keys
)
// Sort keys alphabetically
return
keys
}
This diff is collapsed.
Click to expand it.
mqttclient/main.go
+
1
−
0
View file @
fa62046e
...
@@ -16,6 +16,7 @@ var messagePubHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Me
...
@@ -16,6 +16,7 @@ var messagePubHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Me
var
messagePubHandlerBoiler
mqtt
.
MessageHandler
=
func
(
client
mqtt
.
Client
,
msg
mqtt
.
Message
)
{
var
messagePubHandlerBoiler
mqtt
.
MessageHandler
=
func
(
client
mqtt
.
Client
,
msg
mqtt
.
Message
)
{
log
.
Log
.
Debugf
(
"Received message for boiler: %s from topic: %s
\n
"
,
msg
.
Payload
(),
msg
.
Topic
())
log
.
Log
.
Debugf
(
"Received message for boiler: %s from topic: %s
\n
"
,
msg
.
Payload
(),
msg
.
Topic
())
log
.
Log
.
Info
(
"Received new boiler data"
)
csv
.
JsonToCsv
(
string
(
msg
.
Payload
()))
csv
.
JsonToCsv
(
string
(
msg
.
Payload
()))
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment