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@1:dc888b9028cf, 2018-08-29 (annotated)
- 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?
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 | 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 | } |