Содержание
Библиотека crwlib - это набор кодов (в основном на языке Free Pascal) для пакета CRW-DAQ и других (сопутствующих) проектов команды DaqGroup.
Библиотека crwlib должна использоваться по определенным правилам.
Во все проекты и модули где-то в начале кода включается файл общих определений _crw_sysdef.pas.
Это можно сделать выражением {$I _crw_sysdef}
. Смотрите, например, файл _crw_alloc.pas.
Сразу перед или после общих определений включается декларация режима совместимости - обычно
это {$IFDEF FPC}{$mode objfpc}{$ENDIF}{$H+}
или {$IFDEF FPC}{$mode Delphi}{$ENDIF}{$H+}
.
Выражение {$H+}
в конце включает поддержку длинных строк (что строго обязательно).
Первым uses модулем должен быть модуль _crw_sharemem.pas.
Этот модуль инициализирует менеджер общей памяти, поэтому он должен быть первым в списке,
что гарантирует инициализацию менеджера памяти до того, как начнется выделение динамичекой памяти.
Поскольку пакет CRW-DAQ и большинство других проектов команды DaqGroup являются многопоточными,
необходимо после менеджера общей памяти включить в список uses каждого модуля выражения:
{$IFDEF UNIX} cthreads, dl, {$ENDIF} {$IFDEF WINDOWS} windows, {$ENDIF}
.
Включение модуля cthreads в Unix версии обеспечивает правильную инициализацию кода поддержки потоков.
В качестве шаблона нового модуля можно использовать файл _crw_xxxx.pas.
Этот шаблон содержит пустой модуль **_crw_xxxx*, в котором надо xxxx заменить на нужное имя.
В шаблоне уже прописаны указанные выражения.
Библиотека crwlib является частью проекта (пакета) CRW-DAQ и содержит следующие файлы.
Модуль (файл) | |
---|---|
Основные файлы библиотеки: | Файлы модулей с программыми кодами библиотеки (Free Pascal). |
_crw_alloc.pas | Модуль работы с памятью, исключениями, реестр объектов и атомарные операции. |
_crw_adodb_tlb.pas | Модуль заголовков интерфейса баз данных ADO (ADO type library) для Windows. |
_crw_ascio.pas | Модуль асинхронного консольного ввода-вывода (для консольных задач серверного типа). |
_crw_appforms.pas | Модуль поддержки форм (окон) TForm и связанных с ними процедур. |
_crw_apptools.pas | Модуль команд уровня приложения (application tools) для облегчения кодирования. |
_crw_apputils.pas | Модуль утилит уровня приложения (application utilities) для облегчения кодирования. |
_crw_assoc.pas | Модуль обработки файловых ассоциаций (association) - действий по расширению файла. |
_crw_az.pas | Модуль "анти-зомби" (anti-zombie) для завершения задач после завершения родителя. |
_crw_base32.pas | Модуль быстрого де/кодирования строк алгоритмом base32 для передачи данных. |
_crw_base64.pas | Модуль быстрого де/кодирования строк алгоритмом base64 для передачи данных. |
_crw_bsencode.pas | Модуль быстрого де/кодирования строк алгоритмом backslash для передачи данных. |
_crw_cmdargs.pas | Модуль обработки аргументов командной строки (объект CmdArgs). |
_crw_calib.pas | Модуль содержит объекты калибровки (calibration) для преобразования данных. |
_crw_cgi.pas | Модуль поддержки CGI (common gateway interface) для WEB программирования. |
_crw_colors.pas | Модуль определяет цветовые константы (именованные цвета) и цветовые функции. |
_crw_couple.pas | Модуль содержит таблицы термопар (thremocpuple) и зависимостей для калибровок. |
_crw_crypt.pas | Модуль криптографических функций (cryptography), hex_encode/decode, вычисление MD5. |
_crw_curves.pas | Модуль содержит объект "кривые" (curve) для описания массивов точек (x,y). |
_crw_daqevnt.pas | Модуль реализует события системы DAQ (daq events) и средства их обработки. |
_crw_daqtags.pas | Модуль реализует базу данных (таблицу) тегов для системы сбора данных (daq tags). |
_crw_dbcon.pas | Модуль констант интерфейса баз данных ADO (database constants) для Windows. |
_crw_delauna.pas | Модуль реализует метод триангуляции Делоне (Delauna) для рисования 3D поверхностей. |
_crw_dim.pas | Модуль интерфейса к библиотеке DIM (distributed information manager). |
_crw_dima.pas | Модуль DIM-агента (dim_agent) для связи по DIM через сервер dimsrv. |
_crw_dimc.pas | Модуль реализует клиетскую библиотеку классов для DIM (dim client). |
_crw_dimq.pas | Модуль реализует потокобезопасную очередь (dim queue) для обработки данных DIM. |
_crw_dims.pas | Модуль реализует серверную библиотеку классов для DIM (dim server). |
_crw_dynar.pas | Модуль димнамических 1,2D массивов (dynamic array) с потокобезопасностью и защитой. |
_crw_ee.pas | Модуль интерпретатора выражений (expression evaluator) для интерактивных расчетов. |
_crw_ef.pas | Модуль элементарных математических функций (elementary functions) для расчетов. |
_crw_eldraw.pas | Модуль элементарных функций для рисования (elementary drawing) графики. |
_crw_environ.pas | Модуль для работы с переменными среды окружения (environment variables). |
_crw_fft24.pas | Модуль функций быстрого преобразования Фурье для размера массивов, кратного 2 или 4. |
_crw_fft.pas | Модуль функций преобразования Фурье (fast Fourier transform) для мат.расчетов. |
_crw_fifo.pas | Модуль реализует быструю потокобезопасную очередь FIFO (first in, first out). |
_crw_fio.pas | Модуль функций файлового ввода-вывода (file input/output). |
_crw_fpu.pas | Модуль FPU (float point unit) - функции поддержки математического сопроцессора. |
_crw_fsm.pas | Модуль реализует Конечные Автоматы (finite state machine) для задач управления. |
_crw_funmin.pas | Модуль функций многомерной минимизации (function minimization) для расчетов. |
_crw_guard.pas | Модуль функций защиты (guard) для системы прав доступа пакета CRW-DAQ. |
_crw_guiutils.pas | Модуль графических (GUI) утилит - формы, кнопки, фонты и т.д. |
_crw_hash.pas | Модуль функций быстрого некриптографического хеширования (hash) для индексации. |
_crw_hl.pas | Модуль хешированного списка (hash list) для быстрой индексации данных по ключу. |
_crw_i8255.pas | Модуль драйвера цифрового ввода-вывода на базе чипа I8255 для систем управления. |
_crw_lm.pas | Модуль сетевых функций (lan manager) для поддержки сети, в основном Windows. |
_crw_lmd.pas | Модуль для сбора данных в режиме списка данных (list mode data) для спектрометрии. |
_crw_lsqmin.pas | Модуль функций минимизации методом МНК (least squares minimization) для расчетов. |
_crw_lsqpoly.pas | Модуль реализует полиномы методом наименьших квадратов (least square polynoms). |
_crw_meta.pas | Модуль реализует метаданные (metadata) (контрольные суммы) для файлов конфигурации. |
_crw_mmt.pas | Модуль мультимедийного таймера (multimedia timer) для периодического опроса. |
_crw_netif.pas | Модуль поддержки сетевого интерфейса (network interface) и чтения параметров сети. |
_crw_opc.pas | Модуль заголовков интерфейса автоматизации OPC DA для Windows. |
_crw_pio.pas | Модуль для работы с портами ввода-вывода (port in/out) процессора. |
_crw_pipe.pas | Модуль реализует именованные каналы (named pipes) для связи процессов IPC. |
_crw_pkk4.pas | Модуль содержит драйвер CAMAC контроллера PKK4 для систем сбора данных. |
_crw_plut.pas | Модуль утилит рисования (plot utilities) для (виртуального) рисования 2D фигур. |
_crw_proc.pas | Модуль функций для работы с процессами (process) операционной системы. |
_crw_regexp.pas | Модуль поддержки регулярных выражений (regular expression) для обработки текста. |
_crw_riff.pas | Модуль поддержки формата RIFF (ResourceInterchangeFileFormat) включая CRW, WAV. |
_crw_rtc.pas | Модуль функций времени (real time clock) для быстрого измерения реального времени. |
_crw_rtdtc.pas | Модуль содержит таблицы калибровок (resistive thermo detectors + thrermo couples). |
_crw_runerr.pas | Модуль поддержки для обработки ошибок времени исполнения (runtime errors). |
_crw_serio.pas | Модуль поддержкeпоследовательных COM портов (serial in/output) ввода-вывода. |
_crw_sesman.pas | Модуль поддержки сессий (session manager) при запуске нескольких сессий программы. |
_crw_sharemem.pas | Модуль менеджера (общей) памяти. Всегда должен быть первым uses модулем. |
_crw_sharm.pas | Модуль общей памяти (shared memory) для межпроцессного взаимодействия IPC. |
_crw_simplex.pas | Модуль для решения задач линейного программирования симплексным (simplex) методом. |
_crw_smirtl.pas | Модуль поддержки прокси (smi runtime library) для Конечных Автоматов SMI. |
_crw_smiuirtl.pas | Модуль интерфейса пользователя (smi ui runtime library) Конечных Автоматов SMI. |
_crw_snd.pas | Модуль звуковой системы (sound) для воспроизведения звуковых сообщений. |
_crw_spcfld.pas | Модуль определяет специальные каталоги (special folder) для хранения настроек . |
_crw_spk.pas | Модуль речевого синтезатора (speaker) для произношения текстовых сообщений. |
_crw_spline.pas | Модуль реализует сглаживающие сплайны для аппроксимации данных. |
_crw_sort.pas | Модуль реализует алгоритмы быстрого поиска и сортировки (sort). |
_crw_str.pas | Модуль функций обработки строк (string) и тестов. |
_crw_svd.pas | Модуль матричных операций SVD (singular values decomposition) для расчетов. |
_crw_syscal.pas | Модуль системного калькулятора (system calculator) для потокобезопасных вычислений. |
_crw_sysdef.pas | Файл общих определений. Всегда должен включаться в код: {$I _crw_sysdef} |
_crw_sysid.pas | Модуль процедур для идентификации системы (system identification). |
_crw_task.pas | Модуль поддержки задач (task), т.е. управляемых процессов (супервизор процессов). |
_crw_tcp.pas | Модуль поддержки TCP сокетов (TCP socket) для связи по сети TCP/IP. |
_crw_th123.pas | Модуль реализует гистограммы (type histogram 1D,2D,3D) для статистических расчетов. |
_crw_uac.pas | Модуль поддержки UAC (user access control), в основном для Windows. |
_crw_uart.pas | Модуль поддержки UART (последовательных COM портов). |
_crw_vbox.pas | Модуль поддержки VirtualBox для гостевых виртуальных систем. |
_crw_wine.pas | Модуль поддержки WINE для приложений Windows. |
_crw_wmctrl.pas | Модуль процедур для управления и работы с окнами (window manager control). |
_crw_zm.pas | Модуль поиска нуля и минимума (zeromin), а также интеграла функции одной переменной. |
fpcx64mm.pas | Модуль менеджера общей памяти из пакета MoRMot2 для Linux x86_64 (альтернативный). |
synfpcx64mm.pas | Модуль менеджера общей памяти из пакета MoRMot для Linux x86_64 (вроде основной). |
Вспомогательные файлы библиотеки: | Описания, лицензия, статьи, и т.д. |
crwlib_index.md | Описание библиотеки crwlib - этот файл, который вы сейчас читаете. |
crwlib_license.md | Файл лицензионного соглашения для данной библиотеки и пакета CRW-DAQ. |
habr-534466.pdf | Очень полезная статья по переводу кода Delphi под Linux, рекомендуемая к прочтению. |
laz-unicode-en.pdf | Статья (en) о поддержке Unicode в Lazarus. |
laz-unicode-ru.pdf | Статья (ru) о поддержке Unicode в Lazarus. |
laz-multiplatform-en.pdf | Статья (en) о многоплатформенном программировании в Lazarus. |
laz-multiplatform-ru.pdf | Статья (ru) о многоплатформенном программировании в Lazarus. |
Успешного Вам использования библиотеки crwlib!
CRW-DAQ Copyright (c) 2001-2023 Alexey Kuryakin daqgroup@mail.ru