Функция должна быть вызвана несколько раз, прежде чем она будет получена - PullRequest
2 голосов
/ 06 июня 2019

У меня есть 2 муравья + флешки 1, имитирующие устройство, которое может обмениваться данными.(Программное обеспечение для моделирования [SimuAnt]) 1 имитируйте дисплей для отображения данных.(Windows PC приложение Unity)

Все работает нормально, но странно только одно.

Я проверил это с помощью Debug.Log, что функция действительно вызывается.Я использую кнопку для этого.

Теперь странные вещи: когда я нажимаю кнопку, журнал отладки подтверждает, что страница отправлена ​​на устройство.но я не имею никакого эффекта в устройстве.Когда я быстро нажимаю на кнопку, она иногда срабатывает.

Когда я вызываю функцию 40 раз в коде, она работает.Но я не думаю, что это правильный способ решения проблемы.

public void SetTrainerResistance(int resistance) {
        if (!connected)
            return;
#if UNITY_ANDROID && !UNITY_EDITOR

        AndroidJNI.AttachCurrentThread();
        using (AndroidJavaClass javaClass = new AndroidJavaClass("com.ant.plugin.Ant_Connector")) {
            using (AndroidJavaObject activity = javaClass.GetStatic<AndroidJavaObject>("mContext")) {
                activity.Call("Set_fitness_Resistance",resistance);
            }
        }
#else
        pageToSend = new byte[8] { 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, (byte)(resistance * 2) };//unit is 0.50%
        deviceChannel.sendAcknowledgedData(pageToSend);
#endif

Я вызываю функцию, например, с помощью:

public void FitnessButton2() {
        GameObject.Find("FitnessEquipmentDisplay").GetComponent<FitnessEquipmentDisplay>().SetTrainerResistance(50);
    }

Я пытался использовать нажатие клавиши вместокнопка, но у нее та же проблема.

Полный сценарий также здесь: https://github.com/vrmedialab2017/SharkPrototype/blob/master/CubeTestVR/Assets/AdvancedAnt/Scripts/FitnessEquipmentDisplay.cs

Я подозреваю, что ошибка синхронизации!?

У кого-нибудь есть идеи для этого странногоматериал

1 Ответ

0 голосов
/ 07 июня 2019

Похоже, что частота муравья + устройства являются ключом. Я отправляю в функции обновления наклон трассы в SimulationSoftware

Но муравьиные устройства работают с частотой 4 Гц, так что это просто удача, если другое сообщение пройдет.

Теперь я посылаю наклон каждую секунду (1 Гц) Теперь моя кнопка работает так, как и ожидалось

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...