PDA

Просмотр полной версии : Установка параметра C.SP (ТРМ-138)



Валерий
12.01.2007, 00:51
Здравствуйте.
Мне требуется установить параметр C.SP на приборе ТРМ-138. В документации описывающий список параметров для прибора ТРМ-138 этот параметр имеет хэш код - 2020, тогда как функция для вычисления хэш кода взятая из документации по описанию протокола возвращает 383е (для примера были посчитаны хэш коды других параметров и они совпадают). Для изменения этого параметра я генерю следующую структуру кадра:
char kadr[255];
memset(kadr, 0, 255);
int i = 0;
// 8-bit addr
kadr[i++] = 0x00;
// 8-bit (addr extension 3 bits,remote reqiest 1 bit, size 4 - 2)
kadr[i] = 0x00;
kadr[i] |= 0x00; // extension
kadr[i] |= 0x00; // remote request
kadr[i++] |= 0x02; // size

// hash
int h = crc("c.sp", 7, 4);

printf("Sent Id : 0x%x\n", h);

// записываю хэш код
kadr[i++] = (h & 0xff00) >> 8;
kadr[i++] = (h & 0xff);
// по документации
//kadr[i++] = 0x20;
//kadr[i++] = 0x20;

// параметр для установки 50.5 градусов
kadr[i++] = 0x11;
kadr[i++] = 0xf9;

// crc
int c = crc(kadr, 8, i);
std::cout << "crc : " << c << std::endl;

kadr[i++] = (c & 0xff00) >> 8;
kadr[i++] = (c & 0xff);

После чего я преобразую этот кадр в тетрады и отправляю на прибор (для получения температуры этот кадр работает, если задать параметр read, длина данных 0, и установлен бит запроса).

Если есть возможность пришлите пожайлуста строку запроса (сконверченную в тетрады) для посылки на прибор для изменения этого параметра на значение 50.5.

Спасибо.

Мощицкий Павел
12.01.2007, 11:53
Валерий
Мне требуется установить параметр C.SP на приборе ТРМ-138
Читаем протокол обмена п.4.3:
Используем 4-х символьные имена пользовательских параметров в виде следующего набора разрешенных символов,
Символам с точкой присваивается код символа без точки, увеличенный на 1 (нечетные коды). и
Пробелы в имени возможны в рамках 4-х символов, но в конце имени. Следовательно, Вы должны обрабатывать параметр не "C.SP", "C.SP ".