1887

пятница, моё

То чувство, когда написал многопоточную dll с асинхронными callback'ами, взаимодействующую с платой по udp, совместимую с любым языком программирования...
...и хрен кто оценит
62
Автор поста оценил этот комментарий
ссыль на гитхаб, оценим
раскрыть ветку (1)
13
Автор поста оценил этот комментарий
dll-ку надо было на днях отправить заказчику. Т.к. у него платы нет, то я сделал так, что она выдаёт липовые значения в коллбэки, из желаемого диапазона. Когда отправим плату, уже в каждой функции будет к ней обращение, и вывод реальных результатов.
показать ответы
2
Автор поста оценил этот комментарий
А чего жесты, а не репа?

Ну замечания:
1. Стиль и табуляция.
2. Мэджики.
3. Адовая смесь C и C++. Неплохо было бы выбрать что-то одно. Поскольку, тут хардвар, то советую переписать всё на С.
4. Буфер сообщение\й в обе стороны потенциально незащищён от ошибок чтения. В случае UDP это критично.

Вот видишь, все оценили.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
1. исправляю.
2. што?)
3. замечательно, но на с сложновато что-то в параллельный поток выкинуть. Ну, для меня, по крайней мере) И udp я реализовал с помощью инди-клиента, а это возможно только в плюсах. Изначально хотел через winapi и winsock, но там всё как-то замудрено, и у меня не получалось настроить таймаут. А в инди api, таймаут указывается прямо в функции приема пакета, что очень удобно)
4. чем лечится? я ещё не на столько силён в прогании :)

спасибо :)
показать ответы
1
DELETED
Автор поста оценил этот комментарий
Ты лучше холодильник бы починил
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
только если сломается
1
Автор поста оценил этот комментарий
Странно, это как раз таки.
Эзернет можно юзать кому не лень, посылая на микрушку лишнее гамно, в отличии от монополизированного RS232 / 485.
Да и дальность, всего 100 метров, в отличии от 1200 для 485го.
А вы под ARM пишете, я так понимаю?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
да, cortex m4. Устройство находится в метре от пк, и в сети кроме устройства и пк никого нет, так что всё спокойно
показать ответы
Автор поста оценил этот комментарий
ЕБАНУТАЯ ЛОГИКА ПИКАБУ?

Почему эта херня набрала уже под тысячу плюсов, а эти мои посты тупо слили?
http://pikabu.ru/story/moyo_studencheskoe_khobbi_1945761
http://pikabu.ru/story/moyo_poststudencheskoe_khobbi_1946019
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
ну я тебе в комменте плюсик поставил, больше уже ничем помочь не могу(
0
Автор поста оценил этот комментарий
Немного не понял вашей терминологии.
На данный момент работаю с 8-ю изолированными 485-ми сетями, в каждой сидит мастер. Помимо мастера, на линии по ~200 slave устройств. В определенных узлах стоят репитеры (адамы, icp-con и подобные). По всей видимости - это шина.
А что значит - линком?
Кстати, да, а почему автор не юзанул 485, гораздо же проще? Одну микруху max485csa на плату, и один RS-485 <-> USB на компутор. По мне, брать байты с COM намного проще, нежели с сокетами возиться. Открыл порт - да бери :-)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
согласен, проще) но заказчик захотел ethernet
показать ответы
1
Автор поста оценил этот комментарий
Причем тут TCP? Хотел UDP - юзай UDP, просто запили гарантированную доставку.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
со временем)
0
Автор поста оценил этот комментарий
что-то не дошло до меня как она взаимодействует с платой?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
на плате контроллер, на контроллере поднят udp
показать ответы
1
Автор поста оценил этот комментарий
уууу.... так это не взаимодействие, это слив. На серьезных объектах за такую реализацию обмена руки отрывают. И не имеет никакого значения, насколько быстро и правильно работает логика. Нет гарантированного обмена - всему твоему коду цена ноль.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
если останется время - сделаю гарантированную доставку. Проект через месяц сдавать. У нас в одной локальной сети будут находиться только компьютер и плата, и на 4-м Кортексе tcp поднимать всё-таки неохота...
показать ответы
0
Автор поста оценил этот комментарий
молодец, чувак. хорошей тебе пятницы!
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
спасибо, чувак, и тебе)
14
Автор поста оценил этот комментарий
Спорим, она несовместима с brainfuck? :)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
погуглил про этот язык... моя жизнь не станет прежней
показать ответы
3
DELETED
Автор поста оценил этот комментарий
Сранный т9. udp=бодр :))
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
мало того, что dll udp-запросы принимает, эти запросы ещё и приходят через несколько секунд после вызова функций) так что онли колбэк
62
Автор поста оценил этот комментарий
ссыль на гитхаб, оценим
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
гитхаб не юзаю) если очень хочется, могу проект залить куда-нибудь
показать ответы
0
Автор поста оценил этот комментарий
Девушка тебе нужна. Я когда что-то, на мой взгляд, крутое написал, то всегда показывал это свой девушке, а она делала умный вид что всё понимает и восхищается )
А вообще мы, программисты, как супергерои. Всё на нас держится, но никто не знает нашего имени.
раскрыть ветку (1)
Автор поста оценил этот комментарий
пизданул как батька) ну...я бывшей периодически рассказываю, что я накодил, она делает умный вид и восхищается :D
показать ответы
34
Автор поста оценил этот комментарий
Эм, чувак... Ты про стилевое оформление кода слышал? Сам же потом запутаешься в нем.
раскрыть ветку (1)
Автор поста оценил этот комментарий
не слышал. вряд-ли запутаюсь, в самом верху всякие объявления, ниже функции, поток, а дальше уже проверки, которые идут на экспорт, и перед каждой небольшие комментарии. В последних их нет, т.к. времени не было
показать ответы
112
Автор поста оценил этот комментарий
Залей на github.
раскрыть ветку (1)
19
Автор поста оценил этот комментарий
окей, гайз
исходник:
https://gist.github.com/63cdc8893d3ddbbdb021.git
хидер:
https://gist.github.com/199e736f465c9ca64e4b.git

