Skip to content

Commit 72b491a

Browse files
committed
More fixes
1 parent b84dccc commit 72b491a

File tree

13 files changed

+49
-50
lines changed

13 files changed

+49
-50
lines changed

include/Checksum.h

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
11
#pragma once
22

3+
#include <bit>
4+
#include <concepts>
5+
#include <cstddef>
36
#include <cstdint>
47
#include <memory>
58

6-
#if __cplusplus >= 202'002L
7-
// #error Take into use C++20 std::integral instead of this macro logic
8-
#endif
9-
10-
#define SUM8_INT_FN(Type) \
11-
constexpr uint8_t Sum8(Type data) \
12-
{ \
13-
uint8_t result = 0; \
14-
for (int i = 0; i < sizeof(Type); ++i) { \
15-
result += static_cast<uint8_t>((data >> (i * 8)) & 0xFF); \
16-
} \
17-
return result; \
18-
}
19-
209
namespace OpenShock::Checksum {
10+
11+
// ------------------------------------------------------------
12+
// Raw byte span checksum
13+
// ------------------------------------------------------------
2114
constexpr uint8_t Sum8(const uint8_t* data, std::size_t size)
2215
{
2316
uint8_t checksum = 0;
@@ -26,19 +19,32 @@ namespace OpenShock::Checksum {
2619
}
2720
return checksum;
2821
}
22+
23+
// ------------------------------------------------------------
24+
// Generic integral overload (C++20 concepts)
25+
// ------------------------------------------------------------
26+
template<std::integral T>
27+
constexpr uint8_t Sum8(T value)
28+
{
29+
uint8_t result = 0;
30+
31+
for (std::size_t i = 0; i < sizeof(T); ++i) {
32+
result += static_cast<uint8_t>((value >> (i * 8)) & 0xFF);
33+
}
34+
35+
return result;
36+
}
37+
38+
// ------------------------------------------------------------
39+
// Generic trivially copyable object overload
40+
// ------------------------------------------------------------
2941
template<typename T>
42+
requires(!std::integral<T> && std::is_trivially_copyable_v<T>)
3043
constexpr uint8_t Sum8(const T& data)
3144
{
3245
return Sum8(reinterpret_cast<const uint8_t*>(std::addressof(data)), sizeof(T));
3346
}
3447

35-
SUM8_INT_FN(int16_t)
36-
SUM8_INT_FN(uint16_t)
37-
SUM8_INT_FN(int32_t)
38-
SUM8_INT_FN(uint32_t)
39-
SUM8_INT_FN(int64_t)
40-
SUM8_INT_FN(uint64_t)
41-
4248
/**
4349
* Make sure the uint8 only has its high bits (0x0F) set before using this function
4450
*/

include/wifi/WiFiManager.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,6 @@ namespace OpenShock::WiFiManager {
5959
/// @return True if the hub is connected to a network
6060
bool GetIPAddress(char* ipAddress);
6161

62-
// /// @brief Gets the hubs IP address if it's connected to a network (IPv6)
63-
// /// @param ipAddress Variable to store the IP address in
64-
// /// @return True if the hub is connected to a network
65-
// bool GetIPv6Address(char* ipAddress);
66-
6762
/// @brief Gets a copy of the vector of discovered WiFi networks
6863
/// @return Vector of discovered WiFiNetworks
6964
std::vector<WiFiNetwork> GetDiscoveredWiFiNetworks();

src/serial/command_handlers/authtoken.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ void _handleAuthtokenCommand(std::string_view arg, bool isAutomated)
3636
}
3737
}
3838

39-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::AuthTokenHandler()
39+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::AuthTokenHandler()
4040
{
41-
auto group = OpenShock::Serial::CommandGroup("authtoken"sv);
41+
auto group = OpenShock::SerialCmds::CommandGroup("authtoken"sv);
4242

4343
auto& getCommand = group.addCommand("Get the backend auth token"sv, _handleAuthtokenCommand);
4444

src/serial/command_handlers/domain.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ void _handleDomainCommand(std::string_view arg, bool isAutomated)
6363
esp_restart();
6464
}
6565

