Коды состояния

В этом разделе рассматривается: fd.laststatus.

При работе с флеш-памятью многое может пойти не так, поэтому методы объекта fd. возвращают код состояния. Хорошее приложение Tibbo BASIC/C не рассчитывает на то, что всё пройдёт гладко, а всегда проверяет результат выполнения метода.

Ниже перечислены возможные коды состояния, которые возвращает объект fd.. Разумеется, не каждый метод может выдать любой из кодов:

0 - PL_FD_STATUS_OK:Выполнено успешно.
1 - PL_FD_STATUS_FAIL:Физический отказ флеш-памяти (критическая ошибка: диск отмонтирован, его необходимо переформатировать).
2 - PL_FD_STATUS_CHECKSUM_ERR:В одном из секторов диска обнаружена ошибка контрольной суммы (критическая ошибка: диск отмонтирован, его необходимо переформатировать).
3 - PL_FD_STATUS_FORMAT_ERR:Обнаружена ошибка форматирования диска (критическая ошибка: диск отмонтирован, его необходимо переформатировать).
4 - PL_FD_STATUS_INV_PARAM:Вызванному методу передан недопустимый аргумент.
5 - PL_FD_STATUS_DUPLICATE_NAME:Файл с таким именем уже существует.
6 - PL_FD_STATUS_FILE_TABLE_FULL:Достигнуто максимальное число файлов, которое можно хранить на диске; новый файл создать нельзя.
7 - PL_FD_STATUS_DATA_FULL:Диск заполнен, новые данные добавить нельзя.
8 - PL_FD_STATUS_NOT_READY:Диск не смонтирован.
9 - PL_FD_STATUS_NOT_FOUND:Файл не найден.
10 - PL_FD_STATUS_NOT_OPENED:Ни один файл не открыт «на» текущем номере fd.filenum.
11 - PL_FD_STATUS_ALREADY_OPENED:Этот файл уже открыт на другом номере файла.
12 - PL_FD_STATUS_TRANSACTION_ALREADY_STARTED:Дисковая транзакция уже начата (и не может быть начата повторно).
13 - PL_FD_STATUS_TRANSACTION_NOT_YET_STARTED:Дисковая транзакция ещё не начата.
14 - PL_FD_STATUS_TRANSACTION_CAPACITY_EXCEEDED:В ходе текущей транзакции изменено слишком много секторов диска (критическая ошибка: диск отмонтирован).
15 - PL_FD_STATUS_TRANSACTIONS_NOT_SUPPORTED:Диск не был отформатирован с поддержкой транзакций (чтобы включить транзакции, используйте fd.formatj с maxjournalsectors > 1).
16 - PL_FD_STATUS_FLASH_NOT_DETECTED:Флеш-микросхема не обнаружена при загрузке, объект fd. не может нормально работать.

Код состояния, выданный последним вызванным методом, всегда хранится в свойстве fd.laststatus (только чтение). Некоторые методы также возвращают код состояния напрямую:

If fd.create("File1.dat")<>PL_FD_STATUS_OK Then
   'some problem
End If

Другие методы возвращают данные, поэтому проверить результат их выполнения можно только через fd.laststatus:

s=fd.getdata(50) 'returns the data from the file, not the status code
If fd.laststatus<>PL_FD_STATUS_OK Then
   'some problem
End If

Большинство кодов состояния некритичны, то есть диск после них продолжает работать.

Некоторые состояния приводят к автоматическому размонтированию флеш-диска (свойство fd.ready только для чтения становится равным 0 - NO). Среди этих кодов некоторые (но не все) также означают, что диск необратимо повреждён и его нужно отформатировать заново.

Исходный материал Tibbo обновлён 29 июля 2022Оригинал на docs.tibbo.com · Сообщить об ошибке