iSDIO library for FlashAir
Dependents: FlashAir_iSDIO_sample FlashAir_iSDIO_16seg_ADT7410_step1 FlashAir_iSDIO_16seg_ADT7410 FlashAir_iSDIO_sample_OS5_ ... more
FlashAir_iSDIO.cpp@2:b8b33621e7fe, 2019-01-19 (annotated)
- Committer:
- hogejun
- Date:
- Sat Jan 19 04:31:16 2019 +0000
- Revision:
- 2:b8b33621e7fe
- Parent:
- 1:dc888b9028cf
modified debug output
Who changed what in which revision?
User | Revision | Line number | New 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 | 2:b8b33621e7fe | 17 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 18 | _console->printf("new FlashAIr_iSDIO\n"); |
hogejun | 0:89c6aae3a486 | 19 | } |
hogejun | 0:89c6aae3a486 | 20 | |
hogejun | 0:89c6aae3a486 | 21 | FlashAir_iSDIO *FlashAir_iSDIO::instance = 0; |
hogejun | 0:89c6aae3a486 | 22 | |
hogejun | 0:89c6aae3a486 | 23 | FlashAir_iSDIO *FlashAir_iSDIO::getInstance() |
hogejun | 0:89c6aae3a486 | 24 | { |
hogejun | 0:89c6aae3a486 | 25 | return FlashAir_iSDIO::instance ; |
hogejun | 0:89c6aae3a486 | 26 | } |
hogejun | 0:89c6aae3a486 | 27 | |
hogejun | 0:89c6aae3a486 | 28 | //uint32_t FlashAir_iSDIO::getSequenceId() |
hogejun | 0:89c6aae3a486 | 29 | //{ |
hogejun | 0:89c6aae3a486 | 30 | // return iSDIO::sequenceId ; |
hogejun | 0:89c6aae3a486 | 31 | //} |
hogejun | 0:89c6aae3a486 | 32 | |
hogejun | 0:89c6aae3a486 | 33 | uint8_t FlashAir_iSDIO::wlan_disconnect(uint32_t sequenceId) { |
hogejun | 2:b8b33621e7fe | 34 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 35 | _console->printf("\nDisconnect command: \n"); |
hogejun | 0:89c6aae3a486 | 36 | memset(cmdbuffer, 0, sizeof(cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 37 | uint8_t* p = cmdbuffer; |
hogejun | 0:89c6aae3a486 | 38 | p = put_command_header(p, 1, 0); |
hogejun | 0:89c6aae3a486 | 39 | p = put_command_info_header(p, WLAN_DISCONNECT, sequenceId, 0); |
hogejun | 0:89c6aae3a486 | 40 | put_command_header(cmdbuffer, 1, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 41 | printHex(cmdbuffer, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 42 | // return this.writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? true : false; |
hogejun | 0:89c6aae3a486 | 43 | return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0; |
hogejun | 0:89c6aae3a486 | 44 | } |
hogejun | 0:89c6aae3a486 | 45 | |
hogejun | 0:89c6aae3a486 | 46 | uint8_t FlashAir_iSDIO::wlan_establish(uint32_t sequenceId, const uint8_t *ssid, const uint8_t *networkkey, const uint8_t encmode) { |
hogejun | 2:b8b33621e7fe | 47 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 48 | _console->printf("\nEstablish command: \n"); |
hogejun | 0:89c6aae3a486 | 49 | memset(cmdbuffer, 0, sizeof(cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 50 | uint8_t* p = cmdbuffer; |
hogejun | 0:89c6aae3a486 | 51 | p = put_command_header(p, 1, 0); |
hogejun | 0:89c6aae3a486 | 52 | p = put_command_info_header(p, WLAN_ESTABLISH, sequenceId, 3); |
hogejun | 0:89c6aae3a486 | 53 | p = put_str_arg(p, ssid); |
hogejun | 0:89c6aae3a486 | 54 | p = put_str_arg(p, networkkey); |
hogejun | 0:89c6aae3a486 | 55 | p = put_u8_arg(p, encmode); |
hogejun | 0:89c6aae3a486 | 56 | put_command_header(cmdbuffer, 1, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 57 | printHex(cmdbuffer, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 58 | return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0; |
hogejun | 0:89c6aae3a486 | 59 | } |
hogejun | 0:89c6aae3a486 | 60 | |
hogejun | 0:89c6aae3a486 | 61 | uint8_t FlashAir_iSDIO::wlan_connect(uint32_t sequenceId, const uint8_t* ssid, const uint8_t* networkKey) { |
hogejun | 2:b8b33621e7fe | 62 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 63 | _console->printf("\nConnect command: \n"); |
hogejun | 0:89c6aae3a486 | 64 | memset(cmdbuffer, 0, sizeof(cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 65 | uint8_t* p = cmdbuffer; |
hogejun | 0:89c6aae3a486 | 66 | p = put_command_header(p, 1, 0); |
hogejun | 0:89c6aae3a486 | 67 | p = put_command_info_header(p, WLAN_CONNECT, sequenceId, 2); |
hogejun | 0:89c6aae3a486 | 68 | p = put_str_arg(p, ssid); |
hogejun | 0:89c6aae3a486 | 69 | p = put_str_arg(p, networkKey); |
hogejun | 0:89c6aae3a486 | 70 | put_command_header(cmdbuffer, 1, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 71 | printHex(cmdbuffer, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 72 | return writeExtDataPort(1, 1, ISDIO_WRITE, cmdbuffer) ? 1 : 0; |
hogejun | 0:89c6aae3a486 | 73 | } |
hogejun | 0:89c6aae3a486 | 74 | |
hogejun | 0:89c6aae3a486 | 75 | uint8_t FlashAir_iSDIO::wlan_scan(uint32_t sequenceId) |
hogejun | 0:89c6aae3a486 | 76 | { |
hogejun | 2:b8b33621e7fe | 77 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 78 | _console->printf("\nScan: \n"); |
hogejun | 0:89c6aae3a486 | 79 | memset(cmdbuffer, 0, sizeof(cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 80 | uint8_t *p = cmdbuffer; |
hogejun | 0:89c6aae3a486 | 81 | p = put_command_header(p, 1, 0); |
hogejun | 0:89c6aae3a486 | 82 | p = put_command_info_header(p, WLAN_SCAN, sequenceId, 0); |
hogejun | 0:89c6aae3a486 | 83 | put_command_header(cmdbuffer, 1, (p-cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 84 | printHex(cmdbuffer, (p - cmdbuffer)); |
hogejun | 0:89c6aae3a486 | 85 | return writeExtDataPort(MIO_IO, FUNC1, ISDIO_WRITE, cmdbuffer) ? true : false; |
hogejun | 0:89c6aae3a486 | 86 | } |
hogejun | 0:89c6aae3a486 | 87 | |
hogejun | 0:89c6aae3a486 | 88 | uint8_t FlashAir_iSDIO::read_shared_mem(uint32_t offset, uint8_t* dst, uint16_t length) |
hogejun | 0:89c6aae3a486 | 89 | { |
hogejun | 0:89c6aae3a486 | 90 | uint8_t ret ; |
hogejun | 0:89c6aae3a486 | 91 | |
hogejun | 0:89c6aae3a486 | 92 | ret = readExtMemory(MIO_IO, FUNC1, ISDIO_VENDOR+offset, length, dst); |
hogejun | 2:b8b33621e7fe | 93 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 94 | _console->printf("read_shared_memory:\n"); |
hogejun | 0:89c6aae3a486 | 95 | printHex((uint8_t*)dst, (uint32_t)length); |
hogejun | 0:89c6aae3a486 | 96 | return ret ; |
hogejun | 0:89c6aae3a486 | 97 | } |
hogejun | 0:89c6aae3a486 | 98 | |
hogejun | 0:89c6aae3a486 | 99 | uint8_t FlashAir_iSDIO::write_shared_mem(uint32_t offset, uint8_t* src, uint16_t length) |
hogejun | 0:89c6aae3a486 | 100 | { |
hogejun | 2:b8b33621e7fe | 101 | if (_console != NULL) |
hogejun | 0:89c6aae3a486 | 102 | _console->printf("write_shared_mem:\n"); |
hogejun | 0:89c6aae3a486 | 103 | printHex((uint8_t*)src, (uint32_t)length); |
hogejun | 0:89c6aae3a486 | 104 | |
hogejun | 0:89c6aae3a486 | 105 | return writeExtMemory(MIO_IO, FUNC1, ISDIO_VENDOR+offset, length, src); |
hogejun | 0:89c6aae3a486 | 106 | } |