66-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::DomainHandler()
66+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::DomainHandler()
6767
{
68-
auto group = OpenShock::Serial::CommandGroup("domain"sv);
68+
auto group = OpenShock::SerialCmds::CommandGroup("domain"sv);
6969

7070
auto& getCommand = group.addCommand("Get the backend domain."sv, _handleDomainCommand);
7171

src/serial/command_handlers/echo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ void _handleSerialEchoCommand(std::string_view arg, bool isAutomated)
3030
}
3131
}
3232

33-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::EchoHandler()
33+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::EchoHandler()
3434
{
35-
auto group = OpenShock::Serial::CommandGroup("echo"sv);
35+
auto group = OpenShock::SerialCmds::CommandGroup("echo"sv);
3636

3737
auto& getCommand = group.addCommand("Get the serial echo status"sv, _handleSerialEchoCommand);
3838

src/serial/command_handlers/hostname.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ void _handleHostnameCommand(std::string_view arg, bool isAutomated)
3030
}
3131
}
3232

33-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::HostnameHandler()
33+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::HostnameHandler()
3434
{
35-
auto group = OpenShock::Serial::CommandGroup("hostname"sv);
35+
auto group = OpenShock::SerialCmds::CommandGroup("hostname"sv);
3636

3737
auto& getCommand = group.addCommand("Get the network hostname."sv, _handleHostnameCommand);
3838

src/serial/command_handlers/jsonconfig.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ void _handleJsonConfigCommand(std::string_view arg, bool isAutomated)
2424
esp_restart();
2525
}
2626

27-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::JsonConfigHandler()
27+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::JsonConfigHandler()
2828
{
29-
auto group = OpenShock::Serial::CommandGroup("jsonconfig"sv);
29+
auto group = OpenShock::SerialCmds::CommandGroup("jsonconfig"sv);
3030

3131
auto& getCommand = group.addCommand("Get the configuration as JSON"sv, _handleJsonConfigCommand);
3232

src/serial/command_handlers/keepalive.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ void _handleKeepAliveCommand(std::string_view arg, bool isAutomated)
3434
}
3535
}
3636

37-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::KeepAliveHandler()
37+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::KeepAliveHandler()
3838
{
39-
auto group = OpenShock::Serial::CommandGroup("keepalive"sv);
39+
auto group = OpenShock::SerialCmds::CommandGroup("keepalive"sv);
4040

4141
auto& getCommand = group.addCommand("Get the shocker keep-alive status"sv, _handleKeepAliveCommand);
4242

src/serial/command_handlers/rawconfig.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ void _handleRawConfigCommand(std::string_view arg, bool isAutomated)
4545
esp_restart();
4646
}
4747

48-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::RawConfigHandler()
48+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::RawConfigHandler()
4949
{
50-
auto group = OpenShock::Serial::CommandGroup("rawconfig"sv);
50+
auto group = OpenShock::SerialCmds::CommandGroup("rawconfig"sv);
5151

5252
auto& getCommand = group.addCommand("Get the raw binary config"sv, _handleRawConfigCommand);
5353

src/serial/command_handlers/restart.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ void _handleRestartCommand(std::string_view arg, bool isAutomated)
1111
esp_restart();
1212
}
1313

14-
OpenShock::Serial::CommandGroup OpenShock::Serial::CommandHandlers::RestartHandler()
14+
OpenShock::SerialCmds::CommandGroup OpenShock::SerialCmds::CommandHandlers::RestartHandler()
1515
{
16-
auto group = OpenShock::Serial::CommandGroup("restart"sv);
16+
auto group = OpenShock::SerialCmds::CommandGroup("restart"sv);
1717

1818
auto& cmd = group.addCommand("Restart the board"sv, _handleRestartCommand);
1919

0 commit comments

Comments
 (0)