Difference between revisions of "Programming"

From The TinkerNet Wiki
Jump to navigation Jump to search
Line 65: Line 65:
 
[https://playground.arduino.cc/Main/PROGMEM PROGMEM]
 
[https://playground.arduino.cc/Main/PROGMEM PROGMEM]
  
==Stupid Library Compile Warnings!!!==
+
=='''STUPID''' Library Compile Warnings!!!==
===PubSubClient (2.8.0)===
+
===Arduino Libraries===
 +
====PubSubClient (2.8.0)====
 
<syntaxhighlight>
 
<syntaxhighlight>
 
.pio/libdeps/SugarBush_SS_Climate_BME280/PubSubClient/src/PubSubClient.cpp: In member function 'boolean PubSubClient::publish_P(const char*, const uint8_t*, unsigned int, boolean)':
 
.pio/libdeps/SugarBush_SS_Climate_BME280/PubSubClient/src/PubSubClient.cpp: In member function 'boolean PubSubClient::publish_P(const char*, const uint8_t*, unsigned int, boolean)':
Line 78: Line 79:
 
'''FIX:''' Add <code>unsigned</code> to the definition of <code>expectedLength</code> on line 487
 
'''FIX:''' Add <code>unsigned</code> to the definition of <code>expectedLength</code> on line 487
  
===SimpleTimer (0.0.0-alpha+sha.b30890b8f7)===
+
====SimpleTimer (0.0.0-alpha+sha.b30890b8f7)====
 
<syntaxhighlight>
 
<syntaxhighlight>
 
.pio/libdeps/SugarBush_SS_Climate_BME280/SimpleTimer/SimpleTimer.cpp: In member function 'void SimpleTimer::run()':
 
.pio/libdeps/SugarBush_SS_Climate_BME280/SimpleTimer/SimpleTimer.cpp: In member function 'void SimpleTimer::run()':

Revision as of 16:43, 29 March 2021

Atom as a full IDE

bash

Dialogs

Some Links

C

C++

(Apparently, a language designed to make C programmers lose their minds...)

Converting numbers to strings

Problem Solving

  • Error] cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '…'

Processing

JavaScript

Arduino (Language)

Data Type Conversions

char* to String

char *message = "Hello";
String myString = String(message);

String to char*

Messing about with strings & not Strings

http://www.cplusplus.com/reference/cstring/

Specifically: strcat

Memory Saving

PROGMEM

STUPID Library Compile Warnings!!!

Arduino Libraries

PubSubClient (2.8.0)

.pio/libdeps/SugarBush_SS_Climate_BME280/PubSubClient/src/PubSubClient.cpp: In member function 'boolean PubSubClient::publish_P(const char*, const uint8_t*, unsigned int, boolean)':

.pio/libdeps/SugarBush_SS_Climate_BME280/PubSubClient/src/PubSubClient.cpp:523:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

     return (rc == expectedLength);
                   ^

FIX: Add unsigned to the definition of expectedLength on line 487

SimpleTimer (0.0.0-alpha+sha.b30890b8f7)

.pio/libdeps/SugarBush_SS_Climate_BME280/SimpleTimer/SimpleTimer.cpp: In member function 'void SimpleTimer::run()':
 
.pio/libdeps/SugarBush_SS_Climate_BME280/SimpleTimer/SimpleTimer.cpp:66:60: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

if (current_millis - prev_millis[i] >= delays[i]) {
                                               ^

FIX: Add unsigned to the definition of delays[] on line 106 of SimpleTimer.h

Troubleshooting

When trying to compile things on a Linux machine...

You get silly-ass errors like fatal error: stdio.h: No such file or directory or other files missing that just don't make ANY sense...

  • sudo apt update
  • sudo apt install --reinstall build-essential

'Coz sumpin' borked yer compiler install...