Вверх ↑
Этот топик читают: Гость
Ответов: 17
Рейтинг: 0
#1: 2020-04-12 14:09:31 ЛС | профиль | цитата
добрый день всем! сильно не ругайте я только начинающий
создал программу все вроде работает только загвоздга в посылке сроки больше 7 байт
не знаю как реализовать деление при посылке
я отправляю 31FB000500000010 она на порт так и приходит! естественно нет правильного ответа от порта
надо чтобы было так 100831FB00050000\r210010\r нужно сделать чтобы программа делила все что больше 7 байт
заранее благодарен за любую помощь
программку прилагаю в силки https://mega.nz/file/2x5lXb5J#30ET9__ukbKHHR7f_IgsFsXMW_rRBC2dxAW0PjQJJXA
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26061
Рейтинг: 2120
#2: 2020-04-12 15:40:48 ЛС | профиль | цитата
benea333 писал(а):
программку прилагаю в силки

У нас есть собственный файлообменник -- Пользователи -> Файлы
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#3: 2020-04-12 16:29:22 ЛС | профиль | цитата
benea333 писал(а):
я отправляю 31FB000500000010 она на порт так и приходит! естественно нет правильного ответа от порта
надо чтобы было так 100831FB00050000\r210010\r нужно сделать чтобы программа делила все что больше 7 байт
На что делила?
Кто-нибудь может перевести эту хотелку на русский язык ?

Редактировалось 1 раз(а), последний 2020-04-12 16:31:30
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 17
Рейтинг: 0
#4: 2020-04-12 16:37:41 ЛС | профиль | цитата
nesco писал(а):
У нас есть собственный файлообменник -- Пользователи -> Файлы

sorry! вот файл!

--- Добавлено в 2020-04-12 16:56:55

Tad писал(а):
На что делила?
Кто-нибудь может перевести эту хотелку на русский язык ?

как вам объяснить! смотрите есть команда (3E00) чтобы прибор понял сколько байт ему отсылаю вставляю впереди команды
вставку 02 сейчас будет выглядеть так 023Е00 и прибор ответит! вот мне нужно автоматизировать эту вставку
но это все ладно самое интересное когда надо отсылать команду длиннее 7 байт чтобы порт понял что я ему отсылаю надо поделить от 7 байтов! пример такой на команду (31FB000500000010) правельно будет вот так 100831FB00050000\r210010\r вот как сделать чтобы автоматом делилась команда

Редактировалось 1 раз(а), последний 2020-04-12 16:56:55
карма: 0

0
файлы: 1connect.zip [2.7KB] [320]
Ответов: 16884
Рейтинг: 1239
#5: 2020-04-12 17:14:36 ЛС | профиль | цитата
Что за прибор ?
У прибора должен быть протокол обмена.
benea333 писал(а):
надо поделить от 7 байтов!
А это как ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 17
Рейтинг: 0
#6: 2020-04-12 17:16:56 ЛС | профиль | цитата
Tad писал(а):
Что за прибор ?

elm327
карма: 0

0
Ответов: 8887
Рейтинг: 823
#7: 2020-04-12 17:28:33 ЛС | профиль | цитата
Tad, ну какой протокол у ВОДИТЕЛЯ легковушки, нужны готовые приложения (наверное разные для разных машин и компьютеров), где все протоколы уже заложены, да и доверия китайцам нет, вместо феррари покажет жигули
карма: 19

0
Ответов: 17
Рейтинг: 0
#8: 2020-04-12 17:41:45 ЛС | профиль | цитата
Леонид писал(а):
Tad, ну какой протокол у ВОДИТЕЛЯ легковушки, нужны готовые приложения (наверное разные для разных машин и компьютеров), где все протоколы уже заложены, да и доверия китайцам нет, вместо феррари покажет жигули

леонид я автоэлектрик, я хочю создать свое приложение для удобства без всяких дорогих приблуд команды я знаю с короткими до 7 байт нет проблем проблема от 7 байт и выше если знаете как реализовать буду примного блогодарен

Редактировалось 1 раз(а), последний 2020-04-12 17:42:07
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2020-04-12 17:45:29 ЛС | профиль | цитата
Леонид, я это уже понял.
benea333 писал(а):
есть команда (3E00) чтобы прибор понял сколько байт ему отсылаю вставляю впереди команды
вставку 02 сейчас будет выглядеть так 023Е00
Это тоже понятно.
benea333 писал(а):
когда надо отсылать команду длиннее 7 байт чтобы порт понял что я ему отсылаю надо поделить от 7 байтов! пример такой на команду (31FB000500000010) правельно будет вот так 100831FB00050000\r210010\r
Если в начало цепляется количество байт, то почему 1008, а не 07 ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 17
Рейтинг: 0
#10: 2020-04-12 18:01:52 ЛС | профиль | цитата
Tad писал(а):
Если в начало цепляется количество байт, то почему 1008, а не 07 ?


