|
Типы аргументов:
'd' : integer (размер 4 байта)
'D' : back_int (integer обратный (4 байта, первый байт - старший)
'c' : byte / char (размер 1 байт)
'f' : double (размер 8 байт, float)
'p' : single (размер 4 байта, float)
'h' : word (размер 2 байта)
'q' : int64 (размер 8 байта)
's' : WideString (размер - до первых нулевых байт)
'b' : array[int] // массив, первый инт (первые 4 байта) - размер. общий размер = +4 байта.
'x' : array[byte] // массив, первый байт - размер, общий размер = +1 байт
'-' : пропуск размером '0000' '-(0000Desc)'
'z' : array[const] // блок фикс. размером '0000'. 'z(0000Desc)'
'a' : AsciiString // ANSI фикс. размером '0000'. 'a(0000Desc)'
't' : Ascii[byte] // ANSI, первый байт - размер, общий размер= +1 байт
'l': AsciiZ // 'l(0000Desc)'
// ANSI до первого нулевого символа
// либо до максимальной фиксированной длины '0000',
// если макс. = 0 то максимальная фиксированная длина ограничена размером пакета.
'v': vardat' // размер и цвет аргумента зависит от ф-ции GT2.name(ar1,pos,psize,pcol):res;
// см арг-ф-ции 'GET','GT2','FOR','VFR'
'R' : remark // R(любая строка отображаемая ниже описания пакета)
else : 'unknown';
циклы:
на примерах:
d(Count:For.0065) - здесь: берется WORD (d) как значение для цикла следущих 65 аргументов. 'Count' - название данного аргумента.
c(Счетчик:For.0004) - здесь: берется BYTE (c) как значение для цикла следущих 4 аргументов. 'Счетчик' - название данного аргумента.
c(Счетчик:For.0104) - здесь: берется BYTE (c) как значение для цикла следущих 4 аргументов пропуская один следущий аргумент.
динамика маркера GT2 сложнее, опишу потом.
^_O
(15.10.09)
Злой и Жестокий критик и баголов. Вижу очень далеко, насквозь.
Быстрей наслаждайся иллюзией, пока кто нибудь не растоптал твои грезы.
На любой R0 драйвер найдется свой R0 драйвер.
Yoda не люблю я, дразнится под меня он.
|