| #include "hydralink.h"   HL_CONNECT connect;HL_REQUEST request;
 void* result;
   connect.commdev = 0;        // Тип коммуникаций (COM-порт)connect.port = 1;                   // COM1
 connect.baud = 19200;       // 19200 бод
 connect.netno = 14;             // Сетевой номер прибора (14)
 
 request.cmask = HL_CONTOUR_1;                 // Виртуальный прибор(ы), данные которого запрашиваем (первый)
 request.infokind = HL_INFOKIND_CURRENT; // Получить значения текущих параметров (расходы, температуры, давления...)
 
 int error = HLINK_Read(&connect, &request, result); // Данные принимаются с прибора
   if(error) // Если ошибка получения данных{
 AfxMessageBox((CHAR*)result); // Проиндицировать сообщение об ошибке (расшифровка)
 }
 else // Данные успешно считаны с прибора
 {
 HL_CURRENT_VALUES cvs;
     HLINK_UnpackCurrent(&cvs, 0, result); // Распаковать принятые данные в структуру типа HL_CURRENT_VALUES
     if(cvs.t[0].type) // Если прибор измеряет температуру в прямом канале (T1), тоесть оборудован соотв. датчиком{
 if(cvs.t[0].e == 0) // Если значение температуры достоверно (нет ошибок измерения)
 {
 CString str;  str.Format("Температура T1 = "%.*lf [град]", cvs.t[0].pnt, cvs.t[0].dbl);
         AfxMessageBox(str);  // Проиндицировать значение температуры}
 else // Значение температуры недостоверно (есть ошибки измерения)
 {
 CHAR s[256];
         HLINK_DescribeErrors( cvs.t[0].e, ", ", s, sizeof(s) ); // Расшифровать код ошибки (получить текстовое описание)         AfxMessageBox(s); // Проиндицировать сообщение об ошибке}
 }
 else AfxMessageBox("Прибор не измеряет температуру T1");
   }   HLINK_Clear(result); |