SD карта

Тема в разделе "Arduino & Shields", создана пользователем Andy21_77, 29 янв 2017.

  1. Andy21_77

    Andy21_77 Нуб

    Подскажите, как через js создать каталог в корневухе на SD карте? Что то не могу найти ничего.
     
  2. Mihail Vasilev

    Mihail Vasilev Нерд

    Штатными средствами, грубо говоря - никак. Можно посмотреть в исходники, как там readdir организован и допилить, но это боль, подозреваю.
     
  3. Igor68

    Igor68 Гуру

    в JS дать доступ к файловой системе... Да! куда катится мир... хорошо, что в JS нет доступа к ядерной кнопке!
     
  4. elarm

    elarm Нуб

    По чтению-записи на SD-карту вопрос. В скетче подключены библиотеки
    #include <SD.h>
    #include <SPI.h>

    Обнаружено, что при помощи
    myFile = SD.open("123456789.txt", FILE_WRITE);

    Я не могу создать файл с именем больше 8 символов. "12345678.txt" создаётся, а "123456789.txt" -- нет.
    Существуют-ли способы обхода этого препятствия?
     
  5. Igor68

    Igor68 Гуру

    Похоже эта библиотека рассчитана на устаревший формат... с поддержанием 8 символов в имени и 3 символа в расширении (в этом документе описано про расширение имён в каталоге):
    fatgen103-rus.doc.zip
    Потому как изначально по стандарту всего 11 символов на всё - смотрите Page 27.
    Для расширенного имени в каталоге потребуется дополнительные записи (Page 29):
    Отметим, что комбинация атрибутов ATTR_LONG_NAME означает, что “файл” является лишь частью длинного имени другого файла. Описание этой комбинации атрибутов дано в следующем параграфе.
    Смотрите Page 31, где показана форма для размещения в записи каталога длинного имени. Следует учесть, что для длинного имени требуется более одной записи. По стандарту (старому) одна запись - один файл. Короче одна запись в каталоге FAT требует 32 байта. Для имени больще 11 символов вместе с расширением требуется более одной записи в каталоге на один файл. Запись это: Имя с расширением; Размер; Атрибуты; Время создания, изменения и т.д.; Номер первого кластера данных в таблице FAT и т.д. Похоже это экономия (в библиотеке) для упрощения, ведь для записи длинного имени уже в ОЗУ от 64 байт и более (в зависимости от длины имени в байтах).
     

    Вложения:

    elarm нравится это.
  6. elarm

    elarm Нуб

    Спасибо!!!