Перейти к содержанию
    

Шаблон проекта для VS2010 C# реализующий USB HID

Поскольку возникла н6еобходимость написания прикладного софта для работы с разработанным USB HID устройством (измерительный прибор) перерыл кучу всего чтоб суметь это сделать под VS2010 C#. Подобного опыта ранее небыло. В результате остановился на generic_hid_cs_50.zip как на более-менее понятном. Поскольку мне вполне достаточно (пока) обмениваться пакетами в 64 байта, маленько упростил generic_hid. В результате получился HidTest. Но т.к. это мой первый опыт прошу помощи более знающих людей помочь "причесать" получившееся так, чтобы вышел шаблон пустого проекта. Наверняка понадобится не только мне, но и много еще кому. Если удастся сделать белее совершенный шаблон, например принимающий сообщения разной длинны, то будет только лучше. Спасибо.

 

generic_hid_cs_50.zip

HidTest.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну сами напросились :)

Код:

1. Использование типов Boolean, String, Int32 вместо bool, string, int соответственно, там где не надо. Между ними есть разница, см Гугл. Нужны они только в классе Hid, где объявлены PInvoke методы.

2. Форма имеет поле со ссылкой на себя FrmMy. Зачем?

3. AccessForm и иже с ним - вообще песня. Не надо пытаться дёргать форму из других потоков это почти всегда плохо. Нужно чтоб у формы и у этих других потоков были разделяемые данные - модель. Поток обновляет модель, форма периодически оттуда читает данные и обновляет свои элементы управления.

UI:

1. Форма ресайзится, а компоненты не двигаются - нужны Anchor и Dock

2. Нет валидации и фильтрации вводимых данных, в текстовые поля можно ввести что угодно и приложение упадёт.

3. TabOrder

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Между ними есть разница, см Гугл.

"Тип string — это псевдоним для типа String платформы .NET Framework." Пруф: http://msdn.microsoft.com/ru-ru/library/362314fe.aspx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну сами напросились :)

Код:

1. Использование типов Boolean, String, Int32 вместо bool, string, int соответственно, там где не надо. Между ними есть разница, см Гугл. Нужны они только в классе Hid, где объявлены PInvoke методы.

2. Форма имеет поле со ссылкой на себя FrmMy. Зачем?

3. AccessForm и иже с ним - вообще песня. Не надо пытаться дёргать форму из других потоков это почти всегда плохо. Нужно чтоб у формы и у этих других потоков были разделяемые данные - модель. Поток обновляет модель, форма периодически оттуда читает данные и обновляет свои элементы управления.

UI:

1. Форма ресайзится, а компоненты не двигаются - нужны Anchor и Dock

2. Нет валидации и фильтрации вводимых данных, в текстовые поля можно ввести что угодно и приложение упадёт.

3. TabOrder

Спмсибо. Замечание принято.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...