Среда, 01.05.2024, 10:05
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | Grauncontrol. Mavlink. Телеметрия. Авиагоризонт. - Страница 5 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: ВитГо  
Форум » Разработка электронных устройств » Идеи ! » Grauncontrol. Mavlink. Телеметрия. Авиагоризонт. (Mavlink, ADS-B, Mission Planer, EFIS, PFD)
Grauncontrol. Mavlink. Телеметрия. Авиагоризонт.
uwrteyДата: Вторник, 22.02.2022, 23:09 | Сообщение # 61
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Пропадала шкала по PITCH внутри маски, внутри СБОРКИ под WIN-32
без маски все работало норм
внутри ЮНИТИ тоже работало норм
сменил собрку на WIN-64 ( все таки у меня 64 разряда ) и все стало норм


не успеваю за своими мыслями......
 
uwrteyДата: Среда, 23.02.2022, 22:53 | Сообщение # 62
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
SerialPort реального времени RealTime

отдельный поток:
https://www.cyberforum.ru/csharp-net/thread436447.html

задал вопрос тут:
https://radiokot.ru/forum/viewtopic.php?f=24&t=181526

может быть полезным:
http://we.easyelectronics.ru/electro-and-pc/rs232-vzglyad-iznutri.html

управление потоком:
https://russianblogs.com/article/3611996112/

тут тоже на поток ссылаются:
https://forum.cxem.net/index.p....B%D1%85

драйвер TTL конвертера:
https://alex-avr2.livejournal.com/126886.html

хорошая мысль по приему через ком-порт
https://stackoverflow.com/questio....n-unity
Прикрепления: 2166764.png (23.9 Kb) · 0406431.png (36.1 Kb)


не успеваю за своими мыслями......
 
uwrteyДата: Среда, 02.03.2022, 13:29 | Сообщение # 63
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
многопоточность

потоки C#

https://habr.com/ru/post/126495/

https://www.rsdn.org/article/dotnet/CSThreading1.xml


не успеваю за своими мыслями......
 
uwrteyДата: Четверг, 03.03.2022, 22:27 | Сообщение # 64
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Real Time Serial Port

https://medium.com/@c82475....47e5d36

скрипт для упрощения использования последовательного порта в Unity

https://github.com/prossel/UnitySerialPort


не успеваю за своими мыслями......
 
uwrteyДата: Понедельник, 07.03.2022, 21:22 | Сообщение # 65
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
первая версия кода. тут и сделал чтение по одному байту
Код

                // Read serial data until a '\n' character is recieved
                // Читайте последовательные данные, пока не будет получен символ '\ n' ?????????? - так было написано
                // Читайте последовательные данные, пока не будут получены CR+LF ( \r + \n ) ( 0D+0A ) - на самом деле так

                //string rData = SerialPort.ReadLine();         // тут он читает строку ( с окончанием 0D+0A ) - в оригинале так
                //string rData = SerialPort.ReadExisting();     // тут он читает "текст" и НЕ_ЖДЁТ CR+LF ( 0D+0A )

                int readSP = SerialPort.ReadByte();           // тут мы считываем каждый байт - это я организовал
                //Debug.Log(readSP);                             // выводим принятый байт в логи


вторая версия кода. Но я не стал ничего переделывать. оставил чтение по 1 байту.
Код

            // Убедитесь, что порт открыт. Если не пропустить и ничего не делать
            if (SerialPort.IsOpen)
            {
                // Чтение серийных данных до...
                string rData = string.Empty;

                // переключаться между ReadLine или ReadTo
                switch (ReadDataMethod)
                {
                    case ReadMethod.ReadLine:
                        rData = SerialPort.ReadLine(); // читать до CR+LF ( \r + \n ) ( 0D+0A )
                        break;
                    case ReadMethod.ReadToChar:
                        rData = SerialPort.ReadTo(Delimiter); // читать до (разделителя) - в скобках указать что будет являться разделителем
                        break;
                }


не успеваю за своими мыслями......
 
uwrteyДата: Вторник, 08.03.2022, 04:41 | Сообщение # 66
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Победил задержку обработки данных применив новый скрипт от dyadica
// в феврале 2022г автор добавил многопоточность (threading)

https://github.com/dyadica
https://dyadica.github.io/blog/unity3d-serialport-script/
,,,
https://dyadica.github.io/blog/adding-events-to-the-serialport-script/
https://dyadica.github.io/blog/unity3d-serialport-script/
https://dyadica.github.io/blog/updating-the-unity_serialport-script/

юзает UNITY 2021.2.12f1 Personal* <DX11>
https://unity3d.com/unity/whats-new/2021.2.12

Теперь задержка минимальная - меня в принципе устраивает
В коде удалил очистку буфера
В драйвере USB-TTL не делал ни каких настроек - по умолчанию все оставил
Код оставил как есть - чтение по 1 байту - не пришлось переделывать на чтение строки.

ПС:
правда в самой юнити теперь почему то не крутится компас, хотя из под винды все работает
возможно вопрос можно решить с помощью функции "Thread.Sleep(100);"
уменьшив или увеличив значение
Еще под большим вопросом как программа будет работать на слабом железе


не успеваю за своими мыслями......
 
uwrteyДата: Пятница, 11.03.2022, 15:09 | Сообщение # 67
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
ошибки:

1)
get_transform можно вызвать только из основного потока. - перенес в скрипт Horiz

