Last modified by Max on 2025/02/28 23:56

From version 12.1
edited by Max
on 2025/02/25 01:44
Change comment: There is no comment for this version
To version 11.1
edited by Max
on 2025/02/25 01:38
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -207,59 +207,5 @@
207 207  {{/code}}
208 208  
209 209  
210 -== Структура ответа ==
211 211  
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 -
265 265