#define ipAddress in Tab und einbinden im Hauptprogramm

Hallo, ich habe bisher alles erlesen, komme aber hier ohne Hilfe nicht weiter.

Ich will - besser ich habe einen WebServer programmiert.
Zur besseren Übersicht usw. verwende ich neuerdings TABs. Bisher funktioniert das sehr gut.
Ich scheitere daran, folgendes ins Hauptprogramm und in TAB aufzuteilen.
// IPAddress ip(192, 168, 210, 20);
// IPAddress dns(192, 168, 210, 1);
// IPAddress gateway(192, 168, 210, 1);
// IPAddress subnet(255, 255, 255, 0);
// WiFi.config(ip, dns, gateway, subnet);

Im Hauptprogramm sollte dann
WiFi.config(ip, dns, gateway, subnet);
stehen.

Und im Setup.h TAB:
'#define ip "192, 168, 210, 20"
#define dns "192, 168, 210, 1"
#define gateway "192, 168, 210, 1"
#define subnet "255, 255, 255, 0"'

jedoch bekomme ich nur Fehlermeldungen.
Ich habe gefühlte 100 Varianten versucht.
Wie bitte ist der Syntax richtig?

danke
tom

Und davor natürlich

#include "Setup.h"

damit der Compiler weiß, wo er die Definitionen finden kann.

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.

#define ist einfach eine Textersetzung. Dann ist ip ein String-Literal, was wohl nicht ist was du willst

Du solltest besser die auskommentierten IP-Definitionen, anstelle der #defines benutzen.

Gruß Tommy

In deiner "setup.h" sollte dann z.B. stehen:

const char static_ip[16] = "192.168.1.100";

Das auch für die übrigen IPs mit passendem Namen.

Im connect-Bereich steht dann:

  IPAddress _ip, _gw, _sn, _dn;                     
  _ip.fromString(static_ip);
  _gw.fromString(static_gw);
  _sn.fromString(static_sn);
  _dn.fromString(static_dn);

Vergiss nicht die "setup.h" zu includieren.

Besten Dank an alle!!! Es funktioniert.
Ich hab jetzt ...
Im setup.h (Welches natürlich mit #include "setup.h" im Main eingebunden ist :wink:

const char STATIC_IP[16] = "192.168.210.20";
const char STATIC_SUBNET[16] = "255.255.255.0";
const char STATIC_DNS[16] = "192.168.210.1";
const char STATIC_GATEWAY[16] = "192.168.210.1";

und im connect TAB

//Statische IP Adresse festlegen - Config jeweils im Modul TAB
    IPAddress _ip, _gw, _sn, _dn;                     
    _ip.fromString(STATIC_IP);
    _gw.fromString(STATIC_GATEWAY);
    _sn.fromString(STATIC_SUBNET);
    _dn.fromString(STATIC_DNS);
  
   WiFi.config(_ip, _dn, _gw, _sn);

Jetzt aber bitte doch noch die Frage:

Ich habe wie geschrieben alles in TABs aufgeteilt.
Dort vergebe ich unter anderem auch IP Adressen für HTTP-Server. Folgend:
Im setup.h

 #define MQTT_SERVER "192.168.210.101"
 #define MQTT_SERVER_PORT 1883

Im Main Tab
client.setServer(MQTT_SERVER, MQTT_SERVER_PORT);

Warum bitte funktioniert das für/mit der Statische IP Adresse, DNS usw. nicht genauso?
Ich will das verstehen und lernen - Danke

Gruß
Tom

Ok - sorry!
Ehmm - das deutsche Forum ist

https://www.arduinoforum.de/member.php

Da funktioniert aber mein Login nicht. Irgendwie bin ich jetzt sehr verwirrt.
Wenn ich mich neu Anmelde, ist zumindest der aktuelle Beitrag nicht mehr meiner?
Wie regele ich das?
Gruß
Tom

alter Schwede.

[url]https://www.arduinoforum.de/[/url]

ist eine GANZ ANDERE DOMAIN. ein ganz anderes Forum. Das hat nichts mit arduino.cc zu tun.

Du hast ursprünglich in einem falschen Unterforum hier auf arduino.cc gepostet.
Perry hat dir den Beitrag hier her zu
[url]https://forum.arduino.cc/c/international/deutsch/47[/url]
verschoben.
Das ist immer noch arduino.cc und hat nichts mit arduinoforum.de zu tun.

beim nächsten mal einfach besser aufpassen wenn du ein neues Thema aufmachst.
in den meisten Foren hier auf arduino.cc wird englisch geschrieben.
Nur in den Internationalen sind andere Sprachen erwünscht.

Na prima, dann kannst du das Thema als erledigt kennzeichnen.

Weil bei der Anmeldung ein anderes Format der jeweiligen Daten verlangt wird.

Leider bekommen wir jetzt nicht die Datei zu sehen, wie sie wirklich aussieht.
Bisher habe ich noch keinen "include guard" gesehen, z.B. #pragma once, der fehlt mir hier.

Zudem ist "klappt nicht" eine unzureichende Fehlerbeschreibung.
Wenn Fehler-Meldungen kommen, sollte man sie auch lesen oder zumindest hier zeigen.

Tipp:
Wie das mit dem include funktioniert, sollte in jedem C und auch C++ Buch beschrieben sein.

Ein direkt sichtbarer Unterschied:

Die MQTT IP ist mit Punkt unterteilt, die IPs im Post 1 mit Kommata...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.