Изменения документа Сетевое API - MAXIOL Landisk technology ®

Редактировал(а) Max 2025/02/28 23:56

От версии 11.1
отредактировано Max
на 2025/02/25 01:38
Изменить комментарий: К данной версии нет комментариев
К версии 12.1
отредактировано Max
на 2025/02/25 01:44
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -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