ArduinoNative

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | LICENSE

commit 25a9eb98850bcbc069d40bb83e464750079e4e42
parent 66a2d2907703ba66402dd17d43393c12a0a441bb
Author: Samdal <samdal@protonmail.com>
Date:   Wed, 23 Jun 2021 21:41:41 +0200

windows compatibility with strcpy_s

Diffstat:
MArduinoNative.hpp | 18+++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/ArduinoNative.hpp b/ArduinoNative.hpp @@ -221,7 +221,11 @@ public: break; buff << (char)this->read(); } - std::strcpy(readbuffer, buff.str().c_str()); +#if defined _WIN32 + strcpy_s(readbuffer, length * sizeof(char), buff.str().c_str()); +#else + strcpy(readbuffer, buff.str().c_str()); +#endif return buff.str().length(); } size_t readBytesUntill(char readbuffer[], unsigned length) @@ -232,7 +236,11 @@ public: break; buff << (char)this->read(); } - std::strcpy(readbuffer, buff.str().c_str()); +#if defined _WIN32 + strcpy_s(readbuffer, length * sizeof(char), buff.str().c_str()); +#else + strcpy(readbuffer, buff.str().c_str()); +#endif return buff.str().length(); } template <typename T> @@ -355,7 +363,7 @@ void pinMode(uint8_t pin, an_pin_mode_t mode) uint16_t analogRead(uint8_t pin) { an_is_pin_defined(pin); - uint16_t val = map(an_pin_voltage[pin], 0.0f, 5.0f, 0, 1023); + uint16_t val = (uint16_t)lround(map(an_pin_voltage[pin], 0.0f, 5.0f, 0, 1023)); val = constrain(val, 0, 1023); #ifdef AN_DEBUG_ANALOGREAD #ifdef AN_DEBUG_TIMESTAMP @@ -422,12 +430,12 @@ void delayMicroseconds(unsigned long microseconds) unsigned long micros() { auto duration = std::chrono::system_clock::now().time_since_epoch(); - return std::chrono::duration_cast<std::chrono::microseconds>(duration).count() - an_start_time_µs; + return (unsigned long)std::chrono::duration_cast<std::chrono::microseconds>(duration).count() - an_start_time_µs; } unsigned long millis() { auto duration = std::chrono::system_clock::now().time_since_epoch(); - return std::chrono::duration_cast<std::chrono::milliseconds>(duration).count() - an_start_time_ms; + return (unsigned long)std::chrono::duration_cast<std::chrono::milliseconds>(duration).count() - an_start_time_ms; } // Random Numbers