Ja da hast du absolut recht.
eine Klasse wäre da sehr sinnvoll.
Die Suche ergab 40 Treffer
- Mittwoch 20. April 2011, 10:22
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
- Mittwoch 20. April 2011, 09:20
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
@BlackJack
Ja ich weiß... kein guter Programmierstiel. Beim nächsten Projekt mache ich es besser (oder wie gesagt, wenn ich noch Zeit habe)
wie säh das denn aus wenn das in einer Klasse ist?
mit self.Wave ist das ja ähnlich wie global im Modul oder? Auch schlechte Programmierstiehl?
Auch innerhalb ...
Ja ich weiß... kein guter Programmierstiel. Beim nächsten Projekt mache ich es besser (oder wie gesagt, wenn ich noch Zeit habe)
wie säh das denn aus wenn das in einer Klasse ist?
mit self.Wave ist das ja ähnlich wie global im Modul oder? Auch schlechte Programmierstiehl?
Auch innerhalb ...
- Mittwoch 20. April 2011, 09:00
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
@BlackJack
Mmm...
Und statt jeden Frame einzeln durch ein `c_int64` zu jagen, könntest Du das komplette `Wave`-Objekt über ein `c_uint64`-Array ansprechen.
@Torsten2000: Na Du müsstest halt ein Array definieren was gross genug ist um die Daten aufzunehmen, davon dann die `from_buffer_copy ...
Mmm...
Und statt jeden Frame einzeln durch ein `c_int64` zu jagen, könntest Du das komplette `Wave`-Objekt über ein `c_uint64`-Array ansprechen.
@Torsten2000: Na Du müsstest halt ein Array definieren was gross genug ist um die Daten aufzunehmen, davon dann die `from_buffer_copy ...
- Dienstag 19. April 2011, 13:48
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Hallo BlackJack,
Wie geht denn das mit "c_uint64`-Array ansprechen"?
Danke nochmal für deine Wertvollen Tips :-)
Die sind echt spizte.
Alle anderen Module habe ich schön mit einer Klasse eingebunden (Timer-Funktionen)
Da habe ich das erste mal mit Klassen gearbeitet und den riesen Vorteil gesehen ...
Wie geht denn das mit "c_uint64`-Array ansprechen"?
Danke nochmal für deine Wertvollen Tips :-)
Die sind echt spizte.
Alle anderen Module habe ich schön mit einer Klasse eingebunden (Timer-Funktionen)
Da habe ich das erste mal mit Klassen gearbeitet und den riesen Vorteil gesehen ...
- Dienstag 19. April 2011, 12:16
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
ah mit "int( )"
Sorry für meinen blöden Fragen
Danke schön
Code: Alles auswählen
def _get_Frame(x):
global Wave
i=x*8
return int(c_int64.from_buffer_copy(Wave, i).value)
Danke schön
- Dienstag 19. April 2011, 12:13
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Hallo BlackJack,
numpy hast du noch nicht erwähnt :-) klingt gut.
Aber das werde ich im Rahmen der Diplomarbeit wohl nicht mehr schaffen.
Bin froh, wenn ich noch das "Entschlüsseln" hin bekomme.
Ich habe jetzt folgendes Programmiert:
def _get_Frame(x):
global Wave
i=x*8
return = Wave[i+0]<<(0 ...
numpy hast du noch nicht erwähnt :-) klingt gut.
Aber das werde ich im Rahmen der Diplomarbeit wohl nicht mehr schaffen.
Bin froh, wenn ich noch das "Entschlüsseln" hin bekomme.
Ich habe jetzt folgendes Programmiert:
def _get_Frame(x):
global Wave
i=x*8
return = Wave[i+0]<<(0 ...
- Dienstag 19. April 2011, 10:11
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Ich habe jetzt noch eine andere Möglichkeit gefunden
ich glaube langsam komm ich hinter.
Entschluldigt immer meine Fragerei
temp = Wave[i+0]<<(0*8) | Wave[i+1]<<(1*8) | Wave[i+2]<<(2*8) | Wave[i+3]<<(3*8) | Wave[i+4]<<(4*8) | Wave[i+5]<<(5*8) | Wave[i+6]<<(6*8) | Wave[i+7]<<(7*8)
ich glaube langsam komm ich hinter.
Entschluldigt immer meine Fragerei
temp = Wave[i+0]<<(0*8) | Wave[i+1]<<(1*8) | Wave[i+2]<<(2*8) | Wave[i+3]<<(3*8) | Wave[i+4]<<(4*8) | Wave[i+5]<<(5*8) | Wave[i+6]<<(6*8) | Wave[i+7]<<(7*8)
- Dienstag 19. April 2011, 09:53
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
So. Jetzt habe ich 8 Bytes in ein c_uint64 gepackt.
L = (c_uint64)()
pack_into('BBBBBBBB',L,0,Wave[i+0], Wave[i+1], Wave[i+2], Wave[i+3], Wave[i+4], Wave[i+5], Wave[i+6], Wave[i+7])
dann erstelle ich eine Maske
Channel = 0
Maske = 1 << Channel
und möchte die beiden miteinander verUNDen ...
L = (c_uint64)()
pack_into('BBBBBBBB',L,0,Wave[i+0], Wave[i+1], Wave[i+2], Wave[i+3], Wave[i+4], Wave[i+5], Wave[i+6], Wave[i+7])
dann erstelle ich eine Maske
Channel = 0
Maske = 1 << Channel
und möchte die beiden miteinander verUNDen ...
- Dienstag 19. April 2011, 08:57
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
ich glaube das bringt mich weiter
Damit packe ich die vier Bytes in eine 64Bit Variable -Reihenfolge wählbar durch umstellen der test-variablen
Damit packe ich die vier Bytes in eine 64Bit Variable -Reihenfolge wählbar durch umstellen der test-variablen
Code: Alles auswählen
L = (c_uint64)()
pack_into('BBBB',L,0,test[0],test[1],test[2],test[3])
- Montag 18. April 2011, 17:15
- Forum: Python mit anderen Sprachen verwenden
- Thema: C-Code nach Python portieren
- Antworten: 38
- Zugriffe: 9196
Re: C-Code nach Python portieren
Nochmal auf das Problem zurück zu kommen...
Zur Erinnerung:
Also - in der DLL ist eine Funktion
unmangle(BYTE *lpbWave, int sizeofWave, int iChan, BYTE* lpChan, int sizeofChan, int ip1, int ip2, int ip3)
und so habe ich das eingebunden
import ctypes
LAWaveExt_dll = windll.LoadLibrary ...
Zur Erinnerung:
Also - in der DLL ist eine Funktion
unmangle(BYTE *lpbWave, int sizeofWave, int iChan, BYTE* lpChan, int sizeofChan, int ip1, int ip2, int ip3)
und so habe ich das eingebunden
import ctypes
LAWaveExt_dll = windll.LoadLibrary ...
- Montag 18. April 2011, 17:05
- Forum: Python mit anderen Sprachen verwenden
- Thema: C-Code nach Python portieren
- Antworten: 38
- Zugriffe: 9196
Re: C-Code nach Python portieren
Sagt mal ....
was mir gerade aufgefallen ist...
Meine Read-Funktion ist der totaler blödsinn oder?
def read_data_from_file(filename):
import os
global Wave
f=open(filename, 'rb')
print os.path.getsize(filename)
Wave = (c_byte * ( os.path.getsize(filename) ))()
print 'Lese Daten von der ...
was mir gerade aufgefallen ist...
Meine Read-Funktion ist der totaler blödsinn oder?
def read_data_from_file(filename):
import os
global Wave
f=open(filename, 'rb')
print os.path.getsize(filename)
Wave = (c_byte * ( os.path.getsize(filename) ))()
print 'Lese Daten von der ...
- Montag 18. April 2011, 17:02
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
@BlackJack
Mmm... ja da hast du recht...
Ich habe mir gedacht, dass wäre schön, wenn das Format einheitlich wäre. Allerdings müsste man dann entweder wieder mit 0-en auffüllen, was viel Speicher verbracht, oder wieder eine "Entschlüsselungstabelle" einführen...
Man könnte auch für jeden Kanal die ...
Mmm... ja da hast du recht...
Ich habe mir gedacht, dass wäre schön, wenn das Format einheitlich wäre. Allerdings müsste man dann entweder wieder mit 0-en auffüllen, was viel Speicher verbracht, oder wieder eine "Entschlüsselungstabelle" einführen...
Man könnte auch für jeden Kanal die ...
- Montag 18. April 2011, 16:13
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Danke Sebastian,
dann schau ich mir das mal an
dann schau ich mir das mal an
- Montag 18. April 2011, 16:02
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Wie lese ich denn aus einem Array von Bytes ein uint64 raus?
dreht sich dann die Reihenfolge von den Bytes um?
dreht sich dann die Reihenfolge von den Bytes um?
- Montag 18. April 2011, 16:01
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
@BlackJack:
ich weiß nicht genau ob ich dich 100%-ig verstanden habe.
ich denke das beste Zielformat ist eine Zeichenkette mit Bytes oder uint64
also so dass pro Variable eine Abtastung passt.
und von den Abtastungen dann ein Array.
Verbesser mich bitte, wenn das nicht das beste Zielformat ist.
ich weiß nicht genau ob ich dich 100%-ig verstanden habe.
ich denke das beste Zielformat ist eine Zeichenkette mit Bytes oder uint64
also so dass pro Variable eine Abtastung passt.
und von den Abtastungen dann ein Array.
Verbesser mich bitte, wenn das nicht das beste Zielformat ist.
- Montag 18. April 2011, 15:44
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Ich probier mal was aus:
ich lege nicht ein Array von Bytes an sondern eins mit "ctypes.c_uint64"
dann kann ich hoffe ich auf die 8 Bytes direkt drauf zugreifen.
Anschließend verUNDde ich das ergebnis mit einer Maske: hier bei dem Beispiel 9 1-en
anschließend verschiebe ich das uint64 um 9 bit ...
ich lege nicht ein Array von Bytes an sondern eins mit "ctypes.c_uint64"
dann kann ich hoffe ich auf die 8 Bytes direkt drauf zugreifen.
Anschließend verUNDde ich das ergebnis mit einer Maske: hier bei dem Beispiel 9 1-en
anschließend verschiebe ich das uint64 um 9 bit ...
- Montag 18. April 2011, 15:40
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Ich denke das beste Format wäre, wenn man die Abtastungen einzeln aneinander reiht.
Aber das letzte Byte immer mit 0en auffüllt
Also bei dem Beispiel:
00 01
00 01
Aber das letzte Byte immer mit 0en auffüllt
Also bei dem Beispiel:
00 01
00 01
- Montag 18. April 2011, 15:25
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Hallo BlackJack,
das mit dem Umwandeln in 1-en und 0-en habe ich auch schon mal probiert. Jedoch ist das viel zu langsam.
Außerdem ist das mit dem Big-Endian ein bisschen blöd.
Kann ich je 8 Bytes auch in ein c_longlong packen, so dass die Reihenfolge sich umdreht?
das würde mir glaube ich schon ...
das mit dem Umwandeln in 1-en und 0-en habe ich auch schon mal probiert. Jedoch ist das viel zu langsam.
Außerdem ist das mit dem Big-Endian ein bisschen blöd.
Kann ich je 8 Bytes auch in ein c_longlong packen, so dass die Reihenfolge sich umdreht?
das würde mir glaube ich schon ...
- Montag 18. April 2011, 15:10
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Hallo Sebastian,
Ich steh auf dem Schlauch...
ein Tip würde mir Sicherlich weiter helfen.
Und vor allem muss es schnell sein.
Ich steh auf dem Schlauch...
ein Tip würde mir Sicherlich weiter helfen.
Und vor allem muss es schnell sein.
- Montag 18. April 2011, 14:46
- Forum: Allgemeine Fragen
- Thema: Entschlüsseln eines ganz komischen Datenformates
- Antworten: 30
- Zugriffe: 2682
Re: Entschlüsseln eines ganz komischen Datenformates
Der Hex-Editor spuckt folgendes aus (9 Kanäle)
Kanal 0 ist immer "1" (habe da eine Spannung drauf gegeben)
P1 = 64
P2 = 36
P3 = 9
010204080000000001020408000000000102040800000000010204080000000001020408000000000102040800000000
noch mal deutlicher:
01 02 04 08 00 00 00 00
01 02 04 08 00 00 00 00 ...
Kanal 0 ist immer "1" (habe da eine Spannung drauf gegeben)
P1 = 64
P2 = 36
P3 = 9
010204080000000001020408000000000102040800000000010204080000000001020408000000000102040800000000
noch mal deutlicher:
01 02 04 08 00 00 00 00
01 02 04 08 00 00 00 00 ...
