iXpand SDK – Data Sheet
Revision 1.0
2nd SEP, 2016
Western Digital Technologies, Inc.
951 SanDisk Drive Milpitas, CA 95035-7933 Phone: 408-801-1000
C O N F I D E N T I A L
iXpand SDK – Data Sheet
Table of Contents
INTRODUCTION ...... 3 IXPAND SDK ARCHITECTURE ...... 3 IXPAND SYSTEM CONTROLLER ...... 3 IXAND FILE SYSTEM CONTROLLER ...... 4 IXPAND ACCESSORY CONTROLLER ...... 4 IXPAND FILE SYSTEMS SUPPORT ...... 4 IXPAND HARDWARE ABSTRACTION LAYER ...... 4 IXPAND SDK APIS SUMMARY ...... 4 IXPAND SDK BUNDLE ...... 4 HOW DEVELOPERS INTEGRATE SDK? ...... 5 LICENSE ...... 5
SanDisk® Proprietary & Confidential Copyright © 2016 Western Digital Corporation or its affiliates iXpand SDK – Data Sheet
Introduction iXpand SDK enables third party application developers to seamlessly access and manage iXpand devices from their own iOS applications. iXpand SDK APIs are categorized as System APIs and File System APIs. System APIs are meant for initializing iXpand device, managing iXpand device sessions and other functionalities. iXpand File system APIs provide all the file system functionalities required to manage data.
iXpand SDK Architecture iXpand SDK contains a number of controllers – System controller, file system controller and accessory controller, actual file system implementation and hardware abstraction layer.
3rd Party APPLICATION
iXpand SDK API (System & File System API)
iXpand System Controller iXpand File System Controller
File System (FAT32 & exFAT)
iXpand Accessory Controller
Hardware Abstraction Layer
iXpand Device
Figure 1 Block Diagram
Following sections will provide details of all the modules. iXpand System Controller iXpand system controller contains the initialization part of the iXpand Device. The drive initialization is done by initialization drive and open session APIs. Third party application has to initialize the drive first followed by open session. These initialization APIs initialize accessory controller and calls the iXpand Device via H/W layer.
SanDisk® Proprietary & Confidential Copyright © 2016 Western Digital Corporation or its affiliates iXpand SDK – Data Sheet
iOS framework allows only one application to access the drive at a time. Our SDK overcomes that limitation with proper acquire/release mechanism to facilitate multiple applications access the drive, one after other. If the application doesn’t use accessory, application has to immediately release accessory so that other applications can use the drive. System controller implements logic for multiple applications synchronization. iXand File System Controller iXpand file system controller is the interface between the iXpand filesystem API’s and the actual file system API’s. The filesystem with interact with the accessory controller which calls H/W layer and communicate to the iXpand device. iXpand file system initialization done from the system controller open session. The filesystem initialization checks for the FAT32 and exFAT filesystem and return success to open session. iXpand Accessory Controller iXpand Accessory Controller is the interface between iXpand system controller, iXpand filesystem controller and the H/W layer. The Accessory controller calls the H/W abstraction layer which directly communicate to the iXpand device. iXpand File Systems Support iXpand SDK supports FAT32 and exFAT filesystems. The iXpand filesystem controller manages the FAT32 and exFAT filesystem API’s and calls the filesystem API’s based on the filesystem type. iXpand Hardware Abstraction Layer iXpand SDK communicates with drive over iAP protocol which in turn implemented over USB protocol. iAP(iPod Accessory Protocol) is proprietary protocol implemented by Apple to facilitate communication between accessories and iOS devices. iXpand SDK APIs Summary Following table summarizes iXpand APIs functionalities. File System APIs System APIs File Open Drive Initialization File Read Session Open File Write Session Close Search File / Directory Battery Level Delete File / Directory File System Type Seek File Multi-apps synchronization Close File Drive history Get File Size Device Type Get Drive Space Drive Connection Status Get / Set File Attributes SDK Version Get / Set Drive label Drive Initialization iXpand SDK Bundle Following components are bundled in the iXpand SDK. iXpand SDK Binary iXpand SDK User Guide Release Note
SanDisk® Proprietary & Confidential Copyright © 2016 Western Digital Corporation or its affiliates iXpand SDK – Data Sheet
Sample Application iXpand Simulator iXpand Simulator User Guide iXpand SDK Documentations
How developers integrate SDK?
1. Take iXpandSDKlib.framework which is present under SDK_Binary folder. 2. Integrate with your application x-code project. 3. Include the iXpandSDKlib/iXpandSDKlib.h in your application files. 4. Use the System API’s and the FileSystem API’s which are available in the header file. 5. Initdrive and the open session is the first initialization part before calling any file system API’s. 6. Get the iXpand Device and check the application with our integrated SDK. Refer demo application for easy usage of iXpand SDK and the iXpand SDK API’s.
LICENSE iXpand SDK contains the FATFS open source taken from following link http://elm-chan.org/fsw/ff/00index_e.html
More details on FAT FS file system can be found under the following link http://elm-chan.org/fsw/ff/en/appnote.html#license
SanDisk® Proprietary & Confidential Copyright © 2016 Western Digital Corporation or its affiliates