Вверх ↑
Ответов: 2438
Рейтинг: 693
#1: 2025-07-24 11:36:10 ЛС | профиль | цитата
Andrej77rv писал(а):
но конвертеры Hex-Int затем Int-Char почему то не конвертируют его
Где схема подтверждающая что не работает?
Andrej77rv писал(а):
Не получается преобразовать Hex число "00" в текстовый символ.

А какой символ вы хотите увидеть? Да и зачем собственно? Переводить Hex в символы имеет смысл если это текст и вы планируете что-то прочесть, после конвертации.
Add(MainForm,11785888,210,189)
{
Width=293
Height=453
link(onCreate,4712747:doEnum,[(250,209)(250,195)])
}
Add(Memory,14944199,259,140)
{
Default=String(45 52 00 1E 84 80 00 1E 84 80 01 01)
AddHint(-83,-56,187,26,Default)
}
Add(Str_Enum,4712747,259,189)
{
Delimiter=" "
link(onEnum,8976480:doConvert,[])
link(String,14944199:Value,[])
}
Add(ConvertorEx,8976480,301,189)
{
Mode=5
link(onResult,3102950:doConvert,[])
}
Add(ListBox,15207858,385,189)
{
Left=5
Top=10
Width=265
Height=395
Font=[MS Sans Serif,12,0,0,1]
}
Add(ConvertorEx,3102950,343,189)
{
Mode=4
link(onResult,15207858:doAdd,[])
}

}
Что к примеру вам дает такое отображение? Вы хотите пощупать пустоту? Или услышать тишину? Я это к тому что 00 в Hex это ноль и в Int, а у Char это пустота, что и видно на схеме. Можете заглянуть в любой шрифт и посмотреть какой символ стоит первым по значению 0.
Вот к примеру: https://www.petefreitag.com/cheatsheets/ascii-codes/
Andrej77rv писал(а):
Подать команду для считывания ПЗС линейки не получится.
То что вы не видите воздух вам же дышать не мешает. Если вы не видите символ, то это еще не значит что его нельзя передать. Вопрос в общем-то сводиться к одному, зачем вам его видеть именно как символ? Чтобы что?

Вот вам для наглядности схема:
Add(MainForm,2953706,49,203)
{
Width=584
Height=397
link(onCreate,4712747:doEnum,[])
}
Add(Memory,14944199,119,168)
{
Default=String(45 52 00 1E 84 80 00 1E 84 80 01 01)
AddHint(-83,-56,187,26,Default)
}
Add(Str_Enum,4712747,119,217)
{
Delimiter=" "
link(onEnum,8976480:doConvert,[])
link(onEndEnum,12733290:doEvent1,[(156,230)(156,293)])
link(String,14944199:Value,[])
}
Add(ConvertorEx,8976480,168,217)
{
Mode=5
link(onResult,3102950:doConvert,[])
}
Add(ConvertorEx,3102950,210,217)
{
Mode=4
link(onResult,5610725:doStrCat,[])
}
Add(StrCat,5610725,280,217)
{
Point(doClear)
link(Str1,1178670:Var1,[(286,205)(274,205)(274,261)])
}
Add(DoData,14672846,280,287)
{
link(onEventData,8109346:doValue,[])
link(Data,1178670:Var2,[])
}
Add(GetDataEx,1178670,280,256)
{
link(Data,5610725:Result,[])
}
Add(Length,15979923,490,210)
{
link(onLength,8283478:doStrCat,[])
}
Add(Hub,15727579,427,287)
{
link(onEvent1,15979923:doLength,[(465,293)(465,216)])
link(onEvent2,16154807:doText,[])
}
Add(Label,12977082,574,210)
{
Left=5
Top=5
Font=[MS Sans Serif,12,0,0,1]
}
Add(StrCat,8283478,532,210)
{
Str1="Длинна строки в символах: "
link(onStrCat,12977082:doText,[])
AddHint(-69,-53,159,13,Str1)
}
Add(Edit,16154807,490,294)
{
Left=5
Top=30
Width=260
Height=25
Font=[MS Sans Serif,12,0,0,1]
}
Add(Str_Enum,12409408,385,469)
{
Delimiter=""
link(onEnum,12837830:doConvert,[])
link(onEndEnum,7556775:doText,[(433,482)(433,559)])
link(String,8109346:Value,[])
}
Add(Memory,8109346,385,287)
{
@Hint=#10:строка тут|
link(onData,15727579:doEvent1,[])
AddHint(-27,-37,68,13,@Hint)
}
Add(Button,4664207,280,469)
{
Left=25
Top=70
Width=95
Height=30
Font=[MS Sans Serif,12,0,0,1]
Caption="Проверка"
link(onClick,12409408:doEnum,[])
}
Add(ConvertorEx,12837830,483,469)
{
Mode=3
link(onResult,11509053:doConvert,[])
}
Add(ConvertorEx,11509053,532,469)
{
Mode=6
link(onResult,524377:doStrCatDlm,[])
}
Add(Label,7556775,616,553)
{
Left=140
Top=75
Width=4
Height=4
Font=[MS Sans Serif,12,0,0,1]
Caption=""
link(Text,12157360:Var2,[])
}
Add(Hub,12733290,245,287)
{
link(onEvent1,14672846:doData,[])
link(onEvent2,5610725:doClear,[(269,300)(269,230)])
}
Add(StrCatDelim,524377,616,469)
{
Str2=" "
link(Str1,12157360:Var1,[(622,457)(613,457)(613,516)])
}
Add(GetDataEx,12157360,616,511)
{
link(Data,524377:Result,[])
}
Add(InfoTip,14183585,273,434)
{
Info=#35:Конвертировать строку обратно в Hex|
Width=449
Height=172
}
Строка конвертируется в символы, их количество 12 и их можно конвертировать обратно в Hex. Но отобразить стандартно не получиться.
Если вам в Com порт посылать то должно хватить.

А это так для понимания что строка не всегда то что ты видишь:
Add(MainForm,2953706,77,273)
{
Width=325
Height=223
}
Add(Edit,5704432,210,147)
{
Left=75
Top=55
Text="\0"
}
Add(Edit,3082782,287,147)
{
Left=135
Top=55
Text="\10"
}
Add(Button,13769784,147,266)
{
Left=195
Top=55
Caption="Равны?"
link(onClick,2864572:doCompare,[])
}
Add(If_else,2864572,210,266)
{
link(onTrue,6094948:doMessage,[])
link(onFalse,14695700:doMessage,[(282,279)(282,335)])
link(Op1,5704432:Text,[])
link(Op2,3082782:Text,[(223,222)(293,222)])
}
Add(Message,6094948,322,266)
{
Message="Да"
}
Add(Message,14695700,322,329)
{
Message="Нет"
}
Add(Edit,2089334,210,406)
{
Left=75
Top=105
Text=""
}
Add(Edit,12136484,287,406)
{
Left=135
Top=105
Text=""
}
Add(Button,6571360,147,525)
{
Left=195
Top=105
Caption="Равны?"
link(onClick,13875886:doCompare,[])
}
Add(If_else,13875886,210,525)
{
link(onTrue,5754090:doMessage,[])
link(onFalse,3595927:doMessage,[(282,538)(282,594)])
link(Op1,2089334:Text,[])
link(Op2,12136484:Text,[(223,481)(293,481)])
}
Add(Message,5754090,322,525)
{
Message="Да"
}
Add(Message,3595927,322,588)
{
Message="Нет"
}
Для пользователя данные (их отсутствие) во всех текстовых полях одинаковые, но это не так.
карма: 11

0
Редактировалось 2 раз(а), последний 2025-07-24 12:08:09