гуи-программку для теста этой балды тоже выложить?)
показать ответы
53
Автор поста оценил этот комментарий
Когда-нибудь точно запутаешься. Оформлять код сложно только на первых порах, потом станет привычно. В нормально оформленном коде сразу видны отдельные блоки, невозможно запутаться в скобках, да и просто приятнее смотреть на него. Сам глянь, я одну из твоих функций переписал: http://pastebin.com/6t6vbZW1
Алсо, у тебя там sizeof(str) - лучше не делай так, тоже когда-нибудь запутаешься. Если задавать строку как char str[20], то тогда sizeof(str) вернет 20, как нужно. А если как char * str = new char[20], то вернет sizeof(char *). Если размер фиксированный - задай его какой-нибудь константой, типа
const size_t STR_SIZE = 20;
char str[STR_SIZE];
...
memset(str, 0, STR_SIZE);
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
а, красивое оформление скобочек) слышал, на парах программирования пользовался)) в коде просто иногда забывается, особенно в потоке, я его вчера на скорую руку кропал. Да, надо будет оформить)
Насчёт массивов - сверху в дефайнах есть lendatain и lendataout, но так получилось, что ими я особо не пользуюсь. Спасибо тебе большое, чувак, сделаю динамическое выделение памяти) ну или через вектор. Я ещё с bytedynarray не совсем разобрался... странный он)
показать ответы
14
Автор поста оценил этот комментарий
Ага. То чувство, когда написал восьмидесятистраничную заявку для участия в аукционе и не с кем поделиться этой радостью. Только с заказчиком, который деньги за этот аукцион уже освоил и распилил, а поэтому очень не рад видеть твою правильно составленную заявку.
Или то же самое чувство, когда ты две недели убеждал бюрократических идиотов заказчика принять твою работу и наконец то вам за нее заплатят. Но все думают, что ты хлещешь чай и пинаешь хрен, перекладывая бумажки с места на место.
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Сочувствую, бро. Мне пришлось писать 9-страничную документацию с описанием экспортных функций
0
Автор поста оценил этот комментарий
Дорога вам на киберфорум, там еще и засрать могут работу xD
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
без него не обошлось) но код выкладывать пока рано, если на то пошло)
11
Автор поста оценил этот комментарий
Гарантированная доставка по udp?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
именно. Ненадёжный он, но простой
3
Автор поста оценил этот комментарий
А гарантированная доставка как реализована?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
пока никак, не задумывался об этом. Если останется время, или начальство потребует, буду в начало каждого пакета его номер пихать, например...
Сейчас перед отправкой каждого запроса идёт проверка подключения к плате - отсылается пакет, если приходит такой-то ответ, то всё хорошо, едем дальше, если приходит другой пакет, всё плохо, если не пришло вообще ничего, ждем 300 мсек, пробуем ещё пару раз, если ничего не пришло - плата не подключена
показать ответы
2
Автор поста оценил этот комментарий
Проект явно студенческий, и если нету требований по безопасности/надежности, зачем оно надо ?..
Что вы подразумеваете под гарантированной доставкой?

На серьезных объектах предъявляют требования не только по надежности, но и по безопасности, что подразумевает сертификацию не только ПО но и средств передачи данных.Серьезные объекты не работают на Windows, там используются системы реального времени на которых реализовать и доказать безопасность обмена на UDP/TCP .... Нет возможности в общем.
Там везде применяется резервирование (питание/управляющие устройства итд итп), а ПО/процесс разработки проверяется на соответствия стандартам.

И там не используется C++/интерпретируемые языки. Только Си/Асм.

Разной задаче - разный инструмент.

Автору добра и удачи !
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо!
Да, студенческий, я второй курс закончил :)
Требований нет, начальство одобряет.
И тебе добра и удачи)
3
Автор поста оценил этот комментарий
Имеется в виду что для "гарантированности" надо использовать TCP)
RTFM OSI.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
его ебануться реализовывать) особенно на контроллере
показать ответы
23
Автор поста оценил этот комментарий
Ты бы сделал длиннопост, описал бы плату, показал пустые кофейные банки, выложил бы код и тебя заминусовали бы за использование нескольких "if" вместо "case ... of".
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
линк на гитхаб выше)
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества