Show Posts
Pages: [1] 2 3 ... 94
1  International / Deutsch / Re: Zweidimensionales Array umbauen, aber wie? on: April 24, 2014, 05:57:53 am
Code:
byte x = inStr[0][1];
2  International / Deutsch / Re: Array auswählen on: April 24, 2014, 05:54:58 am
OK, jetzt wird es klarer. Dann passt doch für Dich der Vorschlag von Serenifly perfekt:

Code:
byte array_01[] = {34, 32, 4, 7};
byte array_02[] = {43, 2, 7, 2};
byte array_03[] = {35, 39, 40, 70};

byte* alle_werte[] = {array_01, array_02, array_03 };


Der Zugriff erfolgt dann wie beschrieben per alle_werte[0][z] auf das erste Array mit dem index "z". Auf Array 2 greifst Du dann mit alle_werte[1][y] zu usw.

Mario.
3  International / Deutsch / Re: Array auswählen on: April 23, 2014, 07:33:35 am
Wenn schon Abstraktion, dann eine Klasse Array, die im Konstruktor die Größe bekommt und das Ganze von Hand per malloc und free verwaltet. Die kann sich dann auch die Größe des Arrays merken und man kann ggf. sogar zur Laufzeit die Größe ändern.
Notfalls in plain C auch ein struct typedef mit Längenvariable und passenden Funktionen.
4  International / Deutsch / Re: Array auswählen on: April 23, 2014, 07:16:04 am
Ich verstehe den Sinn hinter dieser Funktion noch immer nicht. Wo ist der Mehrwert hinter einer solchen Funktion?
Auch wenn ich dir praktisch Recht gebe,
hat "Daten-Abstraktion" einen Sinn. Dem Aufrufer kann es dann egal sein, ob die Zahl, die er über einen Index adressiert, im RAM oder sonstwo, in Form eines Arrays oder einer anderen Sammlung liegt oder gar nur bei Anfrage ausgerechnet wird. ...
Das verstehe ich, finde das gerade in C/C++ bei Arrays aber gefährlich, da zur Laufzeit der Funktion ja keine Informationen über die Größe des Arrays vorliegen. Bei einem Array im Quellcode kommt man evtl. noch auf die Idee mal zu schauen ob der Index "out of bound" ist. Bei einer abstrahierten Funktion ist das schon nicht mehr so offensichtlich.
5  International / Deutsch / Re: Array auswählen on: April 23, 2014, 06:38:11 am
Ich verstehe den Sinn hinter dieser Funktion noch immer nicht. Wo ist der Mehrwert hinter einer solchen Funktion?

Mario.
6  International / Deutsch / Re: Array auswählen on: April 23, 2014, 02:49:53 am
Wenn alle Arrays vom gleichen Typ sind, dann kannst Du einen Pointer auf das Array übergeben, wenn die Arrays unterschiedliche Typen haben, wird es schwerer.
Was aber meinst Du genau mit "Arrayindexe" auslesen? Kannst Du ein Beispiel geben?

Denn ein
int a =readValue( myarray, 5);
ist ja auch nicht besser als
int a = myarray[5];

Mario.
7  International / Deutsch / Re: Bei Funktionsaufruf etwas einmalig ausführen on: April 23, 2014, 02:01:48 am
Ein kurzer Hinweis noch zu den globalen Variablen. Man versucht in C sowas gern zu vermeiden, da es sehr schnell zu Überschneidungen der Namen kommen kann. Wenn Du Deine Funktion irgendwann mal woanders einsetzen willst, mußt Du immer daran denken das die gobale Variable dazu gehört. Wenn dann Dein zweites Programm zufällig schon eine solche Variable hat, mußt Du alles umeseln oder noch schlimmer, es fällt erstmal gar nicht auf, weil der Compiler nicht meckert, Dein Programm sich aber seltsam verhält weil FunctionInitialised an anderer Stelle immer wieder verändert wird.

Verwendest Du eine lokale Variable innerhalb der Funktion, dann ist es nicht schlimm, wenn Dein Programm schon eine gleiche, globale Variable hat. Denn die Funktion wird immer die lokale Variable verwenden. Damit wird Code portabler.

Mario.
8  International / Deutsch / Re: Bei Funktionsaufruf etwas einmalig ausführen on: April 23, 2014, 12:25:20 am
Du kannst innerhalb der Funktion eine Variable als "static" deklarieren. Diese behält dann auch zwischen den Aufrufen ihren Wert und Du kannst "zählen" wie oft eine Funktion aufgerufen wurde.
Code:
void setup() {
 Serial.begin(9600);
}

void loop() {
 single();
 delay(1000);
}

void single() {
 static int count = 0;

 if(count == 0) {
  Serial.println("erster Aufruf von Single");
  count++;
 }
 Serial.print("single() wurde ");
 Serial.print(count);
 Serial.println(" mal aufgerufen.");
 count++;
}
Die Ausgabe "erster Aufruf von Single" erscheint nur ein Mal, obwohl die Funktion immer wieder aufgerufen wird.

