Изменения документа Сетевое API - MAXIOL Landisk technology ®
Редактировал(а) Max 2025/02/28 23:56
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -207,5 +207,59 @@ 207 207 {{/code}} 208 208 209 209 210 +== Структура ответа == 210 210 212 +Формат ответа 213 + 214 +{{code language="c++"}} 215 +// структура пакета ответа с данными 216 +typedef __packed struct landisk_answer 217 +{ 218 + unsigned short int result; // результат 219 + unsigned char data[512]; // принятые данные 220 + unsigned short int crc; // CRC ответа 221 +} landisk_answer_t; 222 +{{/code}} 223 + 224 +=== Статус файла === 225 + 226 +при открытии файла, сервер возвращает статус файла, в блоке данных (data[512]) 227 + 228 +{{code language="c++"}} 229 +// структура пакета ответа статуса файла 230 +typedef __packed struct landisk_answer_status 231 +{ 232 + unsigned char fattr; // File attribute 233 + unsigned short int fdate; // Fat date 234 + unsigned short int ftime; // Fat time 235 + unsigned int fsize; // File size 236 +} landisk_answer_status_t; 237 +{{/code}} 238 + 239 +=== Коды результатов выполнения команд === 240 + 241 +{{code language="c++"}} 242 +// ответы 243 +#define LANDISK_ANS_OK 0x0000 // команда выполнена успешно 244 +#define LANDISK_ANS_ERROR 0x0001 // флаг ошибки, устанавливается при любой ошибке 245 +#define LANDISK_ANS_ACCESS_DENIED 0x0002 // нет доступа, устанавливается при любой ошибке доступа 246 +#define LANDISK_ANS_NEED_REG 0x0004 // нет доступа - нужна регистрация 247 +#define LANDISK_ANS_RO_ONLY 0x0008 // нет доступа на запись- данный диск только для чтения 248 +#define LANDISK_ANS_NOT_EXISTS 0x0010 // нет данного образа - неверный путь до файла образа или директории 249 +{{/code}} 250 + 251 +=== Стратегия работы === 252 + 253 +~1. первая команда должна быть открытие файла (LANDISK_CMD_OPEN) 254 +при запросе на открытие надо указать блок параметров (landisk_reqest_status_t) 255 +в ответ будет прислан блок landisk_answer_t но data[512] надо рассматривать как landisk_answer_status_t 256 +2. далее можно посылать команды чтения 257 +3. на данный момент [февраль 2025] поддержаны команды LANDISK_CMD_OPEN, LANDISK_CMD_READ, LANDISK_CMD_WRITE, LANDISK_CMD_CLOSE 258 +4. В конце работы желательно (но не обязательно) послать команды закрытия дисков. 259 + 260 +=== **Ограничения: 261 +~1. не более 100 запросов в секунду с одного IP (иначе сработает блок анти-DDOS и забанит данный IP на некоторое время) 262 +2. не более 10ти "висящих" соединений на IP.** === 263 + 264 + 211 211