Datentransfer per Funk scheint langsam zu sein

Hallo,

ich möchte einen Callibot per Funk mit einem zweiten Calliope steuern. Dazu schicke ich per Funk Wertepaare an den Callibot. Einmal für die Fahrtrichtung und einmal für den Servo. Der Servo wird zu Zeit noch nicht angesteuert (ersatzweise die RGB LED).

Ich habe festgestellet, das zwar die Befehle beim Callibot ankommen, aber die Übertragung schon verzögert, so das es manchmal schwierig ist, den Callibot zu steuern.

In einer der ersten Bibliotheken von Knotech gab es mal eine fertige Fernsteuerung, die sehr zügig funktioniert hat. Das waren einfach zwei Blöcke. Einer für die Fernsteuerung und einer für den Callibot. Da funktionierte das sehr gut. Weiß hier jemand, wie das gelöst wurde?

Hier noch mein Programm: https://makecode.calliope.cc/_CFDCXj1mE6c1

VG
Martin

Das ist der Originalcode

//% blockId=K_Fernsteuerung_Empfaenger color="#E3008C" block="Fernsteuerung Empfänger Gruppe |%gruppe"
export function empfaenger(gruppe: number) {
    let Zeit = 0
    let MotorRechts = 0
    let MotorLinks = 0
    radio.onDataPacketReceived(({ receivedString: name, receivedNumber: wert }) => {
        if (name == "L") {
            MotorLinks = wert
        }
        if (name == "R") {
            MotorRechts = wert
        }
        Zeit = 50
    })
    radio.setGroup(gruppe)
    while (1 == 1) {
        if (KFunkAktiv == 0) {
            if (MotorLinks < 0) {
                motor(KMotor.rechts, KDir.vorwärts, Math.abs(MotorLinks))
            } else {
                motor(KMotor.rechts, KDir.rückwärts, MotorLinks)
            }
            if (MotorRechts < 0) {
                motor(KMotor.links, KDir.vorwärts, Math.abs(MotorRechts))
            } else {
                motor(KMotor.links, KDir.rückwärts, MotorRechts)
            }
            basic.pause(1)
            if (Zeit > 0) {
                Zeit += -1
            } else {
                MotorLinks = 0
                MotorRechts = 0
            }
        }
    }
}

//% blockId=K_Fernsteuerung_Sender color="#E3008C" block="Fernsteuerung Sender Gruppe |%gruppe| Übertragungsstärke |%staerke"
export function sender(gruppe: number, staerke: number) {
    let MotorRechts = 0
    let MotorLinks = 0
    let WertY = 0
    let AccelY = 0
    let WertX = 0
    let AccelX = 0

    radio.setTransmitPower(staerke)
    radio.setGroup(gruppe)

    while (1 == 1) {
        AccelX = input.acceleration(Dimension.X)
        if (AccelX > 100) {
            WertX = (AccelX - 100) / 5
        } else if (AccelX < -100) {
            WertX = (AccelX + 100) / 5
        } else {
            WertX = 0
        }
        AccelY = input.acceleration(Dimension.Y)
        if (AccelY > 100) {
            WertY = (AccelY - 100) / 5
        } else if (AccelY < -100) {
            WertY = (AccelY + 100) / 5
        } else {
            WertY = 0
        }
        MotorLinks = WertY + WertX
        MotorRechts = WertY - WertX
        radio.sendValue("L", MotorLinks)
        radio.sendValue("R", MotorRechts)
    }
}

//% blockId=K_Fernsteuerung_Status color="#E3008C" block="Schalte Empfänger |%status"
export function empfaengerStatus(status: KFunk) {
    if (status == KFunk.an) {
        KFunkAktiv = 0
    }
    else {
        KFunkAktiv = 1
    }
}

LG Michael