Mario.
9  International / Deutsch / Re: Arduino Ethernet MAC Adresse nur 9 Stellen ? on: April 22, 2014, 02:29:27 pm
auch wenn ich es im Internet auf einer Seite mache ?
also nicht nur im Heimnetzwerk ?
Auch dann.
MAC-Adressen spielen nur in einem "lokalen" Netz eine direkte Rolle (zumindest bei TCP/IP und wenn keine Netze auf Layer 2 gebridged werden). Alles andere wird per Routing gemacht, das ist Layer 3 (IP) und dafür sind dann solche Dinge wie Gateway, Subnet etc. wichtig.
Auch wenn Dein Arduino direkt im Internet "sichtbar" ist, steht in nahazu allen Fällen noch ein Router davor, selbst wenn der Arduino eine öffentliche IP bekommt und keine private wie 192.168.x.y oder 10.a.b.c oder 172.a.b.c
Allerdings sind MAC-Adressbereiche Hersteller gebunden und man sollte schauen, das man keine MAC aus einem verbreiteten Bereich verwendet. Die Effekte von zwei gleichen MAC Adressen im gleichen Subnet sind sehr "lustig" und ohne tiefere Kenntnisse schwer zu debuggen.
Siehe auch hier: http://de.wikipedia.org/wiki/MAC-Adresse#Herstellerkennungen
Wenn man 00-50-C2 für die ersten drei Byte verwendet, sollte man (wenn der Wikipedia Artikel stimmt) nicht großartig Gefahr laufen dem eigenen Router die MAC zu klauen. :-)
10  International / Deutsch / Re: Arduino <-> Raspberry <-> MySQL Serial Communication on: April 22, 2014, 02:19:52 pm
Grundlegend hat der Ansatz vom "Ardudome" Projekt das Problem das alle Aktionen von den PHP-Scripten initiiert werden und somit immer ein Browser auf die Seite zugreifen muss, sonst passiert nix.

Was Du möchtest ist aber, das der Arduino den Raspberry über eine ständig (oder mindestens beim Starten) aktive serielle Verbindung ansprechen kann. Das geht aber nur, wenn auf dem Raspberry jederzeit irgendein Programm auf der seriellen Schnittstelle lauscht, ob der Arduino Anfragen schickt. Denn der Raspberry kann ja nicht "wissen" wann der Arduino gerade mal einen Reset bekommt.

Das ist ein ganz anderes Konzept. Das würde ich mit einem zusätzlichen Programm / Script auf dem Raspberry lösen, das als "Middleware" eine Schnittstelle zwischen der seriellen Konsole des Arduino und z.B. einem TCP-Socket auf dem Raspberry bereit stellt.
Mario.
11  International / Deutsch / Re: Arduino über Raspberry via PHP ansteuern - Wie? on: April 16, 2014, 07:48:30 am
Diese Zeile macht aus einem String einen Integerwert. Da der "umgebende" Code fehlt, kann man leider nicht im Kontext sehen was da passiert. Aber eine der Variablen $i, $pin werden wohl einen Wert haben, der beim Array als Index nicht vorhanden ist.

Mario.
12  International / Deutsch / Re: OT:Welchen Kondensator brauche ich ? on: April 16, 2014, 02:56:01 am
Steht doch im Datenblatt:
http://www.st.com/web/en/resource/technical/document/datasheet/CD00000546.pdf (Seite 7)
Du brauchst auf der Input-Seite 0,1µF (100nF) Kerko (ungepolt) und auf der Output-Seite 2,2µF Elko (gepolt).

Mario.
13  International / Deutsch / Re: Arduino Host - EthernetShield - WLan Router"Client" - FritzBox on: April 16, 2014, 02:52:24 am
Der WR702 nutzten wir auf der Arbeit. Leider mit Problemen deswegen sind wir auf den WL0158 gegangen der ist bei Reichelt sogar günstiger.
@Volvodani: Welche Probleme waren denn das? Ich habe die Dinger bisher problemlos im Einsatz, aber mögliche Schwachstellen zu kennen kann ja nicht verkehrt sein.

Mario.
14  International / Deutsch / Re: Arduino Host - EthernetShield - WLan Router"Client" - FritzBox on: April 16, 2014, 01:10:38 am
Die Adresse setzt Du nur auf dem Arduino, sprich kein DHCP sondern direkt eine IP setzen. Zumindest solange der Repeater, der hier ja als WLAN-Client arbeitet, nicht selbst DHCP macht und so ein Endgerät anbindet. Dann funktioniert das nicht, außer der Repeater kann NAT. Wenn der Repeater "nur" als WLAN-Verlängerung arbeitet solltest Du Deinen Arduino unter seiner gesetzten IP erreichen können.

Ich habe mit diesem Kollegen hier sehr gute Erfahrungen gemacht (kleiner und günstiger):
TP-Link TL-WR702N
Siehe [url http://www.ichbinzustaendig.de/2014/04/07/arduino-environmental-net-server.html]hier:[/url]
15  Community / Exhibition / Gallery / Re: Ardomotic 2.0 - Web Interface for Arduino on: April 14, 2014, 09:39:59 am
Sounds like an interesting project. But one question about that:
Quote
The "Address" is the address of the server, which can be either an IP or DNS for your server.
When connecting from the same network where the Arduino is located, you can just use the Arduino IP address.

How should this work, the only access to the Arduino is over your webservice. So you always need access from the internet to the Arduino-Server. Or is there a way to have the frontend service running on an local webserver (not Arduino).

How is the access to the Arduino protected against unauthorized connections? IMHO the Arduino is not able to do some session-encryption fpr the access from outside.

Mario,
Pages: [1] 2 3 ... 94