vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Auslesen von Decodierten daten/ Umwandlung C in VB 
Autor: dop3
Datum: 20.05.08 20:29

hallo, ich habe vor mir ein Programm zum Auslesen von Debug-Daten eines Mikrokontrollers zu schreiben. Die daten werden über eine Debug schnittstelle auf der platine durch einen Seriellen konverter zum pc gesendet. Wenn ich mit dem Programm MicroSPS Downloader die daten auslese kommt dieses heraus http://img511.imageshack.us/my.php?image=debugdatenty6.jpg. Anscheinend sind das mit der Base64 Funktion codierte daten. Leider habe ich nur einen code in C zum decodieren könnt ihr mir diesen code in einen VB code umwandeln?

#include <stdio.h>
#include <stdlib.h>
 
 
char DebugString[] = {'#','0','D','=','=','>','Z','=','{',']',
 '?',']','=','I','L','=','m','E','=','F',
 'M','>','_','|','q','M','=','=','=','=',
 '=','=','=','=','=','=','=','=','=','=',
 '=','=','=','=','=','=','=','=','=','=',
 '=','=','=','=','=','=','=','=','=','=',
 '=','=','=','=','=','=','=','=','=','=',
 '=','=','=','=','=','=','=','=','=','=',
 '=','=','=','=','=','=','=','=','=','=','='}; //Das sind die Decodierten Daten
unsigned int DebugStringLength=89;
 
unsigned int DebugString2Length=0;
char DebugString2[100]; //Hier kommen die mit decode64 umgewandelten Daten rein
 
char Digitaldaten[2];
int Analogdaten[100];
void Decode64(void);
void SaveAnalogDaten(void);
static void SaveDigitalData(void);
int CheckDebugString(void);
 
 
 
int main(void){
 
printf("start");
 if(1){ //hier sollte CheckDebugString stehen
 puts("check-OK");
 Decode64();
 SaveDigitalData();
 SaveAnalogDaten(); 
 }
 puts("bereit zur Ausgabe");
 int i;
 for(i=0;i<50;i++){
 printf("%d, ",(int)Analogdaten);
 }
}
 
 
void SaveAnalogDaten(void){
 int i;
 for(i=0;i<32;i++)
 {
 Analogdaten=(int)((DebugString2[3+i*2]<<8) | DebugString2[2+i*2]);
 }
}
 
 
 
static void SaveDigitalData(void){
 Digitaldaten[0]=DebugString2[0];
 Digitaldaten[1]=DebugString2[1];
}
 
 
void Decode64(void){ 
 
 unsigned char a,b,c,d;
 DebugString2Length = 0;
 unsigned char x,y,z;
 unsigned int StartByte = 3;
 while(StartByte < DebugStringLength - 5)
 {
 a = DebugString[StartByte++] - '=';
 b = DebugString[StartByte++] - '=';
 c = DebugString[StartByte++] - '=';
 d = DebugString[StartByte++] - '=';
 
 x = (a << 2) | (b >> 4);
 y = ((b & 0x0f) << 4) | (c >> 2);
 z = ((c & 0x03) << 6) | d;
 
 DebugString2[DebugString2Length++] = x; 
 DebugString2[DebugString2Length++] = y; 
 DebugString2[DebugString2Length++] = z; 
 }
 DebugString2Length--;
}
 
 
int CheckDebugString(void){ //gibt true oder false zurück
 int r=1;
 if(DebugString[0]!='#')
 r=0;
 char sollCRC;
 int i;
 for(i=0;i<DebugStringLength-2;i++){
 sollCRC+=DebugString;
 }
 if(DebugString[DebugStringLength-2]!= ('='+ sollCRC / 64))
 r=0;
 if(DebugString[DebugStringLength-1]!= ('='+ sollCRC % 64))
 r=0;
 return r;
}
Wenn das Programm fertig ist soll mann die decodierten werte grafisch dargestellt sehen wie hier z.b.
http://img139.imageshack.us/my.php?image=darstellungdatenpj3.jpg

Ich hoffe ihr könnt mir ein wenig dabei helfen.
mfg
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Auslesen von Decodierten daten/ Umwandlung C in VB975dop320.05.08 20:29
Re: Auslesen von Decodierten daten/ Umwandlung C in VB495cheezburgla20.05.08 20:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel