Category Archives: Elektronik

  • -

Split string with delimiters in C

https://stackoverflow.com/questions/9210528/split-string-with-delimiters-in-c

Funktioniert soweit ganz gut.
Folgende Implementation hab ich benutzt:

 

#include <stdlib.h>

char *zstring_strtok(char *str, const char *delim, int new);
uint32_t hex2int(char *hex);



char *zstring_strtok(char *str, const char *delim, int new) {
    static char *static_str=0;      /* var to store last address */
    int index=0, strlength=0;       /* integers for indexes */
    int found = 0;                  /* check if delim is found */

    if (new == 1)
    {
    
        static_str = 0;
        
    }
    /* delimiter cannot be NULL
    * if no more char left, return NULL as well
    */
    if (delim==0 || (str == 0 && static_str == 0))
        return 0;

    if (str == 0)
        str = static_str;

    /* get length of string */
    while(str[strlength])
        strlength++;

    /* find the first occurance of delim */
    for (index=0;index<strlength;index++)
        if (str[index]==delim[0]) {
            found=1;
            break;
        }

    /* if delim is not contained in str, return str */
    if (!found) {
        static_str = 0;
        return str;
    }

    /* check for consecutive delimiters
    *if first char is delim, return delim
    */
    if (str[0]==delim[0]) {
        static_str = (str + 1);
        return (char *)delim;
    }

    /* terminate the string
    * this assignmetn requires char[], so str has to
    * be char[] rather than *char
    */
    str[index] = '\0';

    /* save the rest of the string */
    if ((str + index + 1)!=0)
        static_str = (str + index + 1);
    else
        static_str = 0;

        return str;
}



/**
 * hex2int
 * take a hex string and convert it to a 32bit number (max 8 hex digits)
 */
uint32_t hex2int(char *hex) {
    uint32_t val = 0;
    while (*hex) {
        // get current character then increment
        uint8_t byte = *hex++; 
        // transform hex character to the 4bit equivalent number, using the ascii table indexes
        if (byte >= '0' && byte <= '9') byte = byte - '0';
        else if (byte >= 'a' && byte <='f') byte = byte - 'a' + 10;
        else if (byte >= 'A' && byte <='F') byte = byte - 'A' + 10;    
        // shift 4 to make space for new digit, and add the 4 bits of the new digit 
        val = (val << 4) | (byte & 0xF);
    }
    return val;
}

 


  • -

ANKYA WIFI CAM

ich hab mir mal ne mini IP CAM zugelegt.

 

CPU ANKYA 37 er Serie

http://www.anyka.com/en/productInfo.aspx?id=107

Bootlog siehe bootlogs.


  • -

  • 0

Linux Software Module

ACHTUNG DIESER ARTIKEL IST NOCH NICHT FERTIG. BITTE BEACHTEN SIE DAS BEIM LESEN.
Hallo Leute,
Hier will ich mal eine Liste der bisher von mir funktionierenden Module machen die ich Erfolgreich für das GE863-Pro3 Compiliert habe.
Alle Module sind Getestet:
Wer ein Modul will (Source / precompiled ) bitte eine eMail an lexustec_fn (at) yahoo (dot) de senden mit dem Betreff GE863, damit ich weis wo die Mails einzuordnen sind :-).
Die Anfragen werden schnell bearbeitet.

Modulnamen Grösse + Beschreibung
Apache2 Der Indianer für das GE863, full featured.
PHP5 Modul

Das PHP5 Modul für den Apache2,

War nicht Einfach zum Compilieren,

Aber es scheint zu funktionieren

Nicht 100% getestet.OpenSSL

SSL für das GE863

Noch nicht 100% getestet

OpenVPNOpen VPN für das GE863

Noch nicht 100% getestetlzoWird für OpenVPN gebrauchtpppModem Einwahl Programm für den Aufbau der

GPRS Verbindung.

bildet dann eine Schnittstelle ppp0

Funktioniert einwandfrei.lrzszLoad Zmodem.

recieve Z und Send Z

Empfängt und sendet Daten im Zmodem Format.

Geht einigermassen.

Mit dem Hyperterminal sehr viele crc errors.

Und sehr viele Wiederholungen.PicocomKleines Komandozeilen Programm um auf

die Serielle Schnittstelle zuzugreifen

( z.B. AT Commands senden oder GPS Lesen )

In den Original Sourcen von Telit für das GE863Pro3 gibt es etliche Fehler. z.B.:

Die MTD Utils sind nicht Korrekt Compiliert worden sowie total verbugt.
Habe sie auch gerade auf die aktuellste Version ge updated.

Hier die Korrekten MTD Utils —>mtd-utils

gehören in den Firmwae GE863 Ordner.

Beim nächsten Fehler wird nicht Automatisch beim Compilieren die Pfade für die Module richtig gesetzt. d.h. modprobe g_ether meldet module not found.

Die Datei ./romfs/lib/modules/$kernelversion/modules.dep enthält falsche Pfadangaben.

Im Makefile im Hauptverzeichnis (…../firmware_GE863…./)

steht bei den zeilen wo die GE863 eigenen module kopiert werden

depmod (der Blaue Eintrag )

Der befehl zerschiesst die Konfig (/lib/modules/$kernelversion/modules.dep) wieder.

Wird aber trotzdem gebraucht um die ganzen Zuweisungen für USB und den rest zu erstellen.

Ich habe den Eintrag Rot hinzugefügt. dieser erstellt nochmal die modules.dep korrekt.

Nun funktioniert der Befehl modprobe wieder korrekt.

Block „GE863-PRO3_romfs“ im Makefile.

/code:

.PHONY: GE863-PRO3_romfs

………….

ifeq ($(CONFIG_TELIT_TC),y)

cp $(TELITDIR)/tc/tc.ko $(romfs_modules_dir)

endif

depmod -b $(ROMFSDIR) $(kernelversion)

$(ROOTDIR)/config/scripts/depmod.pl -n -b $(ROMFSDIR) -F $(ROOTDIR)/$(LINUXDIR)/System.map > $(ROMFSDIR)/lib/modules/$(kernelversion)/modules.dep

if test -d $(ROMFSDIR)/usr/bin; \

then echo already exists; \

else mkdir -p $(ROMFSDIR)/usr/bin; \

fi

………

/code.

Wem es zu langweilig ist ist hier das Makefile zum download.

Korrigiertes Makefile —-> Makefile

Wem der ganze Kram mit den einzelnen Programm Modulen selbst Compilieren zu doof ist hier mein Root-FS.

Einfach im Ordner der GE863 Sourcen den Ordner add-in_fs austauschen mit dem aus dem Archiv.

add-in_fs

Bei Fragen eine kurze mail schreiben.

oder per skype (lex8999) anschreiben.

weiteres folgt bald


  • 0

NANO TERM

Hallo Leute,

Habe heute mein Terminal Emulator fertig gestellt.

Anschlüsse:

VGA

PS2 = Tastatur

PS2 = Maus

RS232 Pins. RX TX GND

Spannung 5V = Betrieb Tastatur / Maus

RX TX = 3.3V

 Bilder müssen noch gemacht werden.
Funktioniert soweit aber super.

Produktkatalog als PDF ?