BERG Cloud / BERGCloud

Dependents:   LittleCounter-Example

Committer:
nickludlam
Date:
Tue Nov 12 14:38:30 2013 +0000
Revision:
0:b4ccb530b9eb
Child:
4:5a04c00b5b6f
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nickludlam 0:b4ccb530b9eb 1 /*
nickludlam 0:b4ccb530b9eb 2
nickludlam 0:b4ccb530b9eb 3 BERGCloud constant definitions
nickludlam 0:b4ccb530b9eb 4
nickludlam 0:b4ccb530b9eb 5 Copyright (c) 2013 BERG Cloud Ltd. http://bergcloud.com/
nickludlam 0:b4ccb530b9eb 6
nickludlam 0:b4ccb530b9eb 7 Permission is hereby granted, free of charge, to any person obtaining a copy
nickludlam 0:b4ccb530b9eb 8 of this software and associated documentation files (the "Software"), to deal
nickludlam 0:b4ccb530b9eb 9 in the Software without restriction, including without limitation the rights
nickludlam 0:b4ccb530b9eb 10 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
nickludlam 0:b4ccb530b9eb 11 copies of the Software, and to permit persons to whom the Software is
nickludlam 0:b4ccb530b9eb 12 furnished to do so, subject to the following conditions:
nickludlam 0:b4ccb530b9eb 13
nickludlam 0:b4ccb530b9eb 14 The above copyright notice and this permission notice shall be included in
nickludlam 0:b4ccb530b9eb 15 all copies or substantial portions of the Software.
nickludlam 0:b4ccb530b9eb 16
nickludlam 0:b4ccb530b9eb 17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
nickludlam 0:b4ccb530b9eb 18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
nickludlam 0:b4ccb530b9eb 19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
nickludlam 0:b4ccb530b9eb 20 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
nickludlam 0:b4ccb530b9eb 21 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
nickludlam 0:b4ccb530b9eb 22 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
nickludlam 0:b4ccb530b9eb 23 THE SOFTWARE.
nickludlam 0:b4ccb530b9eb 24
nickludlam 0:b4ccb530b9eb 25 */
nickludlam 0:b4ccb530b9eb 26
nickludlam 0:b4ccb530b9eb 27 /*
nickludlam 0:b4ccb530b9eb 28 * Sizes of things
nickludlam 0:b4ccb530b9eb 29 */
nickludlam 0:b4ccb530b9eb 30
nickludlam 0:b4ccb530b9eb 31 #define BC_EUI64_SIZE_BYTES 8
nickludlam 0:b4ccb530b9eb 32 #define BC_ADDRESS_SIZE_BYTES 8
nickludlam 0:b4ccb530b9eb 33 #define BC_CLAIMCODE_SIZE_BYTES 20
nickludlam 0:b4ccb530b9eb 34 #define BC_PRODUCT_KEY_SIZE_BYTES 16
nickludlam 0:b4ccb530b9eb 35 #define BC_PRINT_MAX_CHARS 26
nickludlam 0:b4ccb530b9eb 36
nickludlam 0:b4ccb530b9eb 37 /*
nickludlam 0:b4ccb530b9eb 38 * Network commands
nickludlam 0:b4ccb530b9eb 39 */
nickludlam 0:b4ccb530b9eb 40
nickludlam 0:b4ccb530b9eb 41 #define BC_EVENT_PRODUCT_ANNOUNCE 0xA000
nickludlam 0:b4ccb530b9eb 42 #define BC_COMMAND_SET_ADDRESS 0xB000
nickludlam 0:b4ccb530b9eb 43
nickludlam 0:b4ccb530b9eb 44 #define BC_COMMAND_START_RAW 0xC000
nickludlam 0:b4ccb530b9eb 45 #define BC_COMMAND_START_PACKED 0xC100
nickludlam 0:b4ccb530b9eb 46 #define BC_COMMAND_ID_MASK 0x00FF
nickludlam 0:b4ccb530b9eb 47 #define BC_COMMAND_FORMAT_MASK 0xFF00
nickludlam 0:b4ccb530b9eb 48
nickludlam 0:b4ccb530b9eb 49 #define BC_COMMAND_DISPLAY_IMAGE 0xD000
nickludlam 0:b4ccb530b9eb 50 #define BC_COMMAND_DISPLAY_TEXT 0xD001
nickludlam 0:b4ccb530b9eb 51
nickludlam 0:b4ccb530b9eb 52 #define BC_EVENT_START_RAW 0xE000
nickludlam 0:b4ccb530b9eb 53 #define BC_EVENT_START_PACKED 0xE100
nickludlam 0:b4ccb530b9eb 54 #define BC_EVENT_ID_MASK 0x00FF
nickludlam 0:b4ccb530b9eb 55 #define BC_EVENT_FORMAT_MASK 0xFF00
nickludlam 0:b4ccb530b9eb 56
nickludlam 0:b4ccb530b9eb 57 #define BC_COMMAND_FIRMWARE_ARDUINO 0xF010
nickludlam 0:b4ccb530b9eb 58 #define BC_COMMAND_FIRMWARE_MBED 0xF020
nickludlam 0:b4ccb530b9eb 59
nickludlam 0:b4ccb530b9eb 60 /*
nickludlam 0:b4ccb530b9eb 61 * SPI bus commands
nickludlam 0:b4ccb530b9eb 62 */
nickludlam 0:b4ccb530b9eb 63
nickludlam 0:b4ccb530b9eb 64 #define SPI_CMD_GET_CONNECT_STATE 0x80
nickludlam 0:b4ccb530b9eb 65 #define SPI_CMD_GET_CLAIMCODE 0x81
nickludlam 0:b4ccb530b9eb 66 #define SPI_CMD_GET_CLAIM_STATE 0x82
nickludlam 0:b4ccb530b9eb 67 #define SPI_CMD_GET_SIGNAL_QUALITY 0x83
nickludlam 0:b4ccb530b9eb 68 #define SPI_CMD_GET_EUI64 0x90
nickludlam 0:b4ccb530b9eb 69
nickludlam 0:b4ccb530b9eb 70 #define SPI_CMD_SEND_PRODUCT_ANNOUNCE 0xA0
nickludlam 0:b4ccb530b9eb 71 #define SPI_CMD_GET_ADDRESS 0xB0
nickludlam 0:b4ccb530b9eb 72 #define SPI_CMD_POLL_FOR_COMMAND 0xC0
nickludlam 0:b4ccb530b9eb 73 #define SPI_CMD_SET_DISPLAY_STYLE 0xD0
nickludlam 0:b4ccb530b9eb 74 #define SPI_CMD_DISPLAY_PRINT 0xD1
nickludlam 0:b4ccb530b9eb 75 #define SPI_CMD_SEND_EVENT_RAW 0xE0
nickludlam 0:b4ccb530b9eb 76 #define SPI_CMD_SEND_EVENT_PACKED 0xE1
nickludlam 0:b4ccb530b9eb 77
nickludlam 0:b4ccb530b9eb 78 #define SPI_PROTOCOL_PAD 0xff
nickludlam 0:b4ccb530b9eb 79 #define SPI_PROTOCOL_PENDING 0xfa
nickludlam 0:b4ccb530b9eb 80 #define SPI_PROTOCOL_RESET 0xf5
nickludlam 0:b4ccb530b9eb 81
nickludlam 0:b4ccb530b9eb 82 /* For SPI_CMD_GET_CONNECT_STATE */
nickludlam 0:b4ccb530b9eb 83 #define BC_CONNECT_STATE_CONNECTED 0x00
nickludlam 0:b4ccb530b9eb 84 #define BC_CONNECT_STATE_CONNECTING 0x01
nickludlam 0:b4ccb530b9eb 85 #define BC_CONNECT_STATE_DISCONNECTED 0x02
nickludlam 0:b4ccb530b9eb 86
nickludlam 0:b4ccb530b9eb 87 /* For SPI_CMD_GET_EUI64 */
nickludlam 0:b4ccb530b9eb 88 #define BC_EUI64_NODE 0x00
nickludlam 0:b4ccb530b9eb 89 #define BC_EUI64_PARENT 0x01
nickludlam 0:b4ccb530b9eb 90 #define BC_EUI64_COORDINATOR 0x02
nickludlam 0:b4ccb530b9eb 91
nickludlam 0:b4ccb530b9eb 92 /* For SPI_CMD_SEND_PRODUCT_ANNOUNCE */
nickludlam 0:b4ccb530b9eb 93 #define BC_HOST_UNKNOWN 0x0000
nickludlam 0:b4ccb530b9eb 94 #define BC_HOST_ARDUINO 0x1000
nickludlam 0:b4ccb530b9eb 95 #define BC_HOST_MBED 0x2000
nickludlam 0:b4ccb530b9eb 96 #define BC_HOST_LINUX 0x3000
nickludlam 0:b4ccb530b9eb 97
nickludlam 0:b4ccb530b9eb 98 /* For SPI_CMD_GET_CLAIM_STATE */
nickludlam 0:b4ccb530b9eb 99 #define BC_CLAIM_STATE_CLAIMED 0x00
nickludlam 0:b4ccb530b9eb 100 #define BC_CLAIM_STATE_NOT_CLAIMED 0x01
nickludlam 0:b4ccb530b9eb 101
nickludlam 0:b4ccb530b9eb 102 /* For SPI_CMD_DISPLAY_STYLE */
nickludlam 0:b4ccb530b9eb 103 #define BC_DISPLAY_NONE 0x00
nickludlam 0:b4ccb530b9eb 104 #define BC_DISPLAY_STYLE_ONE_LINE 0x01
nickludlam 0:b4ccb530b9eb 105 #define BC_DISPLAY_STYLE_TWO_LINES 0x02
nickludlam 0:b4ccb530b9eb 106 #define BC_DISPLAY_STYLE_FOUR_LINES 0x04
nickludlam 0:b4ccb530b9eb 107
nickludlam 0:b4ccb530b9eb 108 #define BC_DISPLAY_CLEAR 0xc0
nickludlam 0:b4ccb530b9eb 109 /* Clear the display without changing the style */
nickludlam 0:b4ccb530b9eb 110
nickludlam 0:b4ccb530b9eb 111 /* For SPI_CMD_SEND_EVENT_ */
nickludlam 0:b4ccb530b9eb 112 #define SPI_EVENT_HEADER_SIZE_BYTES 4
nickludlam 0:b4ccb530b9eb 113
nickludlam 0:b4ccb530b9eb 114 /* SPI data sizes */
nickludlam 0:b4ccb530b9eb 115 #define SPI_MAX_PACKET_SIZE_BYTES 128
nickludlam 0:b4ccb530b9eb 116 #define SPI_HEADER_SIZE_BYTES 4
nickludlam 0:b4ccb530b9eb 117 #define SPI_FOOTER_SIZE_BYTES 2
nickludlam 0:b4ccb530b9eb 118
nickludlam 0:b4ccb530b9eb 119 #define SPI_MAX_PAYLOAD_SIZE_BYTES \
nickludlam 0:b4ccb530b9eb 120 (SPI_MAX_PACKET_SIZE_BYTES - (SPI_HEADER_SIZE_BYTES + SPI_FOOTER_SIZE_BYTES))
nickludlam 0:b4ccb530b9eb 121
nickludlam 0:b4ccb530b9eb 122 /* Response status values */
nickludlam 0:b4ccb530b9eb 123 #define SPI_RSP_SUCCESS 0x00
nickludlam 0:b4ccb530b9eb 124 #define SPI_RSP_INVALID_COMMAND 0x01
nickludlam 0:b4ccb530b9eb 125 #define SPI_RSP_BUSY 0x02
nickludlam 0:b4ccb530b9eb 126 #define SPI_RSP_NO_DATA 0x03
nickludlam 0:b4ccb530b9eb 127 #define SPI_RSP_SEND_FAILED 0x04
nickludlam 0:b4ccb530b9eb 128 #define SPI_RSP_NO_FREE_BUFFERS 0x05
nickludlam 0:b4ccb530b9eb 129