Где находится исходный код Gadgeteer.StorageDevice?
Я пытаюсь отладить некоторые неожиданные действия с модулем GHI Gadgeteer SDCard, в результате чего сохранение файла на SDCard без вывода сообщений не приводит к появлению файла.
Исходный код для модуля SDCard доступен (из корневого каталога перейдите в раздел Main / Modules / GHIElectronics / SDCard / Software / SDCard / SDCard_42 / SDCard_42.cs). Строка в моем коде, которая не делает то, что я ожидаю,
sdCard.GetStorageDevice().WriteFile("picture.bmp", picture.PictureData);
Глядя на исходный код GHI GetStorageDevice()
это просто:
public StorageDevice GetStorageDevice()
{
return _device;
}
а также _device
объявлен как
private StorageDevice _device;
Скачивая код я вижу что _device
имеет тип Gadgeteer.StorageDevice
, Где я могу найти исходный код для этого класса?
2 ответа
Я получил ответ на форуме TINYCLR. Он находится в Main/GadgeteerCore/Gadgeteer42/Utilities.cs
текущая версия (на момент написания): http://gadgeteer.codeplex.com/SourceControl/changeset/view/24955
Модуль SD-карты
Вы должны сначала смонтировать sdCard
прежде чем вы сможете использовать его:
sdCard.MountSDCard();
Чтобы убедиться, что вы видите это, вы должны заранее "подключить" обработчики событий Mounting и Unmounting, хотя:
void ProgramStarted() {
sdCard.SDCardMounted += new SDCard.SDCardMountedEventHandler(sdCard_SDCardMounted);
sdCard.SDCardUnmounted += new SDCard.SDCardUnmountedEventHandler(sdCard_SDCardUnmounted);
}
void sdCard_SDCardUnmounted(SDCard sender) {
Debug.Print("The SD card has been unmounted");
Debug.Print("DO NOT try to access it without mounting it again first");
}
void sdCard_SDCardMounted(SDCard sender, GT.StorageDevice SDCard) {
Debug.Print("SD card has been successfully mounted. You can now read/write/create/delete files");
Debug.Print("Unmount before removing");
}
Если ни одна из этих проблем не является вашей, я бы предложил GetStorageDevice()
позвоните следующим образом:
string rootDirectory = sdCard.GetStorageDevice().RootDirectory;
// What format is `picture`?
// I am going to assume System.Drawing.Bitmap for this example.
picture.Save(rootDirectory + "\\picture.bmp", ImageFormat.Bmp;
Если вы не можете использовать метод Bitmap.Save, вы должны использовать другие традиционные методы StreamWriter.
Однако я не могу проверить это, чтобы увидеть, работает ли он, поскольку у меня нет одного из этих модулей SD-карт. Я только что посмотрел пример кода в руководстве по модулю SD-карты.
Если это поможет, проголосуй. Если это решит вашу проблему, отметьте это как ответ.