iSDIO library for FlashAir

Dependents:   FlashAir_iSDIO_sample FlashAir_iSDIO_16seg_ADT7410_step1 FlashAir_iSDIO_16seg_ADT7410 FlashAir_iSDIO_sample_OS5_ ... more

Committer:
hogejun
Date:
Wed Aug 29 04:04:52 2018 +0000
Revision:
1:dc888b9028cf
Parent:
0:89c6aae3a486
Child:
2:b8b33621e7fe
add header to each file

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hogejun 1:dc888b9028cf 1 /* mbed FlashAir iSDIO Library
hogejun 1:dc888b9028cf 2 * Copyright (C) 2018 by Junichi SHIBA, PIAX Inc
hogejun 1:dc888b9028cf 3 * All rights reserved.
hogejun 1:dc888b9028cf 4 * Released under the BSD 2-Clause license.
hogejun 1:dc888b9028cf 5 * http://flashair-developers.com/documents/license.html
hogejun 1:dc888b9028cf 6 */
hogejun 0:89c6aae3a486 7 #include "mbed.h"
hogejun 0:89c6aae3a486 8 #include "FlashAir_iSDIO.h"
hogejun 0:89c6aae3a486 9
hogejun 0:89c6aae3a486 10
hogejun 0:89c6aae3a486 11 FlashAir_iSDIO::FlashAir_iSDIO(PinName mosi, PinName miso, PinName sclk, PinName cs, const char *name, Serial *console) :
hogejun 0:89c6aae3a486 12 iSDIO(mosi, miso, sclk, cs, name, console)
hogejun 0:89c6aae3a486 13 {
hogejun 0:89c6aae3a486 14 instance = this ;
hogejun 0:89c6aae3a486 15 sequenceId = 0 ;
hogejun 0:89c6aae3a486 16 _console = console ;
hogejun 0:89c6aae3a486 17 _console->printf("new FlashAIr_iSDIO\n");
hogejun 0:89c6aae3a486 18 }
hogejun 0:89c6aae3a486 19
hogejun 0:89c6aae3a486 20 FlashAir_iSDIO *FlashAir_iSDIO::instance = 0;
hogejun 0:89c6aae3a486 21
hogejun 0:89c6aae3a486 22 FlashAir_iSDIO *FlashAir_iSDIO::getInstance()
hogejun 0:89c6aae3a486 23 {
hogejun 0:89c6aae3a486 24 return FlashAir_iSDIO::instance ;
hogejun 0:89c6aae3a486 25 }
hogejun 0:89c6aae3a486 26
hogejun 0:89c6aae3a486 27 //uint32_t FlashAir_iSDIO::getSequenceId()
hogejun 0:89c6aae3a486 28 //{
hogejun 0:89c6aae3a486 29 // return iSDIO::sequenceId ;
hogejun 0:89c6aae3a486 30 //}
hogejun 0:89c6aae3a486 31
hogejun 0:89c6aae3a486 32 uint8_t FlashAir_iSDIO::wlan_disconnect(uint32_t sequenceId) {
hogejun 0:89c6aae3a486 33 _console->printf("\nDisconnect command: \n");
hogejun 0:89c6aae3a486 34 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 35 uint8_t* p = cmdbuffer;
hogejun 0:89c6aae3a486 36 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 37 p = put_command_info_header(p, WLAN_DISCONNECT, sequenceId, 0);
hogejun 0:89c6aae3a486 38 put_command_header(cmdbuffer, 1, (p - cmdbuffer));
hogejun 0:89c6aae3a486 39 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 40 // return this.writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? true : false;
hogejun 0:89c6aae3a486 41 return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0;
hogejun 0:89c6aae3a486 42 }
hogejun 0:89c6aae3a486 43
hogejun 0:89c6aae3a486 44 uint8_t FlashAir_iSDIO::wlan_establish(uint32_t sequenceId, const uint8_t *ssid, const uint8_t *networkkey, const uint8_t encmode) {
hogejun 0:89c6aae3a486 45 _console->printf("\nEstablish command: \n");
hogejun 0:89c6aae3a486 46 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 47 uint8_t* p = cmdbuffer;
hogejun 0:89c6aae3a486 48 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 49 p = put_command_info_header(p, WLAN_ESTABLISH, sequenceId, 3);
hogejun 0:89c6aae3a486 50 p = put_str_arg(p, ssid);
hogejun 0:89c6aae3a486 51 p = put_str_arg(p, networkkey);
hogejun 0:89c6aae3a486 52 p = put_u8_arg(p, encmode);
hogejun 0:89c6aae3a486 53 put_command_header(cmdbuffer, 1, (p - cmdbuffer));
hogejun 0:89c6aae3a486 54 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 55 return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0;
hogejun 0:89c6aae3a486 56 }
hogejun 0:89c6aae3a486 57
hogejun 0:89c6aae3a486 58 uint8_t FlashAir_iSDIO::wlan_connect(uint32_t sequenceId, const uint8_t* ssid, const uint8_t* networkKey) {
hogejun 0:89c6aae3a486 59 _console->printf("\nConnect command: \n");
hogejun 0:89c6aae3a486 60 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 61 uint8_t* p = cmdbuffer;
hogejun 0:89c6aae3a486 62 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 63 p = put_command_info_header(p, WLAN_CONNECT, sequenceId, 2);
hogejun 0:89c6aae3a486 64 p = put_str_arg(p, ssid);
hogejun 0:89c6aae3a486 65 p = put_str_arg(p, networkKey);
hogejun 0:89c6aae3a486 66 put_command_header(cmdbuffer, 1, (p - cmdbuffer));
hogejun 0:89c6aae3a486 67 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 68 return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0;
hogejun 0:89c6aae3a486 69 }
hogejun 0:89c6aae3a486 70
hogejun 0:89c6aae3a486 71 uint8_t FlashAir_iSDIO::wlan_scan(uint32_t sequenceId)
hogejun 0:89c6aae3a486 72 {
hogejun 0:89c6aae3a486 73 _console->printf("\nScan: \n");
hogejun 0:89c6aae3a486 74 memset(cmdbuffer, 0, sizeof(cmdbuffer));
hogejun 0:89c6aae3a486 75 uint8_t *p = cmdbuffer;
hogejun 0:89c6aae3a486 76 p = put_command_header(p, 1, 0);
hogejun 0:89c6aae3a486 77 p = put_command_info_header(p, WLAN_SCAN, sequenceId, 0);
hogejun 0:89c6aae3a486 78 put_command_header(cmdbuffer, 1, (p-cmdbuffer));
hogejun 0:89c6aae3a486 79 printHex(cmdbuffer, (p - cmdbuffer));
hogejun 0:89c6aae3a486 80 return writeExtDataPort(MIO_IO, FUNC1, ISDIO_WRITE, cmdbuffer) ? true : false;
hogejun 0:89c6aae3a486 81 }
hogejun 0:89c6aae3a486 82
hogejun 0:89c6aae3a486 83 uint8_t FlashAir_iSDIO::read_shared_mem(uint32_t offset, uint8_t* dst, uint16_t length)
hogejun 0:89c6aae3a486 84 {
hogejun 0:89c6aae3a486 85 uint8_t ret ;
hogejun 0:89c6aae3a486 86
hogejun 0:89c6aae3a486 87 ret = readExtMemory(MIO_IO, FUNC1, ISDIO_VENDOR+offset, length, dst);
hogejun 0:89c6aae3a486 88 _console->printf("read_shared_memory:\n");
hogejun 0:89c6aae3a486 89 printHex((uint8_t*)dst, (uint32_t)length);
hogejun 0:89c6aae3a486 90 return ret ;
hogejun 0:89c6aae3a486 91 }
hogejun 0:89c6aae3a486 92
hogejun 0:89c6aae3a486 93 uint8_t FlashAir_iSDIO::write_shared_mem(uint32_t offset, uint8_t* src, uint16_t length)
hogejun 0:89c6aae3a486 94 {
hogejun 0:89c6aae3a486 95 _console->printf("write_shared_mem:\n");
hogejun 0:89c6aae3a486 96 printHex((uint8_t*)src, (uint32_t)length);
hogejun 0:89c6aae3a486 97
hogejun 0:89c6aae3a486 98 return writeExtMemory(MIO_IO, FUNC1, ISDIO_VENDOR+offset, length, src);
hogejun 0:89c6aae3a486 99 }