|
COM port
|
|||
---|---|---|---|
#18+
Изучаю работу ком-порта. научился передавать/принимать символы по одиночке. Но мне надо передать/принять более длинные данные в шестнадцетеричной системе. Команда открытия канала связи со счетчиком: Код запроса =1h (1 байт) Уровень доступа (1 байт) Пароль (6 байт) Например: 01 02 02 02 02 02 02 02 попробовал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
чую - фигня, и монитор порта молчит - не пошло. Хотя по символу если отправлять - всё идет. Научите. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2019, 21:30 |
|
COM port
|
|||
---|---|---|---|
#18+
надо передать такие данные Запрос: 03 01 01 00 01 00 1F 00 1F 00 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2019, 21:34 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73Научите. Код: sql 1.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2019, 23:16 |
|
COM port
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Mizer73Научите. Код: sql 1.
да, это я понимаю. я не понимаю, как мой запрос из значений HEX собрать в data? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2019, 23:30 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73я не понимаю, как мой запрос из значений HEX собрать в data? Код: sql 1.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 01:22 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73 [src C++] strcpy(bufwr, q.c_str()); //занести в программный передающий буфер строку из Edit1 Научите. Edit1... Скажите, это Борланд? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 01:25 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73 Изучаю... 1) код у Вас совсем не алё, от слова совсем. Что за магические переменные w, q, bufwr, COMport ??? Обычно перед составлением вопроса на форуме надо пытаться самому разобраться досконально в том что делаешь. После этого убрать всё лишнее, оставив рыбу = саму суть вопроса. Код который Вы сюда постите должен(!) быть либо условно понятным либо готовым к компиляции. Иначе сообщество начнёт именно с этого - не компилляется... 2) При передачи данных вне компа, чётко описанные интерфейсы (как у Вас) - используют структуры как правило, выравненные на 1 байт. Заведите структуру, в ней опишите необходимые поля. А то по отношению к логики интерфейса у Вас сплошные магические числа 1,1,2,2 и т.д... А со структурой оно понятно и легче читается, сапотится, наследуется, юзается... 3) перед тем как бросаться в многопоточность, попытайтесь сделать в одном потоке(убрать всё лишнее). 4) если Вы поток не контролируете при подъёме - то рекомендую вообще его не запускать - Вам же пофигу встал он в обработчик оси или нет (а оно может секундами, минутами, часами не стартовать - читай про многопоточность)....Так зачем же нагружать тупой работой ось??? удачи Вам (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 13:27 |
|
COM port
|
|||
---|---|---|---|
#18+
petrav Mizer73 [src C++] strcpy(bufwr, q.c_str()); //занести в программный передающий буфер строку из Edit1 Научите. Edit1... Скажите, это Борланд? да ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 17:33 |
|
COM port
|
|||
---|---|---|---|
#18+
kolobok0 Mizer73 Изучаю... 1) код у Вас совсем не алё, от слова совсем. Что за магические переменные w, q, bufwr, COMport ??? Обычно перед составлением вопроса на форуме надо пытаться самому разобраться досконально в том что делаешь. После этого убрать всё лишнее, оставив рыбу = саму суть вопроса. Код который Вы сюда постите должен(!) быть либо условно понятным либо готовым к компиляции. Иначе сообщество начнёт именно с этого - не компилляется... 2) При передачи данных вне компа, чётко описанные интерфейсы (как у Вас) - используют структуры как правило, выравненные на 1 байт. Заведите структуру, в ней опишите необходимые поля. А то по отношению к логики интерфейса у Вас сплошные магические числа 1,1,2,2 и т.д... А со структурой оно понятно и легче читается, сапотится, наследуется, юзается... 3) перед тем как бросаться в многопоточность, попытайтесь сделать в одном потоке(убрать всё лишнее). 4) если Вы поток не контролируете при подъёме - то рекомендую вообще его не запускать - Вам же пофигу встал он в обработчик оси или нет (а оно может секундами, минутами, часами не стартовать - читай про многопоточность)....Так зачем же нагружать тупой работой ось??? удачи Вам (круглый) это кусок из многопоточной реализации отправки/приёма данных по ком порту. мне все, что вокруг сейчас не интересно. мне интересно, как исходя из этого кода запихнуть в компорт последовательность символов (командную строку). это я и написал. физически с приемом и отправкой сообщений проблем нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 17:38 |
|
COM port
|
|||
---|---|---|---|
#18+
kolobok0 Mizer73 Изучаю... 1) код у Вас совсем не алё, от слова совсем. Что за магические переменные w, q, bufwr, COMport ??? Обычно перед составлением вопроса на форуме надо пытаться самому разобраться досконально в том что делаешь. После этого убрать всё лишнее, оставив рыбу = саму суть вопроса. Код который Вы сюда постите должен(!) быть либо условно понятным либо готовым к компиляции. Иначе сообщество начнёт именно с этого - не компилляется... 2) При передачи данных вне компа, чётко описанные интерфейсы (как у Вас) - используют структуры как правило, выравненные на 1 байт. Заведите структуру, в ней опишите необходимые поля. А то по отношению к логики интерфейса у Вас сплошные магические числа 1,1,2,2 и т.д... А со структурой оно понятно и легче читается, сапотится, наследуется, юзается... 3) перед тем как бросаться в многопоточность, попытайтесь сделать в одном потоке(убрать всё лишнее). 4) если Вы поток не контролируете при подъёме - то рекомендую вообще его не запускать - Вам же пофигу встал он в обработчик оси или нет (а оно может секундами, минутами, часами не стартовать - читай про многопоточность)....Так зачем же нагружать тупой работой ось??? удачи Вам (круглый) полностью код отправки выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 17:40 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73полностью код отправки выглядит так Копи-паст, бессмысленный и беспощадный. Ты можешь внятно объяснить зачем overlapped вывод стоит сразу рядом с бесконечным ожиданием его завершения? А если коды для отправки у тебя вводит пользователь, то их преобразование в двоичный вид - простенький цикл работы конечного автомата. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 17:52 |
|
COM port
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Mizer73полностью код отправки выглядит так Копи-паст, бессмысленный и беспощадный. Ты можешь внятно объяснить зачем overlapped вывод стоит сразу рядом с бесконечным ожиданием его завершения? А если коды для отправки у тебя вводит пользователь, то их преобразование в двоичный вид - простенький цикл работы конечного автомата. это обслуживание события. создаёт события по компорту ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 18:46 |
|
COM port
|
|||
---|---|---|---|
#18+
до чего люди странные. Просишь помощи в одном, дают советы в другом. Если код считаете плохим, скажите как лучше. ТОлько еще ни одного ответа на свой вопрос не получил. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 18:51 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73Если код считаете плохим, скажите как лучше Убрать overlapped. Везде. Убрать потоки. Везде. Mizer73ТОлько еще ни одного ответа на свой вопрос не получил. Это потому что ты ещё не задал ни одного внятного вопроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 19:01 |
|
COM port
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, потоки мне нужны. Пользуюсь потоком на чтение. А иначе как? У меня нет варианта ждать ответа. Все работает в онлайн. А как без оверлапт? Вопрос: мне надо передать в порт несколько байт. Такой вариант решения верный? Код: plaintext 1. 2.
п.с. WriteFile(COMport, data, sizeof(data), &temp, nullptr); - не пошел, ругается на nullptr ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 19:43 |
|
COM port
|
|||
---|---|---|---|
#18+
при Код: plaintext 1.
пошло Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 19:50 |
|
COM port
|
|||
---|---|---|---|
#18+
А как без Код: plaintext 1.
отслеживать событие отправки? Если использовать Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 19:54 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73 Код: plaintext 1.
WriteFile здесь синхронный, отслеживать нечего ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 21:45 |
|
COM port
|
|||
---|---|---|---|
#18+
Изопропил, тут - наверно нечего. А здесь Код: plaintext 1.
создаётся событие, которое отслеживается ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 21:58 |
|
COM port
|
|||
---|---|---|---|
#18+
Изопропил Mizer73 Код: plaintext 1.
WriteFile здесь синхронный, отслеживать нечего или имеется в виду, что если уж ушло, значит ушло? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 22:00 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73Пользуюсь потоком на чтение. А иначе как? Вариантов много, но поток - вполне правильный. На чтение. На запись поток не нужен. Overlapped убрать отовсюду. Если WriteFile вернулось без ошибки, значит всё записалось. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 23:15 |
|
COM port
|
|||
---|---|---|---|
#18+
Mizer73, Выше перечень с чего начать дал. Если с лёту не понял - значит дальнейший разговор мимо. Попытка с Вашей стороны упорствовать в ереси - похвально в плане упорства, но вот вектор направлять нужно не на тех кто подсказывает правильную дверь, а на гранит накопленных ранее человечеством знаний. Набор буковок называемое Вами кодом - обсуждать даже не охота, если нет от Вас вектора на обучение. За такой код - выгоняют сразу, ну или срезают зарплату в двое для начала... имхо конечно же. Из книг, для понимания - рекомендую альма матер = K&R Многопоточность для Вас пока рано. от слова совсем... Если гложит дух сомнений - тогда рекомендую погрызть книгу Рихтера "Windows для профессионалов". Там фундамент по синхронизации для форточек. Правда по скоростным решениям устарело - но фундамент тот-же и без него дальше Вы будете постоянно косячить. удачи Вам, она Вам потребуется, если не услышите (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 01:34 |
|
COM port
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Mizer73Пользуюсь потоком на чтение. А иначе как? Вариантов много, но поток - вполне правильный. На чтение. На запись поток не нужен. Overlapped убрать отовсюду. Если WriteFile вернулось без ошибки, значит всё записалось. понял, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 19:47 |
|
COM port
|
|||
---|---|---|---|
#18+
вопрос. Имею данные int data[] = { 0xd5,0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x12, 0x92}; пытаюсь передать массив int data[] в функцию, которая их отошлёт их в порт. Код: plaintext 1.
Код: plaintext 1. 2.
принимает из массива только первый байт ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 19:51 |
|
|
start [/forum/topic.php?fid=57&msg=39906574&tid=2017495]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 153ms |
0 / 0 |