German astream.write mit Listobject anstatt ByteArray

Lorenz_Bahn

New Member
Licensed User
Longtime User
Hallo,

ich versuche mittels asyncstreams Daten per USB OTG zu versenden. Der Befehl astreams.write erwartet ja, dass die zu versendenden Daten in einem Byte Array vorliegen. In meinem Programm benutze ich eine Struktur die unter anderem ein List Object enthält in das ich die zu versendenden Daten als Bytes wie folgt einfüge:
B4X:
Type DataPacket( _
        Address As Int, _
        CommandString As String, _
        RawData As List _         'Complete Packet as Raw Data in Byte Format
)
 
 
Dim TempByte As Byte
Dim Message1 As DataPacket
 
TempByte = Bit.AND(255)
PacketPointer.RawData.Add(TempByte)
TempByte = Bit.AND(0)
PacketPointer.RawData.Add(TempByte)
TempByte = Bit.AND(1)
PacketPointer.RawData.Add(TempByte)
Der Aufruf zum Senden der Daten sieht so aus:
B4X:
Result = astreams.Write(TxMessage.RawData)
Leider beschwert sich der Kompiler aber wie folgt:
Result = astreams.Write(Message1.RawData)
javac 1.7.0_07
src\b4a\example1\main.java:645: error: inconvertible types
_result = _astreams.Write((byte[])(mostCurrent._txmessage.RawData.getObject()));Debug.locals.put("Result", _result);
^
required: byte[]
found: List<Object>
1 error
Ist es irgendwie möglich den Befehl astreams.write mit einer Liste die ausschließlich Bytes enthält zu verwenden anstatt ein Array aus Bytes zu übergeben? Basic4Android verwendet intern ja schließlich auch List Objekte um Array Variablen zu realisieren.

PS: Das temporäre umkopieren der Daten aus dem List Objekt in ein Byte Array und anschließende Versenden möchte ich möglichst vermeiden. Optimal wäre es die Daten direkt aus dem List Objekt zu versenden.

Grüße, Lorenz
 
Last edited:
Top