ИНТЕРЕСНО C# и GRBL

ospkant

ЗНАЕТ ЧТО ГОВОРИТ
НАШ ЧЕЛОВЕК
Регистрация
11.02.2021
Сообщения
1 151
Реакции
2 028
Баллы
188
Адрес
Россия
Город
Москва
Имя
Сергей
Отчество
Павлович
Станок
cnc 3018 Pro
Прошивка
1.1
Доброго дня форумчане. Пока молодое поколение болеет (уже два дня) - решил изучить C#. В итоге получилось соединить свою программу с платой, на которой установлена GRBL прошивка. Есть один маленький косяк. Есть две программы - одна с назначенным через SerialPort вручную номером порта, а вторая с выбором порта через ComboBox и последующего подключения.
1) По первой программе - я не знаю как проводить проверку на открытие порта и при запуске программа ругается, когда ардуина не подключена, только ругается не через MessageBox (потому что я его нигде не прописывал), а прям конкретно матом.
2) По второй программе - при выборе COM порта необходимо нажимать на "Считать $$" при том, что когда порт закрыт - она опять ругается благим матом (опять не хватает проверки открытия порта, чтобы когда порт не открыт - button_click-и, которые используется для передачи Serial на Arduino был не активен). Минус этого способа - когда обновляешь программу через кнопку "обновить параметры" порты опять сбрасываются и приходится заново процедуру подключения проходить (что не удобно).

А так на обозрение... Программа работает, там надо последовательно сначала "обновить" => выбрать нужный порт => "Open", а потом можно что хочешь делать, в пределах разумного.
Только в таком порядке, а то он ругается (можно игнорировать и продолжить, но это не правильно)

Из плюсов еще : записал полное описание кодов $

Я новичок в C# и прошу совета, может здесь есть кто Гуру по нему?
P/s : Python и Java не нравятся? пока изучаю только C#

Кому интересно, в описании параметров GRBL добавил новый $155 и его полное описание.


Вот так собственно она выглядит

3018_SETUP_HELP.jpg
 

Вложения

  • GRBL_Setup_Help.zip
    374.9 KB · Просмотры: 6
  • Последнее редактирование:
Последнее редактирование:
Нашел самое простое решение проверки. Когда на кнопке написано "Open", все кнопки выключены, а когда "Close" - все кнопки включены. Правда пришлось отказаться от динамического обновления параметров $$ и кнопка запускается только один раз при включении (как не расширял экран, все время смещение на 10-12 строк получается, если второй раз обратиться к кнопке "Считать $$".


Протестируйте, кто не боится на своей плате и отпишитесь пожалуйста (я на своей тестировал).


if (buttonConnect.Text == "Open")
{
try
{
serialPort1.PortName = comboBoxPorts.Text;
serialPort1.Open();
buttonConnect.Text = "Close";
button2.Enabled = true;
button3.Enabled = true;
button5.Enabled = true;
}
catch
{
MessageBox.Show(" Ошибка подключения! \r\n Программа не может найти Serial COM");
}
}
else if (buttonConnect.Text == "Close")
{
buttonConnect.Text = "Open";
serialPort1.Close();
button2.Enabled = false;
button3.Enabled = false;
button5.Enabled = false;

Выкладываю файл (как удалить старый, который выше не знаю)



Информация взята и почерпнута из Микрософта

Это программа позволяет через консоль передачи параметров управлять не только параметрами, но и станком в целом. А весит она всего.....500кб !!! Python и Java такие веса и не снились. :)
 

Вложения

  • GRBL_Setup_Help.zip
    347.7 KB · Просмотры: 5
Нашел самое простое решение проверки.
Когда-то делал на "шарпе" простую программку для визуализации выхода на параметры паяла и фена своей паяльной станции, так тоже через try-catch проверку делал, типа
Bilderman 2023.03.04 20-30-31.pngBilderman 2023.03.04 20-29-37.png

А весит она всего.....500кб !!! Python и Java такие веса и не снились.
Нуну...
А перед этим будь любезен "слупить" несколько десятков мегабайт NET Framework, а если программа на C++" то ставь VC пакет, который тоже весит немногим меньше, иначе все эти килобайты не заработают на другой машине :)
Я когда пробовал на Дельфях что-то там пытаться, офигел - простая голая форма давала в экзешнике килобайт под 300, а итоговая программа весила несколько мегабайт. В те времена это было достаточно критично, ибо был диалап и "мопеды" на 56 кбит/сек.
Но, зато "всё своё ношу с собой" и никаких зависимостей, а для уменьшения размера - вон UPX какой-нибудь или просто архиватором пожать...
 
А перед этим будь любезен "слупить" несколько десятков мегабайт NET Framework, а если программа на C++" то ставь VC пакет
Да там на гигабайты расчет идет, с полным пакетом VS занимает около 20Гб:eek:. Unity2019 подключенная к C# (сам учусь и детей учу своих по-немногу полезным мобильным приложениям с 3д графикой) еще около 20Гб. И у меня еще "маловесная" VS Code с Platformio стоит, которая тоже около 5Гб. Итого 45Гб улетело. Но что не сделаешь, любое хобби оно такое - чем-нибудь жертвуешь.:)
 
  • Последнее редактирование:
Последнее редактирование:
Да там на гигабайты расчет идет, с полным пакетом VS занимает около 20Гб:eek:.
Если без прибамбасок - достаточно скачать 3гб, в которых будет 3 версии: community, enterprise professional. community пользовать не советую, professional - самое то.

P.S. А если без VS-претензий - можно поставить Eclipse или, что совсем просто, что-то типа CodeBlocks
 
  • Последнее редактирование:
Последнее редактирование:
Если без прибамбасок - достаточно скачать 3гб, в которых будет 3 версии: community, enterprise professional. community пользовать не советую, professional - самое то.

P.S. А если без VS-претензий - можно поставить Eclipse или, что совсем просто, что-то типа CodeBlocks
Только это не C#, а С++ (Microsoft Visual Studio 2017 for C++). На С++ я лучше уж на VS Code с плагином или VS2019 - они очень простые (когда немного разберешься)... А для других языков IDE компании IntelliJ IDEA неплохие, но опять же - кто к чему привык, кто к чему смог приспособиться и кому что понравилось...;)
 
кто к чему привык, кто к чему смог приспособиться и кому что понравилось
Вооот. Главное - результат, а не количество гигабайт, занятых софтом :)
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать