unit user_types; interface uses SysUtils, Classes; Const REPEAT_AMOUNT = 5; DEVICE_MESSAGE_LENGTH = 2400; //длина посылки в байтах DEVICE_BUFFERS = 29440; //длина буферов чтения - записи DEVICE_RED_WRITE_TIMEOUTS = 200; // значение тайм-аута на чтение запись DEVICE_MESSAGE_LENGTH_FOR_READING = 24000; //величина буфера, после которого производится чтение DEVICE_READING_SLEEP_VALUE = 10; // время в мс на которое засыпает программа при ожидании посылки DEVICE_BYTES_TO_READ = 24010; // количество байт для чтения из буфера DEVICE_FIRST_MESSAGE_BYTE_NUMBER = 0; // номер первого байта посылки DEVICE_LAST_MESSAGE_BYTE_NUMBER = 24001; //номер последнего байта в посылке DEVICE_FIRST_MESSAGE_BYTE_VALUE = 240; //$F0 - правильное значение первого байта DEVICE_LAST_MESSAGE_BYTE_VALUE = 255; //$FF - правильное значение последнего байта DATA_SOURCE_DEVICE = 0; //источник данных - устройство DATA_SOURCE_PROGRAM = 1; //источник данных - программа POWER_DIGITS = 2; //при переводе в EXX количество XX ACCURACY = 4; // количество знаков после запятой //Время загрузки в базу ttltd_IMMEDIATELY = 0; //сразу после приема посылки ttltd_AFTER_POINT = 1; // после всей точки ttltd_AFTER_LIMB = 2; // после всей конечности ttltd_AFTER_ALL_LIMBS = 3; // после рук и после ног ttltd_AFTER_ALL_POINTS = 4; // после всего измерения type //масссив исходных значений тока и напряжения в посылке TValue_UI = array [ 1..DEVICE_MESSAGE_LENGTH ] of Word; TRDValues_array = array [ 1..REPEAT_AMOUNT ] of double; //информация об измерении TMeasure_info_record = record ID: string; date: string; description: string; end; //массив записей об измерении TMeasure_info_array = array of TMeasure_info_record; //информация о каждом измеренном значении TMeasure_value_record = record source: integer; // param: TMeasure_Param; // point: TMeasure_Point; repeat_num: byte; value: double; value_UI: TValue_UI; end; //соответствующий массив TMeasure_value_array = array of TMeasure_value_record; //Информация о пациенте TPatinet_record = record //Поля записи ID: string; sirname: string; //Фамилия first_name: string; //Имя middle_name: string; //Отчество birth_day: string; //День рождения birth_month: string; //Месяц рождения birth_year: string; //Год рождения description: TStrings; //Описание - многострочное поле, поток measure_count: integer; //Количество проведенных измерений measures: TMeasure_info_array; //Массив измерений end; //Результат запроса к базе TQuery_results = record Success: boolean; Error_message: string; end; bit_array_8 = array[ 0..7 ] of byte; //массив из 8 чисел. Используется для байта bit_Array_32 = array[ 0..31 ] of byte; //массив из 32 чисел. Используется для 32-битного числа message_Array = array[ 0..24002 ] of integer; //массив посылки TMatrix = array [ 0..4 , 0..4 ] of double; //тип массива TIzm_array = array [ 0..2400 ] of double; //для матрицы 5 на 5 TMes_array = array [ 0..4 ] of message_Array; Tbool = array of boolean; TCol = array [ 0..4 ] of double; params_record = record //запись для результатов разбора //значения программы R_calc:extended; C_calc:extended; g0_calc:extended; g1_calc:extended; g2_calc:extended; g3_calc:extended; Usm_calc:extended; Ism_calc:extended; U_izm: TIzm_array; I_izm: TIzm_array; //значения прибора R_device:extended; C_device:extended; g0_device:extended; g1_device:extended; g2_device:extended; g3_device:extended; Usm_device:extended; Ism_device:extended; U_mis: boolean; I_mis: boolean; end; implementation end.