get_isActiveAndEnabled можно вызвать только из основного потока. - нужно все визуальное перетащить в скрипт Horiz

https://stackoverflow.com/questio....-thread

2) Несовместимые завершения строк
Завершения строк в следующем файле не являются единообразными. Нормализовать завершение строк?
https://ru.stackoverflow.com/questio....E%D0%BA
Цитата


Строки в текстовом файле нужно как то разделять. И для этого в мире придумали три основных способа:

LF (ASCII 0x0A) используется в Multics, UNIX, UNIX-подобных операционных системах (GNU/Linux, AIX, Xenix, Mac OS X, FreeBSD и др.), BeOS, Amiga UNIX, RISC OS и других;
CR (ASCII 0x0D) используется в 8-битовых машинах Commodore, машинах TRS-80, Apple II, системах Mac OS до версии 9 и OS-9;
CR+LF (ASCII 0x0D 0x0A) используется в DEC RT-11 и большинстве других ранних не-UNIX- и не-IBM-систем, а также в CP/M, MP/M (англ.), MS-DOS, OS/2, Microsoft Windows, Symbian OS, протоколах Интернет.

И разные редакторы по разному относятся к разным переводам строк. К примеру, виндовый notepad не понимает LF переводы и показывает весь текст в одну строку.

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

Редактор студии знает о этой проблеме и заведомо предупреждает. Если Вы работаете только в винде и только студийным компилятором, то следует использовать CR+LF. Он естественен для винды.

Почему же так происходит, что в файле оказываются смешанные переводы строк?

Самый простой способ - используется сторонний редактор, в котором неверно выставлены перевод строк. И достаточно добавить таким редактором строку-другую, как проблема появиться.

Другой способ получит такую проблему - неверно настроенный git. Дело в том, что git, являясь изначально утилитой с мира Linux, использует LF для перевода строк. Но когда его портировали в видновс, с этим возникли проблемы. Поэтому сделали хак - гит умеет автоматически переконвертировать - то есть, в репозитории хранится с LF, а при checkout конвертирует в нужные. Хорошая статья на эту тему.


не успеваю за своими мыслями......
 
uwrteyДата: Понедельник, 14.03.2022, 00:00 | Сообщение # 68
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Кнопки
перезапуск сцены https://www.youtube.com/watch?v=sfZjahgStxY

Код


// библиотека

using UnityEngine.SceneManagement;

// компанда перезапуска сцены

SceneManager.LoadScene(SceneManager.GetSceneAt(0).name);



не успеваю за своими мыслями......
 
uwrteyДата: Вторник, 15.03.2022, 01:51 | Сообщение # 69
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
горячие клавиши на клавиатуре

https://docs.unity3d.com/ru/530/ScriptReference/KeyCode.html


не успеваю за своими мыслями......
 
uwrteyДата: Четверг, 17.03.2022, 00:55 | Сообщение # 70
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Unity

как прятать / скрывать игровые объекты

Код

GameObject.SetActive(false); //дизаблит всё вместе с дочерними объектами. Если в скобках true- энаблит соответственно
//GameObject.SetActive("тут указываем имя переменной типа "bool");


http://unity3d.ru/distribution/viewtopic.php?f=105&t=14501


не успеваю за своими мыслями......
 
uwrteyДата: Четверг, 17.03.2022, 01:18 | Сообщение # 71
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
железо

CHUWI LarkBox 4K,
GK3V,
CHUWI Herobox,
XCY MINI PC,
Chatreey AN1,
XCY X41,
Chatreey G1,
GPD P2 Max,
Intel Compute Stick ( STCK1A8LFC и STCK1A32WFC ) - Intel Atom Z3735F (2M Cache, up to 1,83 GHz)
Intel Compute Stick ( STK1A32SC и STK1AW32SC ) - Intel Atom x5-Z8330 (2M Cache, up to 1,92 GHz)
Intel Compute Stick ( STK2m364CC и STK2m3W64CC ) - Intel Core m3-6Y30 (4M Cache, up to 2,20 GHz)
Intel Compute Stick ( STK2mv64CC ) - Intel Core m5-6Y57 Processor (4M Cache, up to 2,80 GHz)
Lenovo Ideacentre Stick 300 - Intel Atom Z3735F - ОЗУ- 2GB DDR3 - SSD- Kingston 32GB+SD карта 32GB - Intel HD Graphics (1 ГБ видеопамяти)
Intel W5 PRO Mini PC 8Gb RAM