потому как надо отправить всю строку а строка имеет 8 байт а порт принимает по 7 теперь все что больше 7 байт надо делить
так дожлно быть от команды 31FB000500000010

[12/04/2020 19:02:18] Written data (COM2)
31 30 30 38 33 31 46 42 30 30 30 35 30 30 30 30 100831FB00050000
0d 0a ..
[12/04/2020 19:02:18] Read data (COM2)
0d 3e 33 30 30 31 30 30 41 33 41 33 41 33 41 33 .>300100A3A3A3A3
41 33 0d 0d 3e A3..>
[12/04/2020 19:02:18] Written data (COM2)
32 31 30 30 31 30 0d 0a 210010..
[12/04/2020 19:02:18] Read data (COM2)
31 30 31 33 37 31 46 42 30 32 42 35 44 42 31 33 101371FB02B5DB13
0d 32 31 30 33 30 30 30 30 31 42 30 33 30 30 30 .210300001B03000
30 0d 32 32 30 30 30 32 30 32 30 32 30 32 30 32 0.22000202020202
41 33 0d 0d 3e A3..>

Редактировалось 3 раз(а), последний 2020-04-12 18:04:22
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#11: 2020-04-12 20:02:14 ЛС | профиль | цитата
Конкретно
как 31FB000500000010 превращается в 100831FB00050000\r210010\r
и 0d 0a это не \r
Леонид, Вы поняли? Если да, то просветите.

Редактировалось 1 раз(а), последний 2020-04-12 20:06:15
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 17
Рейтинг: 0
#12: 2020-04-12 20:55:32 ЛС | профиль | цитата
Tad писал(а):
100831FB00050000\r210010\r

если отправляю так все четко проходит и читает 100831FB00050000\r210010\r
но мне нужно не одну строку а за сотню поетому хотелбы автоматизировать
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#13: 2020-04-12 21:45:32 ЛС | профиль | цитата

Add(MainForm,2953706,49,119)
{
link(onCreate,419975:doWork2,[])
}
Add(Convertor,8427455,196,147)
{
Mode=3
link(onResult,8695297:doConvert,[])
}
Add(DoData,10028653,294,203)
{
link(onEventData,10752162:doAdd,[])
link(Data,5275570:Var2,[])
}
Add(Memo,10752162,357,203)
{
Left=10
Top=60
Width=350
ScrollBars=3
}
Add(Edit,12865122,147,77)
{
Left=15
Top=15
Width=345
Text="31FB00050000"
link(onEnter,419975:doWork1,[(187,90)(187,68)(102,68)])
}
Add(HubEx,419975,98,133)
{
link(onEvent,11856631:doEvent1,[])
}
Add(Str_Enum,14480948,147,147)
{
Delimiter=""
link(onEnum,8427455:doConvert,[])
link(onEndEnum,10028653:doData,[(188,160)(188,209)])
link(String,12865122:Text,[])
}
Add(Hub,11856631,112,133)
{
OutCount=3
link(onEvent1,10752162:doClear,[(337,139)(337,216)])
link(onEvent2,8651811:doClear,[(281,146)(281,160)])
link(onEvent3,14480948:doEnum,[])
}
Add(StrCatDelim,8651811,294,147)
{
Delimiter=" "
Point(doClear)
link(Str1,5275570:Var1,[(300,135)(288,135)(288,191)])
}
Add(GetDataEx,5275570,294,186)
{
link(Data,8651811:Result,[])
}
Add(Convertor,8695297,238,147)
{
Mode=6
link(onResult,8651811:doStrCatDlm,[])
}


Как-то так. Когда пойму порядок формирования строки для передачи в COM-порт, тогда продолжим.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 17
Рейтинг: 0
#14: 2020-04-12 21:56:22 ЛС | профиль | цитата
Tad писал(а):
Как-то так. Когда пойму порядок формирования строки для передачи в COM-порт, тогда продолжим.

спасибо большое но не то!!! вот как ваше схема отработала!

[12/04/2020 22:56:18] Written data (COM2)
20 33 33 20 33 31 20 34 36 20 34 32 20 33 30 20 33 31 46 42 30
33 30 20 33 30 20 33 35 20 33 30 20 33 30 20 33 30 30 35 30 30 3
30 20 33 30 20 33 30 20 33 30 20 33 31 20 33 30 0 30 30 30 31 30
20 33 31 20 30 44 31 0D
[12/04/2020 22:56:37] - Close port COM2

ответа нет

Редактировалось 4 раз(а), последний 2020-04-12 21:59:13
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#15: 2020-04-12 22:05:37 ЛС | профиль | цитата
benea333 писал(а):
ответа нет

Правильно. И не будет. Пока не пойму как считается добавка в начало.
100831FB00050000\r210010\r
Вот эти 1008 и 21 откуда получаются?
Откуда-то ты их взял? Не с потолка и не методом тыка.

Редактировалось 2 раз(а), последний 2020-04-12 22:11:15
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)