Главная страница

Названия визуальных новелл. Официальное описание протокола обмена по RS485 приборов фирмы ОВ. Протокола обмена между пэвм и приборами овен согласовано Начальник онр новиков И. В


Скачать 1.6 Mb.
НазваниеПротокола обмена между пэвм и приборами овен согласовано Начальник онр новиков И. В
АнкорНазвания визуальных новелл
Дата14.10.2022
Размер1.6 Mb.
Формат файлаdoc
Имя файлаОфициальное описание протокола обмена по RS485 приборов фирмы ОВ.doc
ТипПротокол
#733688
страница3 из 7
1   2   3   4   5   6   7

4Уровень ПРЕДСТАВЛЕНИЯ протокола ОВЕН

4.1Структура данных


Блок данных, принятый от канального уровня протокола, состоит из:

• 16-битового локального идентификатора параметра (HASH-кода)

• n-байт (от 0 до 15) поля данных

4.2Локальный идентификатор параметра


Локальный идентификатор параметра в протоколе ОВЕН представляет из себя Hash-свертку имени передаваемых параметров.

4.3Соглашение об именах параметров


Используем 4-х символьные имена пользовательских параметров в виде следующего набора разрешенных символов:
1) 26 букв английского алфавита (от "A" до "Z") без различения строчных и прописных букв

2) 10 арабских цифр (от "0" до "9")
Примечание: На 7-ми сегментном индикаторе начертание цифры "5" совпадает с начертанием буквы "S"
3) Следующие специальные символы:

пробел

"-"

"_"

"/"

Итого - набор из 40 символов. Каждый символ может иметь или не иметь "при себе" точку, таким образом, количество кодовых комбинаций удваивается, и в именах можно будет использовать и точки, не занимая "отдельного" символьного места.

Вышеозначенные символы кодируются (нумеруются) подряд идущими ЧЕТНЫМИ цифрами, начиная с 0000000b, причем сначала нумеруются символы-цифры ("0"..."9"), затем без перерыва в алфавитном (английский) порядке буквы (от "A" до "Z"), а затем специальные знаки "-", "_", "/" и, наконец, пробел.

Символам с точкой присваивается код символа без точки, увеличенный на 1 (нечетные коды). Пример:

"0" - 0000000b

"0." - 0000001b

"1" - 0000010b

"1." - 0000011b

...

"a"="A" - 0010100b

"a."="A." - 0010101b
Таким образом, имена "Comp", "comp", "COMP" будут относиться к одному и тому же параметру, но имена "com.P" или "Co.mp" являются уже именами других параметров и никак не связаны с первым параметром.

Пробелы в имени возможны в рамках 4-х символов, но в конце имени.

Далее с помощью хеширования имя параметра превращается в его локальный идентификатор, который в совокупности с адресом узла образуют глобальный идентификатор параметра (или сообщения).

4.4Преобразование из ASCII-кодов имени параметра в код символа (приведение)


Преобразование из ASCII кодов (делается на PC перед hash-сверткой или внутри прибора):
char ch; //преобразуемый ASCII символ

char char_for_hash; //символ для обработки с помощью hash-функции

int toupper(int c); //преобразование в символы верхнего регистра

ch=toupper(ch); //преобразуем все в верхний регистр

switch (ch)

{

case "0".."9": char_for_hash=ch-"0"; break;

case "A".."Z": char_for_hash=ch-"A"+10; break;

case "-":char_for_hash=10+26; break;

case "_":char_for_hash=10+26+1; break;

case "/":char_for_hash=10+26+2; break;

case " ":char_for_hash=10+26+3; break;

default: обработка_ошибки(); break;

}

char_for_hash*=2; //удвоить код символа

if (за_ним_следует_точка) char_for_hash+=1; //прибавить 1
Также можно воспользоваться готовой таблицей (однако следует понимать, что работа с таблицей происходит медленнее):

Код

Символ

Код

Символ

Код

Символ

Код

Символ

0

0

20

A

40

K

60

U

2

1

22

b

42

L

62

v

4

2

24

C

44

m

64

w

6

3

26

d

46

n

66

x

8

4

28

E

48

o

68

Y

10

5

30

F

50

P

70

z

12

6

32

G

52

q

72

-

14

7

34

H

54

r

74

_(подч)

16

8

36

i

56

S

76

/

18

9

38

J

58

t

78

пробел

 При наличии точки после символа к его коду прибавляется единица.
1   2   3   4   5   6   7


написать администратору сайта