Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SakuraAlpha_SPI SakuraAlpha_I2C
SakuraAlpha.h
00001 /* SAKURA Internet IoT Alpha Communication Module Library for mbed 00002 * 00003 * Copyright (c) SAKURA Internet Inc. 00004 * The MIT License (MIT) 00005 * https://github.com/sakura-internet/SakuraAlphaArduino 00006 * 00007 * https://iot.sakura.ad.jp/ 00008 * 00009 * Porting to mbed by sakurafan. 2016 00010 */ 00011 00012 #ifndef _SAKURAALPHA_H_ 00013 #define _SAKURAALPHA_H_ 00014 00015 #include "mbed.h" 00016 00017 #define SAKURACC_SLAVE_ADDR (0x4F << 1) 00018 00019 #define CMD_NETWORKSTATUS 0x01 00020 00021 #define CMD_UPDATED 0x10 00022 #define CMD_UNTRANSMITTED 0x11 00023 #define CMD_TXCH_STATUS 0x12 00024 #define CMD_RXCH_STATUS 0x13 00025 00026 #define CMD_READ 0x20 00027 00028 #define CMD_WRITE 0x30 00029 00030 #define CMD_TRANSMIT 0x40 00031 00032 00033 #define TRANSMIT_NONE 0x00 00034 #define TRANSMIT_AUTO 0x01 00035 #define TRANSMIT_ONCE 0x02 00036 00037 #define TYPE_INT32 'i' 00038 #define TYPE_UINT32 'I' 00039 #define TYPE_INT64 'l' 00040 #define TYPE_UINT64 'L' 00041 #define TYPE_FLOAT 'f' 00042 #define TYPE_DOUBLE 'd' 00043 #define TYPE_BYTES 'b' 00044 00045 00046 #define CH_SIZE 128 00047 00048 #define TX_STATUS_NONE 0x00 00049 #define TX_STATUS_MODIFIED 0x01 00050 00051 #define RX_STATUS_NONE 0x00 00052 #define RX_STATUS_UPDATED 0x01 00053 00054 #define min(a,b) (a<b?a:b) 00055 00056 class SakuraAlpha { 00057 protected: 00058 00059 virtual void begin(){} 00060 virtual void end(){} 00061 00062 virtual void sendByte(uint8_t data){} 00063 virtual void finishSending(){} 00064 00065 virtual void startReceiving(uint16_t num_recieve){} 00066 virtual uint8_t receiveByte(){return 0;} 00067 virtual void finishReceiving(){} 00068 00069 public: 00070 00071 void writeChannel(uint8_t ch, int32_t data); 00072 void writeChannel(uint8_t ch, uint32_t data); 00073 void writeChannel(uint8_t ch, int64_t data); 00074 void writeChannel(uint8_t ch, uint64_t data); 00075 void writeChannel(uint8_t ch, float data); 00076 void writeChannel(uint8_t ch, double data); 00077 void writeChannel(uint8_t ch, uint8_t *data); 00078 void readChannel(uint8_t ch, char *type, uint8_t *data); 00079 00080 void transmit(uint8_t mode); 00081 00082 uint8_t getTxChannelStatus(uint8_t ch); 00083 uint8_t getRxChannelStatus(uint8_t ch); 00084 00085 int getUpdatedChannels(uint8_t *buff, uint8_t len); 00086 00087 int getUntransmittedChannels(uint8_t *buff, uint8_t len); 00088 00089 uint8_t getNetworkStatus(); 00090 00091 }; 00092 00093 00094 class SakuraAlphaI2C : public SakuraAlpha { 00095 00096 protected: 00097 I2C _i2c; 00098 int _num_recieve; 00099 00100 virtual void begin(); 00101 virtual void end(); 00102 00103 virtual void sendByte(uint8_t data); 00104 virtual void finishSending(); 00105 00106 virtual void startReceiving(uint16_t num_recieve); 00107 virtual uint8_t receiveByte(); 00108 virtual void finishReceiving(); 00109 00110 public: 00111 SakuraAlphaI2C (I2C &i2c); 00112 SakuraAlphaI2C (PinName sda, PinName scl); 00113 }; 00114 00115 00116 class SakuraAlphaSPI : public SakuraAlpha{ 00117 00118 protected: 00119 SPI _spi; 00120 DigitalOut _cs; 00121 00122 virtual void begin(); 00123 virtual void end(); 00124 00125 virtual void sendByte(uint8_t data); 00126 virtual void finishSending(); 00127 00128 virtual void startReceiving(uint16_t num_recieve); 00129 virtual uint8_t receiveByte(); 00130 virtual void finishReceiving(); 00131 00132 public: 00133 SakuraAlphaSPI(SPI &spi, PinName cs); 00134 SakuraAlphaSPI(PinName mosi, PinName miso, PinName sck, PinName cs); 00135 00136 }; 00137 00138 #endif /* _SAKURAALPHA_H_ */
Generated on Tue Jul 12 2022 19:49:44 by
1.7.2