С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Загрузка на реальных эл.60 двк-1,2 прошла успешно спасибо большое за обновления (размер софта прошедшего загрузку через binsender 1000-157600)
Единственный неочевидный момент, с которым я сам столкнулся, когда сейчас попробовал объединить эти два конфига, чтобы добавить кнопки сигналов COM-порта из конфига COM_4.cfg в конфиг HX_COM.cfg - нужно в настройках объекта VT52 в секции [VT52.ini] - включить отображение собственной полосы статуса окна вкладки терминала, на которую по умолчанию и прикрепляются кнопки, для чего найти в конфиге HX_COM.cfg в секции [VT52.ini] параметр InitialStateOf[StatusBar] и установить его в 1:Сообщение от mig_25
Код:[VT52.ini] InitialStateOf[StatusBar] = 1 SaveChangesFor[StatusBar] = 0
Помимо этого, чтобы добавить кнопки сигналов COM-порта из конфига COM_4.cfg в конфиг HX_COM.cfg нужно (в конфиге HX_COM.cfg) сделать следующее:
1. Добавить создание кнопок в раздел [objects]:
Код:[objects] In_CTS = Ядро:SB_StateFlashButton In_DSR = Ядро:SB_StateFlashButton In_BRK = Ядро:SB_StateFlashButton In_DCD = Ядро:SB_StateFlashButton In_RNG = Ядро:SB_StateFlashButton Out_RTS = Ядро:SB_StateFlashButton Out_DTR = Ядро:SB_StateFlashButton Out_BRK = Ядро:SB_StateFlashButton
2. Подключить кнопки к COM-порту и окну вкладки терминала в разделе [links]
Код:[links] VT52 + ( In_CTS + ComPort ) | ( In_DSR + ComPort ) | ( In_BRK + ComPort ) VT52 + ( In_DCD + ComPort ) | ( In_RNG + ComPort ) VT52 + ( Out_RTS + ComPort ) | ( Out_DTR + ComPort ) | ( Out_BRK + ComPort )
3. Добавить в конец файла конфига разделы с настройками для каждой кнопки:
Код:; === INI SECTIONS === [In_CTS.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=0 IsInverted=0 ButtonON_Text=CTS ButtonOFF_Text=CTS StateName=In_CTS LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=400 PushedButton_Text_X_Offset_Px=0 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=0 PoppedButton_Text_Y_Offset_Px=2 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=160,205,160 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=0 Is_PushedButton_Border_ButtonLike=0 DoCenterAlignButtonText=1 [In_DSR.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=0 IsInverted=0 ButtonON_Text=DSR ButtonOFF_Text=DSR StateName=In_DSR LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=400 PushedButton_Text_X_Offset_Px=0 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=0 PoppedButton_Text_Y_Offset_Px=2 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=160,205,160 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=0 Is_PushedButton_Border_ButtonLike=0 DoCenterAlignButtonText=1 [In_BRK.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=0 IsInverted=0 ButtonON_Text=BRK ButtonOFF_Text=BRK StateName=In_BRK LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=400 PushedButton_Text_X_Offset_Px=0 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=0 PoppedButton_Text_Y_Offset_Px=2 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=230,140,140 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=0 Is_PushedButton_Border_ButtonLike=0 DoCenterAlignButtonText=1 [In_DCD.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=0 IsInverted=0 ButtonON_Text=DCD ButtonOFF_Text=DCD StateName=In_DCD LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=400 PushedButton_Text_X_Offset_Px=0 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=0 PoppedButton_Text_Y_Offset_Px=2 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=160,205,160 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=0 Is_PushedButton_Border_ButtonLike=0 DoCenterAlignButtonText=1 [In_RNG.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=0 IsInverted=0 ButtonON_Text=RNG ButtonOFF_Text=RNG StateName=In_RNG LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=400 PushedButton_Text_X_Offset_Px=0 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=0 PoppedButton_Text_Y_Offset_Px=2 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=160,205,160 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=0 Is_PushedButton_Border_ButtonLike=0 DoCenterAlignButtonText=1 [Out_RTS.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=2 IsInverted=0 ButtonON_Text=RTS ButtonOFF_Text=RTS StateName=Out_RTS LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=600 PushedButton_Text_X_Offset_Px=4 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=3 PoppedButton_Text_Y_Offset_Px=1 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=160,205,160 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=1 Is_PushedButton_Border_ButtonLike=1 DoCenterAlignButtonText=0 [Out_DTR.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=2 IsInverted=0 ButtonON_Text=DTR ButtonOFF_Text=DTR StateName=Out_DTR LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=600 PushedButton_Text_X_Offset_Px=4 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=3 PoppedButton_Text_Y_Offset_Px=1 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=160,205,160 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=1 Is_PushedButton_Border_ButtonLike=1 DoCenterAlignButtonText=0 [Out_BRK.ini] SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=2 IsInverted=0 ButtonON_Text=BRK ButtonOFF_Text=BRK StateName=Out_BRK LightsOFF_StateName= ButtonWidth=34 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=600 PushedButton_Text_X_Offset_Px=4 PushedButton_Text_Y_Offset_Px=2 PoppedButton_Text_X_Offset_Px=3 PoppedButton_Text_Y_Offset_Px=1 ButtonON_TextColor=0,0,0 ButtonOFF_TextColor=0,0,0 ButtonON_Background=230,140,140 ButtonOFF_Background=1,0,0 Is_PoppedButton_Border_ButtonLike=1 Is_PushedButton_Border_ButtonLike=1 DoCenterAlignButtonText=0
Последний раз редактировалось Patron; 04.07.2024 в 16:58.
mig_25 (05.07.2024)
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_14.10.24_16-45
Изменения:
1. Теперь объект Terminal_ComPort_Adapter следит за отключением/подключением соединения USB-serial, закрывая и снова открывая виртуальный COM-порт. Благодаря этому эмулятор терминала больше не надо перезапускать при перетыкании кабеля USB или при перезагрузке контроллера USB-serial.
2. Объекту Terminal_ComPort_Adapter добавлена настройка PortOpen_ANSI_STR, позволяющая адаптеру COM-порта отправлять в порт один или несколько байтов при каждом открытии (и переоткрытии) порта.
Например так:
Код:[ComPort.ini] PortName="COM3" BaudRate = CBR_256000 PortOpen_ANSI_STR="\005"
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_08.11.24_12-48
При подключении адаптера COM-порта к виртуальным COM-портам Windows обнаружилось, что если USB-устройство передаёт VID_0483, PID_5740 и поэтому обслуживается стандартным драйвером Windows USB-serial - объект адаптера COM-порта вместо загрузки процессора 0% создаёт загрузку 100%.
Изменения:
1. Теперь при подключении адаптера COM-порта к виртуальным COM-портам USB-serial, созданным стандартным драйвером Windows - загрузка процессора составляет 0%, а не 100%, как во всех предыдущих версиях эмулятора.
У терминала есть состояние Power, которое при обнулении очищает экран, поэтому в любой конфиг с терминалом можно добавить кнопку очистки экрана.
Для этого нужно следующее:
1. Создать объект кнопки (для кнопки без подсветки - SB_StatePushButton, а для кнопки с подсветкой - SB_StateFlashButton):
Код:[objects] CLS_Button = Ядро:SB_StatePushButton
2. Задать параметры кнопки в секции конфига с именем объекта кнопки:
Главное здесь:Код:[CLS_Button.ini] SB_Part_Data=nPosition[-1] | nPriority[7] | bHidden[0] TextFieldWidth_Px=0 TextFieldText= ButtonPushMode=1 IsInverted=1 ButtonON_Text= CLS ButtonOFF_Text=CLS StateName=Power ButtonWidth=40 ButtonHeight=18 ButtonFontSize=12 ButtonFontWeight=600
StateName=Power - кнопка управляет состоянием Power,
IsInverted=1 - при не нажатой кнопке состояние "включено".
ButtonPushMode=1 - кнопка без фиксации,
nPosition[-1] | nPriority[7] - позиция: крайняя справа, сдвигать из этой позиции кнопки с приоритетом ниже 7.
3. Подключить кнопку к состоянию Power объекта VT52 и посадить кнопку на интересующую полосу виджетов.
Код:[links] Config + CLS_Button + VT52
Для моего конфига результат получился такой:
Кнопка села на полосу [StatusBar] объекта Config. Если при размещении кнопки не указывается конкретная полоса виджетов - кнопка садится на полосу [StatusBar] заданного объекта.
Поэтому, если написать в конфиге так:
Кнопка сядет на полосу [StatusBar] объекта VT52.Код:[links] VT52 + CLS_Button + VT52 [VT52.ini] InitialStateOf[StatusBar] = 1
Скрытый текст
[свернуть]
Другие варианты:
Полоса [ControlBar] объекта Config:
Код:[links] Config[ControlBar] + CLS_Button + VT52 [Config.ini] InitialStateOf[ControlBar] = 1Скрытый текст
[свернуть]
Полоса [ControlBar] объекта VT52:
Код:[links] VT52[ControlBar] + CLS_Button + VT52 [VT52.ini] InitialStateOf[ControlBar] = 1Скрытый текст
[свернуть]
Полоса [TerminalStatusBar] объекта VT52:
Код:[links] VT52[TerminalStatusBar] + CLS_Button + VT52
Можно отметить, что кнопке CLS не удалось вытеснить кнопку RUS/LAT из крайней правой позиции. Причина этого в том, что в файле Terminal.ini для кнопки RUS/LAT задан приоритет 8:
Код:TerminalStatusBar_Part[RUS/LAT] = nPosition[-1] | nPriority[8] | bHidden[0]
Архив со всеми вариантами использованных конфигов: COM_12_x.cfg.zip
MiX (03.12.2024)
Patron, Добрый день.
Интересно было бы добавление служебной строки как в 15ИЭ-00-013, правда туда придется приделать таймер. Или как в КСМ.
Спасибо.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)