|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|
Работа с ComPort05.10.2023, 16:03. Показов 6606. Ответов 149
Метки нет (Все метки)
Здравствуйте, работаю с ComPort и хочу передать данные через Writeport. Столкнулась с такой проблемой, что при вызове функции OutputBuffer заполнен, а когда перехожу по дебагу, то в этой функции значение буфера=no value (размер вычислился и передался).
Почему буфер не передался? Вообще для чего мне это надо. Мне надо принять данные со сторонней программы подключенное к ComPort . Как я понимаю для того,чтобы принять, мне надо сигнализировать,что принимаю. Поэтому изначально использую Writeport.
0
|
|
| 05.10.2023, 16:03 | |
|
Ответы с готовыми решениями:
149
Асинхронная работа с ComPort Работа с ComPort Library RS-232 ComPort |
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|||||||
| 06.10.2023, 15:07 | |||||||
Если p = @Buf, то p^ = Buf WriteFile - это что? Какого типа там параметры?
0
|
|||||||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
||||||||||||
| 06.10.2023, 15:25 [ТС] | ||||||||||||
0
|
||||||||||||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 06.10.2023, 15:37 | ||
|
По логике, она возвращает false, если не удалось записать.
0
|
||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|
| 06.10.2023, 15:39 [ТС] | |
|
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 06.10.2023, 16:28 | ||
|
https://learn.microsoft.com/en... -writefile Как я и предполагал, функция принимает хэндл на файл (в вашем случае это com-порт), нетипизированный буфер и размер данных. Возвращает true, если все в порядке, и false - если ошибка. В следующем параметре (у вас это i), функция возвращает количество реально записанных байт. Последний параметр должен быть nil, если файл не открыт в режиме OVERLAPPED. Что это такое - лень разбираться))) Так же можно получить более подробную информацию об ошибке через функцию GetLastError.
0
|
||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|
| 06.10.2023, 16:37 [ТС] | |
|
Constcat, Блин) Я тогда подумала описание(реализация) функции в коде и была удивлена,что это не внутренняя функция) А Вы имели в этом смысле)
а это читала. GetLastError супер) Сказал,что параметр задан не верно)
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|||||||
| 06.10.2023, 16:47 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|
| 06.10.2023, 22:41 [ТС] | |
|
Constcat, спасибо за помощь. Попытаюсь еще раз проверить. Скорее всего на данном этапе эту тематику не осилю (
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 06.10.2023, 22:44 | ||
|
Если функция отработает, и в файл выведется то, что нужно, значит дальше нужно будет уже com-порт копать.
0
|
||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|
| 06.10.2023, 22:54 [ТС] | |
|
Constcat, ))
Спасибо,руки зачесались)) Завтра оповещу, как прошло.
0
|
|
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||||||
| 07.10.2023, 02:54 | ||||||
|
Блин. Опять шляпки и собачки!
А посмотреть в исходники Дельфи влом?
Ну где тут нужны шляпки и собачки? Добавлено через 9 минут Ну да. Единственная непонятка для новичка, это второй параметр. Но и тут всё просто. Надо только довериться компилятору, который достаточно умный.
0
|
||||||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 07.10.2023, 11:51 | ||
|
lpNumberOfBytesWritten в варианте Delphi не указатель.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 07.10.2023, 13:21 | |
|
Да, если var стоит, то не нужно никаких собачек, просто нужно передать обычную переменную.
0
|
|
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||
| 08.10.2023, 02:47 | ||
|
Что если вдуматься одно и то же, только другими словами.
0
|
||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 08.10.2023, 12:51 | ||
|
Я понимаю, что Delphi пошло по пути максимального обкладывания программистов нежной ваткой, чтобы программисты не дай бог не перенапряглись, или (вдург!) им не пришлось самим контролировать выделение памяти (см. дискуссию о TObject.Create))))))), но в программировании есть и передача по значению, и передача по ссылке, и передача указателя на данные.
0
|
||
|
|
|
| 08.10.2023, 13:31 | |
|
а что такого? считаю, что Делфи тут очень удобна
если нужен указатель, то берем var, потому что все сделано за нас. и это закрывает 90% потребностей если указатель на указатель - берем PSomeType
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 08.10.2023, 15:30 | ||
|
А я буду ворчать, потому что считаю, что несмотря на удобства, программист должен понимать, что у него творится "под капотом". ))))
2
|
||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|||||||||||||||||
| 09.10.2023, 12:30 [ТС] | |||||||||||||||||
|
Ребята, получилось!)
Загвоздка была скорее всего в HANDLE hFile, // дескриптор файла После проверки,что обычный файл записался проверила дополнительно.
AzAtom, Скажите, пожалуйста, может Вы сможете помочь(вижу,что Вы онлайн). Мне по Com port надо передать hex команду. В зависимости от команды будет возвращаться значение параметра. Сейчас наладила WriteFile и я вижу, что передается моя команда и так же выводится значения параметра( он в hex) в стороннем приложении.(Пример. отправила 40(dec)тип integer- в стороннем приложение показало 28(hex= 40dec) и его значения 1A 1A B)
Теперь у меня вопрос.Мне надо прочитать(ReadFile)) если использовать integer, то оно само как-то перевело, а мне надо самой перевести ,тк для каждого параметра разный алгоритм вычисления(побитно). Поэтому, мне надо получить BIN или Hex код. КаК мне это сделать? Мое integer значения отправить в перевод? Так по калькулятору смотрю и это не то. Я не знаю,почему не добавляется как новое собщение
0
|
|||||||||||||||||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 09.10.2023, 12:39 | ||
|
Я имею ввиду - 1A или "1A"?
0
|
||
|
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
|
|||
| 09.10.2023, 12:48 [ТС] | |||
|
Добавлено через 3 минуты
0
|
|||
| 09.10.2023, 12:48 | |
|
Comport vs Delphi PHP+ComPort Переназначить comport Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|