purebasic.info

PureBasic forum
Текущее время: Ср окт 17, 2018 9:37 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: Сб окт 06, 2018 6:28 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Вот так примерно система его видит (хаб и 8 портов). Здесь на рисунке показан 2-х портовый преобразователь.


Вложения:
Безымянный.rar [179.62 KiB]
Скачиваний: 11
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 09, 2018 9:03 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Попробовал на другой микросхеме (USB-COM), все то же самое. Скомпилировал в PB 5.00 как простое приложение (не юникодное), убрал из кода проверку входного буфера порта - все работает стабильно. Наверное останусь на PB 5.00.
Спасибо всем за помощь!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт окт 12, 2018 9:51 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 618
Благодарил (а): 2 раз.
Поблагодарили: 34 раз.
Пункты репутации: 9
Предположу что пурик некоторые вещи компилит под одноимёнными флагами над функциями апи.
в частности создаёт процес своей проги heap proces (heapalloc)где выделяется память
и допускаю что он может использовать второй процесс из одной выделенной кучи памяти.
Посмотри как созаются прцессы и потоки в винапи и незабуть отписаться. :roll:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт окт 12, 2018 10:34 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Дело не в PB. ClearCommError возвращает не то что нужно.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт окт 12, 2018 10:49 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 618
Благодарил (а): 2 раз.
Поблагодарили: 34 раз.
Пункты репутации: 9
Пётр писал(а):
Дело не в PB. ClearCommError возвращает не то что нужно.

Шутить изволите?
Чья это функция??
Пурика или вин апи?
Если пурика в обёртке над апи, то к такой функции обёртки апи сколько процентов может быть доверия(сколько может быть процентов доверия)?
Если непосредственно апи то где гарантия в используемых флагов над ней(пост выше)? :roll:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт окт 12, 2018 11:31 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Сергейчик писал(а):
Пурика или вин апи?
Пуриковские функции можно найти на сайте микрософта? :D :D https://docs.microsoft.com/en-us/window ... rcommerror

Сергейчик писал(а):
Если непосредственно апи то где гарантия в используемых флагов над ней(пост выше)?
Каких флагов?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 13, 2018 12:27 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 618
Благодарил (а): 2 раз.
Поблагодарили: 34 раз.
Пункты репутации: 9
Пётр писал(а):
Сергейчик писал(а):
Пурика или вин апи?
Пуриковские функции можно найти на сайте микрософта? :D :D https://docs.microsoft.com/en-us/window ... rcommerror

Сергейчик писал(а):
Если непосредственно апи то где гарантия в используемых флагов над ней(пост выше)?
Каких флагов?

Я о том что возможно потоки работают в одной куче программы и данными которые возможно затираются
https://translate.google.ru/translate?h ... rev=search
Ведь почему то же в одной версии пурика всё работает а в другой нет,вот и причина где то есть.
Либо в потоках в одной куче или флаги процедур(вызывающих новый поток) фред поменял.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 7:45 am 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Сергейчик писал(а):
Посмотри как созаются прцессы и потоки в винапи и незабуть отписаться. :roll:


Как это сделать?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 2:20 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Сергейчик, причем здесь процессы и потоки?
Причем здесь HeapCreate?
В потоках используется TLS память. http://vsokovikov.narod.ru/New_MSDN_API ... torage.htm

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 4:04 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 618
Благодарил (а): 2 раз.
Поблагодарили: 34 раз.
Пункты репутации: 9
fil@tov писал(а):
Сергейчик писал(а):
Посмотри как созаются прцессы и потоки в винапи и незабуть отписаться. :roll:


Как это сделать?

Это надо изучать.
Можно наверное сначала посмотреть с какими частными кучками работает каждый поток(нет ли пересекающихся). :roll:
https://docs.microsoft.com/en-us/window ... cess-heaps


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 4:27 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Сергейчик, зачем искать черную кошку в темной комнате, особенно если ее там нет?
Вспомнилось.
Мужик ночью ползает под осветительным фонарем. К нему подходит милиционер:
- Мужчина, что вы делаете?
- Ключи потерял!!!!
- А где?
- Вооооон там.
- А что же вы тут ищете?
- А здесь светлее!

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 4:58 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 618
Благодарил (а): 2 раз.
Поблагодарили: 34 раз.
Пункты репутации: 9
Пётр писал(а):
Сергейчик, зачем искать черную кошку в темной комнате, особенно если ее там нет?
Вспомнилось.
Мужик ночью ползает под осветительным фонарем. К нему подходит милиционер:
- Мужчина, что вы делаете?
- Ключи потерял!!!!
- А где?
- Вооооон там.
- А что же вы тут ищете?
- А здесь светлее!

Так а где же проблема если с порта данные идут в целостности а где то в памяти исчезают? :roll:
Вот же к примеру упоминается про локальные кучи процесса
https://translate.google.ru/translate?h ... rev=search
В общем я и предложил выше получить дескрипторы локальных кучек и далее можно посмотреть с какими флагами они созданы.
может ещё сделать это
https://translate.google.ru/translate?h ... rev=search


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 5:19 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Сергейчик писал(а):
Так а где же проблема если с порта данные идут в целостности а где то в памяти исчезают?
Где написано что данные исчезают? Просто PB функция AvailableSerialPortInput и WinAPI функция ClearCommError возвращают неправильное число байт в буфере приема COM порта. viewtopic.php?p=90239#p90239

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 9:57 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Да, проблема появляется, когда включаю проверку входного буфера СОM порта. Не могу понять в чем дело.
Без проверки входного буфера программа блокируется на функции чтения данных из порта в случае, если данных нет (например, приборы выключены). В версии PB 5.00 программа НЕ блокируется на ф-и чтения при отсутствии байтов во входном буфере, поэтому я просто убрал проверку входного буфера из кода, и все работает стабильно, даже если приборы отключены и в порт ничего не приходит.

Может у меня где-то пересекаются потоки? Как отследить работу потоков, пересекаются они или нет?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 14, 2018 11:41 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 618
Благодарил (а): 2 раз.
Поблагодарили: 34 раз.
Пункты репутации: 9
fil@tov писал(а):
Да, проблема появляется, когда включаю проверку входного буфера СОM порта. Не могу понять в чем дело.
Без проверки входного буфера программа блокируется на функции чтения данных из порта в случае, если данных нет (например, приборы выключены). В версии PB 5.00 программа НЕ блокируется на ф-и чтения при отсутствии байтов во входном буфере, поэтому я просто убрал проверку входного буфера из кода, и все работает стабильно, даже если приборы отключены и в порт ничего не приходит.

Может у меня где-то пересекаются потоки? Как отследить работу потоков, пересекаются они или нет?

Вот что то про потоки и порт. :roll:
https://translate.google.ru/translate?h ... rev=search
https://translate.google.ru/translate?h ... rev=search


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB