Инструменты пользователя

Инструменты сайта


programmers:windows_сообщения_в_программе_хромос

Windows сообщения в программе Хромос

Исходящие BROADCAST сообщения от программы Хромос

СообщениеНазвание сообщенияWPARAMLPARAMВерсия Хромос
ChromosStartMessageНачало анализаномер прибораномер канала2.13.29
ChromosStopMessageЗавершение анализаномер прибораномер канала2.13.29
ChromosReadyMessageГотовность прибораномер прибора1-готов 0-неготов2.13.29
ChromosConnectMessageПодключение/отключение прибораномер прибора0-отключён; 1-подключён
-3 ошибка подключения
2.23.17
ChromosSignalMessageРассылка значения сигнала в детектореномер прибора - старший байт,
номер канала - младший байт
сигнал детектора (float 4 байта)2.17.43
ChromosSequenceMessageОтвет на запрос запуска серии на каналеномер прибора - старший байт,
номер канала - младший байт
количество анализов в серии
или -1 для бесконечного цикла
-2 анализ по данному каналу уже идёт
-3 невозможно подключиться к данному прибору
-4 нет такого прибора
-5 нет такого канала
-6 на канале не выбран метод
-7 канал отключен
2.17.43
ChromosStreamMessageОтвет на команду переключения входного потоканомер прибора - старший байт,
младший байт - не используется
номер заданного потока
-3 невозможно подключиться к данному прибору
-4 нет такого прибора
-8 прибор не поддерживает переключение потоков
-9 номер потока слишком большой
-10 конфигурация названий Т.Зон не верна
-11 нет сопротивления 820 Ом в зоне Клапан-1
2.19.34
ChromosDeviceModeMessageРежим прибораномер прибораномер режима2.21.2
ChromosMethodMessageОтвет на запрос установки метода на каналномер прибора - старший байт,
номер канала - младший байт
индекс метода (вычисленная контрольная сумма по алгоритму CRC32 от имени метода)
-1 Прибор не найден
-2 Прибор не подключен
-3 Неправильный номер канала
-4 Канал занят
-5 Название метода не найдено
-6 ошибка расчета crc32
2.19.48
ChromosErrorMessageСообщение об ошибкахномер прибораномер ошибки
ChromosAtmospherePressureMessageРассылка значения атмосферного давленияномер прибора атмосферное давление кгс/м2 (float 4 байта)2.23.12
ChromosReadParamMessageЗначение параметра от ГХ-1000номер прибора - старший байт,
адрес параметра - средний байт
номер параметра - 2 младшие байта
значение параметра
или ошибка
0xfffffffe - нет такого параметра
2.25.4

Входящие сообщения к программе Хромос

СообщениеНазвание сообщенияWPARAMLPARAMВерсия Хромос
ChromosPrepareMessageПеревод прибора в начальное состояние и запрос состояния готовностиномер прибора 2.13.29
ChromosConnectRequestMessageКоманда на подключение/отключение прибораномер прибора0-отключить; 1-подключить2.19.14
ChromosStartRequestMessageЗапуск канала на запись без проверки прибора на готовностьномер прибораномер канала2.15.8
ChromosSignalRequestMessageЗапрос сигнала детектораномер прибораномер канала2.17.43
ChromosSequenceRequestMessageЗапуск серии на каналеномер прибора - старший байт,
номер канала - младший байт
количество анализов в серии
или -1 для бесконечного цикла
2.22.29, 2.23.17
ChromosStreamRequestMessageПереключение входного потоканомер прибора - старший байт,
младший байт = 0
0 - обычная работа
1 - поток 1 (калибровка)
2 - поток 2
2.19.34
ChromosMethodRequestMessageКоманда на установку метод на каналномер прибора - старший байт,
номер канала - младший байт
индекс метода (вычисленная контрольная сумма по алгоритму CRC32 от имени метода)2.19.48
ChromosAtmospherePressureRequestMessageЗапрос атмосферного давленияномер прибора 2.23.12
ChromosReadParamRequestMessageЗапрос чтения параметра ГХ-1000номер прибора - старший байт,
адрес параметра - средний байт
номер параметра - 2 младшие байта
02.25.4

Комментарии

Номер прибора и номер канала считаются от нуля.

При первоначальном запуске дополнительного приложения необходимо один раз подать ПО Хромос сообщение ChromosPrepareMessage.
После подачи сообщения ChromosPrepareMessage программа Хромос всегда отвечает сигналом о неготовности, а затем происходят проверки состояния прибора.
И только через некоторое время прибор выходит в режим готовности, посылая соответствующий сигнал готовности ChromosReadyMessage.

Для запуска канала без проверки на готовность можно использовать сообщение WM_COMMAND со специальным значением WPARAM=40020+device*10+channel.

Использование API

Регистрация и отправка сообщений

  UINT sm = RegisterWindowMessage(_T("ChromosStartMessage"));
  ::PostMessage(HWND_BROADCAST, sm, num_adc, num_channel);
 
  UINT m_rq  = RegisterWindowMessage(_T("ChromosConnectRequestMessage"));
  BOOL CChromosApp::PreTranslateMessage(MSG* pMsg) {
	...
        if(pMsg->message==m_rq) {
	    // Что-то сделать
	    return TRUE;
	}
	...	
	return CWinApp::PreTranslateMessage(pMsg);
  }

Подробнее: RegisterWindowMessage PostMessage PreTranslateMessage

programmers/windows_сообщения_в_программе_хромос.txt · Последние изменения: 2018/03/22 13:54 — feser