Ergänzende Frage dazu:
Unter Windows ist die API entweder ctypes.c_wchar * N oder unter Linux ctypes.c_char * N.
Das Ziel ist nun möglichst simple einen Python-String zu konvertieren.
Der Buffer der von der API zurück kommt ist Null-Terminiert.
Aktuell ist das mit einem "if" gelöst, da ich noch ...
Die Suche ergab 39 Treffer
- Freitag 11. Dezember 2015, 14:31
- Forum: Python mit anderen Sprachen verwenden
- Thema: unicode - utf-8
- Antworten: 8
- Zugriffe: 7708
- Freitag 11. Dezember 2015, 14:28
- Forum: Python mit anderen Sprachen verwenden
- Thema: unicode - utf-8
- Antworten: 8
- Zugriffe: 7708
Re: unicode - utf-8
Ja danke. Aber die Strings sind 0-Zeichen terminiert. Es gibt hier keine Annahme über 1 Zeichen pro Byte.
- Donnerstag 3. September 2015, 15:53
- Forum: Wissenschaftliches Rechnen
- Thema: array.array -> numpy, pyaudio oder andere
- Antworten: 2
- Zugriffe: 2368
Re: array.array -> numpy, pyaudio oder andere
Habe leider noch kein Feedback hierzu, aber inzwischen mehr Details:
Auf dem RaspI-Linux hat auddioop keine swapbytes() Methode.
Habe das nun auf der Standard-Methode von array umgebaut (ist so besser und generischer).
Der Raspi (neues Modell mit Quad-Core) schafft damit leider nicht mal Stereo ...
Auf dem RaspI-Linux hat auddioop keine swapbytes() Methode.
Habe das nun auf der Standard-Methode von array umgebaut (ist so besser und generischer).
Der Raspi (neues Modell mit Quad-Core) schafft damit leider nicht mal Stereo ...
- Dienstag 1. September 2015, 22:17
- Forum: Wissenschaftliches Rechnen
- Thema: array.array -> numpy, pyaudio oder andere
- Antworten: 2
- Zugriffe: 2368
Re: array.array -> numpy, pyaudio oder andere
Das Ganze hat sich zum Teil schon erledigt:
Bei der Verwendung von PTVS läuft das weit unter der normalen Performance!!!
Innerhalb von PTVS läuft nicht mal ein Stereo-Encoding, wobei das identische Script mit Python3 in der Shell 8 Kanäle encodiert (7.1 16-bit).
Source-Extrakt: Python Script ...
Bei der Verwendung von PTVS läuft das weit unter der normalen Performance!!!
Innerhalb von PTVS läuft nicht mal ein Stereo-Encoding, wobei das identische Script mit Python3 in der Shell 8 Kanäle encodiert (7.1 16-bit).
Source-Extrakt: Python Script ...
- Sonntag 2. August 2015, 10:23
- Forum: Wissenschaftliches Rechnen
- Thema: array.array -> numpy, pyaudio oder andere
- Antworten: 2
- Zugriffe: 2368
array.array -> numpy, pyaudio oder andere
Aktuell habe ich folgendes Problem beim Bearbeiten von PCM-Audio Files:
Lesen, Schreiben mit wave klappt gut.
Ich möchte aber nun möglichst schnell und effektiv z.B. Stereo nach Mono Demuxen und dann alle Mono-Spuren auf 7.1 (also 8 Mono-Kanäle) abspielen.
Hierzu verwende ich aktuell nur wave und ...
Lesen, Schreiben mit wave klappt gut.
Ich möchte aber nun möglichst schnell und effektiv z.B. Stereo nach Mono Demuxen und dann alle Mono-Spuren auf 7.1 (also 8 Mono-Kanäle) abspielen.
Hierzu verwende ich aktuell nur wave und ...
- Donnerstag 30. Juli 2015, 15:10
- Forum: Python mit anderen Sprachen verwenden
- Thema: subprocess Popen communicate
- Antworten: 7
- Zugriffe: 5555
Re: subprocess Popen communicate
Ja danke. Das ist der Standard-Fall.
Ist dann aber doch wieder etwas mehr Arbeit (Windows -Thread, pthread, ....)
Dachte schon, es gibt noch was einfacheres.
Ist dann aber doch wieder etwas mehr Arbeit (Windows -Thread, pthread, ....)
Dachte schon, es gibt noch was einfacheres.
- Donnerstag 30. Juli 2015, 12:29
- Forum: Python mit anderen Sprachen verwenden
- Thema: subprocess Popen communicate
- Antworten: 7
- Zugriffe: 5555
Re: subprocess Popen communicate
Hallo BlackJack,
das wäre eine Möglichtkeit.
Aber wie kann man Cross-tauglich (Windows/Linux) nicht-blockiernd von stdin lesen?
das wäre eine Möglichtkeit.
Aber wie kann man Cross-tauglich (Windows/Linux) nicht-blockiernd von stdin lesen?
- Montag 20. Juli 2015, 14:13
- Forum: Python mit anderen Sprachen verwenden
- Thema: subprocess Popen communicate
- Antworten: 7
- Zugriffe: 5555
Re: subprocess Popen communicate
Das habe ich schon gesehen. Benötigt aber unter Python spezielle Erweiterungen, also nicht im Basis-Umfang enthalten.
Das C-Programm kann ich anpassen, aber wie?
Alternativ dann wohl doch lieber über eine C-Dll und ctypes....
Das C-Programm kann ich anpassen, aber wie?
Alternativ dann wohl doch lieber über eine C-Dll und ctypes....
- Montag 20. Juli 2015, 13:32
- Forum: Python mit anderen Sprachen verwenden
- Thema: subprocess Popen communicate
- Antworten: 7
- Zugriffe: 5555
subprocess Popen communicate
Hallo,
ich habe hier folgendes Problem:
Mein Windows-C-Programm (Consolen-exe) läuft in der main-loop und wartet auf _kbhit().
Die exe looped also aktiv mit einem kleinen sleep().
Wie kann man diese exe mit Popen starten und den Key senden, damit die exe stoppt?
Beim Testen mit _getch() und gets ...
ich habe hier folgendes Problem:
Mein Windows-C-Programm (Consolen-exe) läuft in der main-loop und wartet auf _kbhit().
Die exe looped also aktiv mit einem kleinen sleep().
Wie kann man diese exe mit Popen starten und den Key senden, damit die exe stoppt?
Beim Testen mit _getch() und gets ...
- Freitag 29. Mai 2015, 14:19
- Forum: Allgemeine Fragen
- Thema: array <-> bytestream
- Antworten: 4
- Zugriffe: 1267
Re: array <-> bytestream
Mein Denkfehler!
Das Array war nicht leer!!!
-> u16 = array('H', [1, 2, 3, 4, 513, 1027])
Damit hat sich das Problem erledigt.
Danke für die Unterstützung.
Das Array war nicht leer!!!
Code: Alles auswählen
u16=array.array('H', [1,2,3,4])
bs = b'\x01\x02\x03\x04'
u16.frombytes(bs) # die Daten werden angehängt
Damit hat sich das Problem erledigt.
Danke für die Unterstützung.
- Freitag 29. Mai 2015, 12:35
- Forum: Allgemeine Fragen
- Thema: array <-> bytestream
- Antworten: 4
- Zugriffe: 1267
Re: array <-> bytestream
OK, danke. So geht's natürlich auch!
Der Fehler war, frombytes() zu verwenden.
Der Fehler war, frombytes() zu verwenden.
- Freitag 29. Mai 2015, 09:32
- Forum: Allgemeine Fragen
- Thema: array <-> bytestream
- Antworten: 4
- Zugriffe: 1267
array <-> bytestream
Optimale Umsetzung gesucht:
import array
arU16 = array.array('H')
bytes = b'\x00\x00\x01\x00\x02\x00\x03\x00' # 16-bit bytestream
arU16.frombytes(bytes) # das funktioniert nicht, da das Array vom typ verändert wird
arU16.tobytes() erzeugt den korrekt byte-Stream. Aber wie funktioniert das ...
import array
arU16 = array.array('H')
bytes = b'\x00\x00\x01\x00\x02\x00\x03\x00' # 16-bit bytestream
arU16.frombytes(bytes) # das funktioniert nicht, da das Array vom typ verändert wird
arU16.tobytes() erzeugt den korrekt byte-Stream. Aber wie funktioniert das ...
- Dienstag 5. Mai 2015, 14:05
- Forum: Python mit anderen Sprachen verwenden
- Thema: ctypes.Structure POINTER
- Antworten: 6
- Zugriffe: 6181
Re: ctypes.Structure POINTER
Damit wäre die einfach Antwort: Alles Gut?
Mit C habe ich hier keine Probleme, da man natürlich im Debugger alle Adressen prüfen kann (auch außerhalb).
Erklärt meiner Ansicht nach nicht, warum der Debugger (PTVS in VS2013) in Python das so darstellt. Er kennt den struct und die Größe.
Aber gut ...
Mit C habe ich hier keine Probleme, da man natürlich im Debugger alle Adressen prüfen kann (auch außerhalb).
Erklärt meiner Ansicht nach nicht, warum der Debugger (PTVS in VS2013) in Python das so darstellt. Er kennt den struct und die Größe.
Aber gut ...
- Dienstag 5. Mai 2015, 12:54
- Forum: Python mit anderen Sprachen verwenden
- Thema: ctypes.Structure POINTER
- Antworten: 6
- Zugriffe: 6181
Re: ctypes.Structure POINTER
Danke für die Rückmeldung. Trotzdem strange!
Warum ein Array. Die Adresse ist ein Pointer auf eine struct.
ZUr Sicherheit ein kleines Sample:
import ctypes
class UsbPort(ctypes.Structure):
_fields_ = [
("ResourceType", ctypes.c_uint),
("Index", ctypes.c_uint8),
("PhysicalLayer", ctypes.c ...
Warum ein Array. Die Adresse ist ein Pointer auf eine struct.
ZUr Sicherheit ein kleines Sample:
import ctypes
class UsbPort(ctypes.Structure):
_fields_ = [
("ResourceType", ctypes.c_uint),
("Index", ctypes.c_uint8),
("PhysicalLayer", ctypes.c ...
- Montag 4. Mai 2015, 17:15
- Forum: Python mit anderen Sprachen verwenden
- Thema: ctypes.Structure POINTER
- Antworten: 6
- Zugriffe: 6181
Re: ctypes.Structure POINTER
Ergänzung:
Das Problem sieht man nur im Debugger (PTVS in VS2013).
Nach der Zuweisung des Pointers enthält die Structure unzählige [0][1][2]..... Warum?
Hab das dazu nochmal aufgedrennt und erst den Typ mit ctypes.POINTER erzeugt. Danach das Python-Struct Objekt von diesem Typ und dann sind hier ...
Das Problem sieht man nur im Debugger (PTVS in VS2013).
Nach der Zuweisung des Pointers enthält die Structure unzählige [0][1][2]..... Warum?
Hab das dazu nochmal aufgedrennt und erst den Typ mit ctypes.POINTER erzeugt. Danach das Python-Struct Objekt von diesem Typ und dann sind hier ...
- Montag 4. Mai 2015, 16:53
- Forum: Python mit anderen Sprachen verwenden
- Thema: ctypes.Structure POINTER
- Antworten: 6
- Zugriffe: 6181
ctypes.Structure POINTER
Es gelingt mir nicht, ctypes-Strukturen über Pointer-Referenzen zu verschachteln:
class A(ctypes.Structure):
_fields_ .....
class B(ctypes.Structure):
_fields_ = [("RefA", ctypes.POINTER(A)), .... ]
def __init__(self, obj, ...)
self.RefA = ctypes.pointer(obj) # wobei hier dann obj self aus ...
class A(ctypes.Structure):
_fields_ .....
class B(ctypes.Structure):
_fields_ = [("RefA", ctypes.POINTER(A)), .... ]
def __init__(self, obj, ...)
self.RefA = ctypes.pointer(obj) # wobei hier dann obj self aus ...
- Freitag 17. April 2015, 14:54
- Forum: Python mit anderen Sprachen verwenden
- Thema: Register Callback "context"
- Antworten: 4
- Zugriffe: 4130
Re: Register Callback "context"
Hallo BlackJack,
danke für den Hinweis. Nun klappt das so wie gedacht.
Wünsche ein schönes Wochenende.
lightos
danke für den Hinweis. Nun klappt das so wie gedacht.
Wünsche ein schönes Wochenende.
lightos
- Donnerstag 16. April 2015, 14:08
- Forum: Python mit anderen Sprachen verwenden
- Thema: unicode - utf-8
- Antworten: 8
- Zugriffe: 7708
Re: unicode - utf-8
Ergänzung zur Optimierung:
Aktuell haben die so/Dlls eine Funktion, um die Size von char abfragen zu können.
In Python kann so die korrekte Umsetzung dynamisch im wrapper erfolgen.
Aktuell haben die so/Dlls eine Funktion, um die Size von char abfragen zu können.
In Python kann so die korrekte Umsetzung dynamisch im wrapper erfolgen.
- Donnerstag 16. April 2015, 13:39
- Forum: Python mit anderen Sprachen verwenden
- Thema: Register Callback "context"
- Antworten: 4
- Zugriffe: 4130
Re: Register Callback "context"
Hallo BlackJack,
danke für die schnelle Antwort.
So ähnliche Antworten gab es auch in anderen Foren. Aber damit scheint das mit ctypes einfach so zu funktionieren.
Also:
CB_DeviceChangeEvent = ctypes.CFUNCTYPE(None, ctypes.c_char, ctypes.c_void_p)
class()
....
def cb_device_change(self ...
danke für die schnelle Antwort.
So ähnliche Antworten gab es auch in anderen Foren. Aber damit scheint das mit ctypes einfach so zu funktionieren.
Also:
CB_DeviceChangeEvent = ctypes.CFUNCTYPE(None, ctypes.c_char, ctypes.c_void_p)
class()
....
def cb_device_change(self ...
- Donnerstag 16. April 2015, 11:35
- Forum: Python mit anderen Sprachen verwenden
- Thema: Register Callback "context"
- Antworten: 4
- Zugriffe: 4130
Register Callback "context"
Hallo,
ich habe eine generelle Frage zu einer C-Dll-Anbindung bzgl. Callback/this*.
Häufig findet sich für die Anbindung von C++ über die C-API der context (void*), um "this" in der Callback durchzureichen.
Beispiel:
RegisterDeviceChangeCallback(
const char* deviceSetDescription,
CB ...
ich habe eine generelle Frage zu einer C-Dll-Anbindung bzgl. Callback/this*.
Häufig findet sich für die Anbindung von C++ über die C-API der context (void*), um "this" in der Callback durchzureichen.
Beispiel:
RegisterDeviceChangeCallback(
const char* deviceSetDescription,
CB ...