Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
co2ampel
ampel-firmware
Commits
6ae78c3c
Commit
6ae78c3c
authored
Apr 18, 2021
by
Eric Duminil
Browse files
Slowly replacing Strings by C strings
parent
58daf119
Changes
14
Hide whitespace changes
Inline
Side-by-side
ampel-firmware/co2_sensor.cpp
View file @
6ae78c3c
...
...
@@ -22,7 +22,7 @@ namespace sensor {
uint16_t
co2
=
0
;
float
temperature
=
0
;
float
humidity
=
0
;
String
timestamp
=
""
;
char
timestamp
[
23
]
;
int16_t
stable_measurements
=
0
;
uint32_t
waiting_color
=
color
::
blue
;
bool
should_calibrate
=
false
;
...
...
@@ -168,7 +168,7 @@ namespace sensor {
if
(
freshData
)
{
// checkTimerDeviation();
timestamp
=
ntp
::
getLocalTime
();
ntp
::
getLocalTime
(
timestamp
);
co2
=
scd30
.
getCO2
();
temperature
=
scd30
.
getTemperature
();
humidity
=
scd30
.
getHumidity
();
...
...
ampel-firmware/co2_sensor.h
View file @
6ae78c3c
...
...
@@ -22,7 +22,7 @@ namespace sensor {
extern
uint16_t
co2
;
extern
float
temperature
;
extern
float
humidity
;
extern
String
timestamp
;
extern
char
timestamp
[
23
]
;
void
initialize
();
bool
processData
();
...
...
ampel-firmware/config.public.h
View file @
6ae78c3c
...
...
@@ -144,7 +144,7 @@
*/
# define NTP_SERVER "pool.ntp.org"
# define UTC_OFFSET_IN_SECONDS
36
00 // [s] 3600 for UTC+1
# define UTC_OFFSET_IN_SECONDS
72
00 // [s] 3600 for UTC+1
, 7200 for UTC+1 and daylight saving time
/**
* Others
...
...
ampel-firmware/csv_writer.cpp
View file @
6ae78c3c
...
...
@@ -6,7 +6,7 @@ namespace config {
}
namespace
csv_writer
{
unsigned
long
last_written_at
=
0
;
String
last_successful_write
=
""
;
char
last_successful_write
[
23
]
;
#if defined(ESP8266)
/**
...
...
@@ -145,7 +145,7 @@ namespace csv_writer {
}
else
{
Serial
.
print
(
F
(
"CSV - Wrote : "
));
Serial
.
print
(
csv_line
);
last_successful_write
=
ntp
::
getLocalTime
(
);
ntp
::
getLocalTime
(
last_successful_write
);
}
updateFsInfo
();
delay
(
50
);
...
...
ampel-firmware/csv_writer.h
View file @
6ae78c3c
...
...
@@ -20,7 +20,7 @@ namespace config {
extern
uint16_t
csv_interval
;
// [s]
}
namespace
csv_writer
{
extern
String
last_successful_write
;
extern
char
last_successful_write
[
23
]
;
void
initialize
();
void
logIfTimeHasCome
(
const
String
&
timeStamp
,
const
int16_t
&
co2
,
const
float
&
temperature
,
const
float
&
humidity
);
int
getAvailableSpace
();
...
...
ampel-firmware/lorawan.cpp
View file @
6ae78c3c
...
...
@@ -33,7 +33,7 @@ void os_getDevKey(u1_t *buf) {
namespace
lorawan
{
bool
waiting_for_confirmation
=
false
;
bool
connected
=
false
;
String
last_transmission
=
""
;
char
last_transmission
[
23
]
=
""
;
void
initialize
()
{
Serial
.
println
(
F
(
"Starting LoRaWAN. Frequency plan : "
LMIC_FREQUENCY_PLAN
" MHz."
));
...
...
@@ -65,8 +65,10 @@ namespace lorawan {
}
void
onEvent
(
ev_t
ev
)
{
char
current_time
[
23
];
ntp
::
getLocalTime
(
current_time
);
Serial
.
print
(
"LoRa - "
);
Serial
.
print
(
ntp
::
getLocalT
ime
()
);
Serial
.
print
(
current_t
ime
);
Serial
.
print
(
" - "
);
switch
(
ev
)
{
case
EV_JOINING
:
...
...
@@ -113,7 +115,7 @@ namespace lorawan {
Serial
.
println
(
F
(
"EV_REJOIN_FAILED"
));
break
;
case
EV_TXCOMPLETE
:
last_transmission
=
ntp
::
getLocalTime
();
ntp
::
getLocalTime
(
last_transmission
);
Serial
.
println
(
F
(
"EV_TXCOMPLETE"
));
break
;
case
EV_TXSTART
:
...
...
ampel-firmware/lorawan.h
View file @
6ae78c3c
...
...
@@ -39,7 +39,7 @@ namespace config {
namespace
lorawan
{
extern
bool
waiting_for_confirmation
;
extern
bool
connected
;
extern
String
last_transmission
;
extern
char
last_transmission
[]
;
void
initialize
();
void
process
();
void
preparePayloadIfTimeHasCome
(
const
int16_t
&
co2
,
const
float
&
temp
,
const
float
&
hum
);
...
...
ampel-firmware/mqtt.cpp
View file @
6ae78c3c
...
...
@@ -25,7 +25,7 @@ namespace mqtt {
String
publish_topic
;
const
char
*
json_sensor_format
;
String
last_successful_publish
=
""
;
char
last_successful_publish
[
23
]
=
""
;
void
initialize
(
String
&
topic
)
{
json_sensor_format
=
PSTR
(
"{
\"
time
\"
:
\"
%s
\"
,
\"
co2
\"
:%d,
\"
temp
\"
:%.1f,
\"
rh
\"
:%.1f}"
);
...
...
@@ -51,7 +51,7 @@ namespace mqtt {
// Topic is the same as clientID. e.g. 'CO2sensors/ESP3d03da'
if
(
mqttClient
.
publish
(
publish_topic
.
c_str
(),
payload
))
{
Serial
.
println
(
F
(
"OK"
));
last_successful_publish
=
ntp
::
getLocalTime
(
);
ntp
::
getLocalTime
(
last_successful_publish
);
}
else
{
Serial
.
println
(
F
(
"Failed."
));
}
...
...
ampel-firmware/mqtt.h
View file @
6ae78c3c
...
...
@@ -11,7 +11,7 @@ namespace config {
extern
uint16_t
mqtt_sending_interval
;
// [s]
}
namespace
mqtt
{
extern
String
last_successful_publish
;
extern
char
last_successful_publish
[]
;
extern
bool
connected
;
void
initialize
(
String
&
topic
);
void
keepConnection
();
...
...
ampel-firmware/src/lib/NTPClient-master/NTPClient.cpp
View file @
6ae78c3c
...
...
@@ -164,7 +164,7 @@ String NTPClient::getFormattedTime(unsigned long secs) {
}
// Based on https://github.com/PaulStoffregen/Time/blob/master/Time.cpp
String
NTPClient
::
getFormattedDate
(
unsigned
long
secs
)
{
void
NTPClient
::
getFormattedDate
(
char
*
formatted_date
,
unsigned
long
secs
)
{
unsigned
long
rawTime
=
(
secs
?
secs
:
this
->
getEpochTime
())
/
86400L
;
// in days
unsigned
long
days
=
0
,
year
=
1970
;
uint8_t
month
;
...
...
@@ -187,11 +187,8 @@ String NTPClient::getFormattedDate(unsigned long secs) {
month
++
;
// jan is month 1
rawTime
++
;
// first day is day 1
char
formatted_date
[
23
];
snprintf
(
formatted_date
,
sizeof
(
formatted_date
),
"%4lu-%02d-%02lu %s%+03d"
,
snprintf
(
formatted_date
,
23
,
"%4lu-%02d-%02lu %s%+03d"
,
year
,
month
,
rawTime
,
this
->
getFormattedTime
(
secs
).
c_str
(),
this
->
_timeOffset
/
3600
);
return
String
(
formatted_date
);
}
void
NTPClient
::
end
()
{
...
...
ampel-firmware/src/lib/NTPClient-master/NTPClient.h
View file @
6ae78c3c
...
...
@@ -91,7 +91,7 @@ class NTPClient {
* @return secs argument (or 0 for current date) formatted to ISO 8601
* like `2004-02-12T15:19:21+00:00`
*/
String
getFormattedDate
(
unsigned
long
secs
=
0
);
void
getFormattedDate
(
char
*
formatted_date
,
unsigned
long
secs
=
0
);
/**
* Stops the underlying UDP client
...
...
ampel-firmware/util.cpp
View file @
6ae78c3c
...
...
@@ -33,8 +33,8 @@ namespace ntp {
timeClient
.
update
();
}
String
getLocalTime
()
{
return
timeClient
.
getFormattedDate
();
void
getLocalTime
(
char
*
timestamp
)
{
timeClient
.
getFormattedDate
(
timestamp
);
}
}
...
...
ampel-firmware/util.h
View file @
6ae78c3c
...
...
@@ -21,7 +21,7 @@
namespace
ntp
{
void
initialize
();
void
update
();
String
getLocalTime
();
void
getLocalTime
(
char
*
timestamp
);
}
namespace
util
{
...
...
ampel-firmware/web_server.cpp
View file @
6ae78c3c
...
...
@@ -226,15 +226,15 @@ namespace web_server {
// Body
snprintf_P
(
content
,
sizeof
(
content
),
body_template
,
SENSOR_ID
.
c_str
(),
sensor
::
co2
,
sensor
::
temperature
,
sensor
::
humidity
,
sensor
::
timestamp
.
c_str
()
,
config
::
measurement_timestep
,
sensor
::
humidity
,
sensor
::
timestamp
,
config
::
measurement_timestep
,
#ifdef AMPEL_CSV
csv_writer
::
last_successful_write
.
c_str
()
,
config
::
csv_interval
,
csv_writer
::
getAvailableSpace
()
/
1024
,
csv_writer
::
last_successful_write
,
config
::
csv_interval
,
csv_writer
::
getAvailableSpace
()
/
1024
,
#endif
#ifdef AMPEL_MQTT
mqtt
::
connected
?
"Yes"
:
"No"
,
mqtt
::
last_successful_publish
.
c_str
()
,
config
::
mqtt_sending_interval
,
mqtt
::
connected
?
"Yes"
:
"No"
,
mqtt
::
last_successful_publish
,
config
::
mqtt_sending_interval
,
#endif
#if defined(AMPEL_LORAWAN) && defined(ESP32)
lorawan
::
connected
?
"Yes"
:
"No"
,
LMIC_FREQUENCY_PLAN
,
lorawan
::
last_transmission
.
c_str
()
,
lorawan
::
connected
?
"Yes"
:
"No"
,
LMIC_FREQUENCY_PLAN
,
lorawan
::
last_transmission
,
config
::
lorawan_sending_interval
,
#endif
config
::
temperature_offset
,
config
::
auto_calibrate_sensor
?
"Yes"
:
"No"
,
SENSOR_ID
.
c_str
(),
SENSOR_ID
.
c_str
(),
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment