dataString=now(); werkt niet meer in Arduino>1.

Sinds ik Arduino 1.0 gebruik werkt het volgende niet meer bij mij:

String dataString()="";
...
dataString=now();

Ik krijg als foutmelding:
invalid conversion from 'int' to 'const char*'

Maar de Stringfunctie kan toch iedere conversie aan? In Arduino 23 werkte het prima.
Ik kan in de release notes niets vinden.
Wat is er aan de hand?
Met vriendelijke groet,
Bernard

een interface change.

Lees de release notes van 1.0.0 - 1.0.3 om de details te zien.

Verder is het (imho) in strong typed languages niet verstandig om impliciete conversies te doen.

Beste Rob,
dank voor je antwoord. Ik heb de release notes nogmaals doogespit, maar kan niets vinden dat met String te maken heeft.
Wat bedoel je met "interface change"?
Wat betekent imho?
En ik weet ook niet wat een strong typed languages is.
Dus, misschien kun je mij verder op weg helpen?
Met vriendelijke groet,

Bernard47:
Beste Rob,
Wat betekent imho?

Dat is een afkorting die veelvuldig op het internet word gebezigd.

Imho = "In My Humble Opinion" oftewel "naar mijn bescheiden mening".

Hij past in het rijtje van LOL en LMAO.

OK, maar nu de conversie nog. Heb je daar nog een antwoord op?

Een interface change betekent dat de manier waarop je een bepaalde classe in een programmeertaal gebruikt veranderd is. Dit is vaak een uitbreiding van mogelijkheden maar soms werkt oude code niet meer.

En ik weet ook niet wat een strong typed languages is.

Een string typed language is een programmeertaal waarbij je van elke variabele het type kent en waarbij assignments (toekenningen) tussen verschillende datatypes aan strenge regels gebonden zijn.

een integerkun je in zo'n taal aan een long toekennen zonder dat er verlies van precisie optreedt. Van een long naar een integer toe past niet altijd en kan er verlies van gegevens optreden.

Toekenningen tussen types integer en string of tussen DateTime en string kunnen zelden impliciet en moeten expliciet gemaakt worden. BIjvoorbeeld

DateTime now = DateTime.Time();
String s = now.toString();

LET OP dit is geen arduino C++ :wink:

Meer over typed programmeertalen => wikipedia

Kun je je hele programma posten, dan kan ik kijken waar het probleem zit. 2 regels is te summier om serieus te debuggen.

Dat ga ik eens proberen.
met

 gaat het niet; te lang programma.
Kan ik het niet als bijlage meesturen?

Maar als het niet verstandig is de conversie op mijn manier te doen, wat is dan de juiste manier op de datum now() als tekst op te slaan op een SD kaart?

Ik heb het als volgt opgelost:
dataString=String(now());

Is dit een nette conversie, Rob?

Bernard47:
Ik heb het als volgt opgelost:
dataString=String(now());

Is dit een nette conversie, Rob?

Ja

Helemaal prima.
Nu is de conversie expliciet gemaakt. Als de string class deze conversie niet ondersteunt geeft de compiler een foutmelding.