планшет

Onda v919 air dualOS ( Intel Atom Z3735F )
Acer icona tab W500
dexp Ursus KX110
Dell Venue 8 Pro 5530 ( 8 дюймов )
ACER Iconia W700GB
Lenovo miix 3 1030

софтина

Windows 10 LTSC
Windows 10 LTSB

шлейф
https://aliexpress.ru/item/1005002515211106

https://aliexpress.ru/item/32968002073

https://aliexpress.ru/item/1005003130568093

https://aliexpress.ru/item/4000014554460

монитор
9" Auto Car Rear View LED Display VGA RCA AV POS Touch Screen TFT LCD Monitor AU
ЖК-дисплей 480x480 Tft с платой драйвера HDMI. 4.0 inch. Hicenda/OEM/ODM
https://aliexpress.ru/item....8erDA0n
4-дюймовый ЖК-дисплей Wisecoco 720x720, 1:1, квадратный дисплей для ноутбука Smart Home, дисплей Raspberry Pi, плата драйвера MIPI
https://aliexpress.ru/item....8erDA0n

пример компа
https://usamodelkina.ru/13320-p.....com%2F


не успеваю за своими мыслями......
 
uwrteyДата: Четверг, 17.03.2022, 01:53 | Сообщение # 72
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Unity ( splash screen )

настройка начальной заставки Unity - Меняем splash screen

https://www.youtube.com/watch?v=hzjQitBvC5o

https://www.youtube.com/watch?v=ggAtvdi23gc


не успеваю за своими мыслями......
 
uwrteyДата: Пятница, 18.03.2022, 00:31 | Сообщение # 73
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
C#
изменить bool на противоположный ( логическая переменная )

Код

// где то начале задается логическое состояние
bool VariableName  = true;

// ниже команда меняющая логический тип на противоположный
VariableName = !VariableName ;


не успеваю за своими мыслями......
 
uwrteyДата: Пятница, 18.03.2022, 00:33 | Сообщение # 74
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
Unity

выход из "игры"
https://u.to/UEsQHA
Код


using UnityEngine;
using System.Collections;

// Quits the player when the user hits escape

public class ExampleClass : MonoBehaviour
{
   void Update()
   {
      if (Input.GetKey("escape"))  // если нажата клавиша Esc (Escape)
      {
         Application.Quit();    // закрыть приложение
      }
   }
}


********************
Свернуть окно https://www.cyberforum.ru/unity/thread2315206.html

Код


using UnityEngine;
using System;
using System.Runtime.InteropServices;

public class MinimizeWindow : MonoBehaviour
{
    
    [DllImport("user32.dll")]
    private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
    [DllImport("user32.dll")]
    private static extern IntPtr GetActiveWindow();

    static public void OnMinimizeButtonClick()
    {
        ShowWindow(GetActiveWindow(), 2);
    }
}


свернуть в окно

При сборке кнопка "Player settings" ( ну или Edit > Project setting )
На вкладке Player открыть Resolution & Presentation
"Resizeable window" - Изменяемый размер окна
"Detaluft is full screen" - Полноэкранный режим по умолчанию
"Detaluft screen height/width" - ширина и высота по умолчанию
и тд и тп

по коду
Код

    public bool fullScreen;             // переменная для полноэкранного / оконного режимов

    
    void Start( )
    {
        Screen.fullScreen = true;       // при старте полноэкранный режим

    }

    // кнопка "свернуть в окно"
    static public void ButtonRestoreDown()
    {
        Screen.fullScreen = !Screen.fullScreen;     // true - полноэкранный, false - в окне
    }
    


не успеваю за своими мыслями......
 
uwrteyДата: Суббота, 19.03.2022, 01:09 | Сообщение # 75
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Репутация: 11
Статус: Offline
http://flyguy.ru/piloting/slips/

прибор шарик ( скольжение )
Turn and Slip Indicator
новый пакет поискть тут https://mavlink.io/en/messages/common.html



педали и симулятор
https://www.youtube.com/watch?v=BkcYLXf-js8

скольжение
пояснение:
https://www.youtube.com/watch?v=yxy2MnUnfUM

симуляция ИЛ2-Штурмовик
https://www.youtube.com/watch?v=1HzM_CY7Dso&t=12s
Прикрепления: 2712087.jpg (67.9 Kb)


не успеваю за своими мыслями......
 
Форум » Разработка электронных устройств » Идеи ! » Grauncontrol. Mavlink. Телеметрия. Авиагоризонт. (Mavlink, ADS-B, Mission Planer, EFIS, PFD)
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz