Коды состояния
В этом разделе рассматривается: 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). Среди этих кодов некоторые (но не все) также означают, что диск необратимо повреждён и его нужно отформатировать заново.