Implement a secure ICS protocol targeting LoRa Node151 microcontroller for controlling irrigation.
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

319 行
7.6 KiB

  1. /**
  2. * \file
  3. *
  4. * \brief Increment macro.
  5. *
  6. * Copyright (C) 2014 Atmel Corporation. All rights reserved.
  7. *
  8. * \asf_license_start
  9. *
  10. * \page License
  11. *
  12. * Redistribution and use in source and binary forms, with or without
  13. * modification, are permitted provided that the following conditions are met:
  14. *
  15. * 1. Redistributions of source code must retain the above copyright notice,
  16. * this list of conditions and the following disclaimer.
  17. *
  18. * 2. Redistributions in binary form must reproduce the above copyright notice,
  19. * this list of conditions and the following disclaimer in the documentation
  20. * and/or other materials provided with the distribution.
  21. *
  22. * 3. The name of Atmel may not be used to endorse or promote products derived
  23. * from this software without specific prior written permission.
  24. *
  25. * 4. This software may only be redistributed and used in connection with an
  26. * Atmel microcontroller product.
  27. *
  28. * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
  29. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  30. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
  31. * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
  32. * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  33. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  34. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  35. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  36. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  37. * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  38. * POSSIBILITY OF SUCH DAMAGE.
  39. *
  40. * \asf_license_stop
  41. *
  42. */
  43. #ifndef _UTILS_INCREMENT_MACRO_H
  44. #define _UTILS_INCREMENT_MACRO_H
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48. /**
  49. * \brief Compile time increment, result value is entire integer literal
  50. *
  51. * \param[in] val - value to be incremented (254 max)
  52. */
  53. #define INC_VALUE(val) SP_INC_##val
  54. // Preprocessor increment implementation
  55. #define SP_INC_0 1
  56. #define SP_INC_1 2
  57. #define SP_INC_2 3
  58. #define SP_INC_3 4
  59. #define SP_INC_4 5
  60. #define SP_INC_5 6
  61. #define SP_INC_6 7
  62. #define SP_INC_7 8
  63. #define SP_INC_8 9
  64. #define SP_INC_9 10
  65. #define SP_INC_10 11
  66. #define SP_INC_11 12
  67. #define SP_INC_12 13
  68. #define SP_INC_13 14
  69. #define SP_INC_14 15
  70. #define SP_INC_15 16
  71. #define SP_INC_16 17
  72. #define SP_INC_17 18
  73. #define SP_INC_18 19
  74. #define SP_INC_19 20
  75. #define SP_INC_20 21
  76. #define SP_INC_21 22
  77. #define SP_INC_22 23
  78. #define SP_INC_23 24
  79. #define SP_INC_24 25
  80. #define SP_INC_25 26
  81. #define SP_INC_26 27
  82. #define SP_INC_27 28
  83. #define SP_INC_28 29
  84. #define SP_INC_29 30
  85. #define SP_INC_30 31
  86. #define SP_INC_31 32
  87. #define SP_INC_32 33
  88. #define SP_INC_33 34
  89. #define SP_INC_34 35
  90. #define SP_INC_35 36
  91. #define SP_INC_36 37
  92. #define SP_INC_37 38
  93. #define SP_INC_38 39
  94. #define SP_INC_39 40
  95. #define SP_INC_40 41
  96. #define SP_INC_41 42
  97. #define SP_INC_42 43
  98. #define SP_INC_43 44
  99. #define SP_INC_44 45
  100. #define SP_INC_45 46
  101. #define SP_INC_46 47
  102. #define SP_INC_47 48
  103. #define SP_INC_48 49
  104. #define SP_INC_49 50
  105. #define SP_INC_50 51
  106. #define SP_INC_51 52
  107. #define SP_INC_52 53
  108. #define SP_INC_53 54
  109. #define SP_INC_54 55
  110. #define SP_INC_55 56
  111. #define SP_INC_56 57
  112. #define SP_INC_57 58
  113. #define SP_INC_58 59
  114. #define SP_INC_59 60
  115. #define SP_INC_60 61
  116. #define SP_INC_61 62
  117. #define SP_INC_62 63
  118. #define SP_INC_63 64
  119. #define SP_INC_64 65
  120. #define SP_INC_65 66
  121. #define SP_INC_66 67
  122. #define SP_INC_67 68
  123. #define SP_INC_68 69
  124. #define SP_INC_69 70
  125. #define SP_INC_70 71
  126. #define SP_INC_71 72
  127. #define SP_INC_72 73
  128. #define SP_INC_73 74
  129. #define SP_INC_74 75
  130. #define SP_INC_75 76
  131. #define SP_INC_76 77
  132. #define SP_INC_77 78
  133. #define SP_INC_78 79
  134. #define SP_INC_79 80
  135. #define SP_INC_80 81
  136. #define SP_INC_81 82
  137. #define SP_INC_82 83
  138. #define SP_INC_83 84
  139. #define SP_INC_84 85
  140. #define SP_INC_85 86
  141. #define SP_INC_86 87
  142. #define SP_INC_87 88
  143. #define SP_INC_88 89
  144. #define SP_INC_89 90
  145. #define SP_INC_90 91
  146. #define SP_INC_91 92
  147. #define SP_INC_92 93
  148. #define SP_INC_93 94
  149. #define SP_INC_94 95
  150. #define SP_INC_95 96
  151. #define SP_INC_96 97
  152. #define SP_INC_97 98
  153. #define SP_INC_98 99
  154. #define SP_INC_99 100
  155. #define SP_INC_100 101
  156. #define SP_INC_101 102
  157. #define SP_INC_102 103
  158. #define SP_INC_103 104
  159. #define SP_INC_104 105
  160. #define SP_INC_105 106
  161. #define SP_INC_106 107
  162. #define SP_INC_107 108
  163. #define SP_INC_108 109
  164. #define SP_INC_109 110
  165. #define SP_INC_110 111
  166. #define SP_INC_111 112
  167. #define SP_INC_112 113
  168. #define SP_INC_113 114
  169. #define SP_INC_114 115
  170. #define SP_INC_115 116
  171. #define SP_INC_116 117
  172. #define SP_INC_117 118
  173. #define SP_INC_118 119
  174. #define SP_INC_119 120
  175. #define SP_INC_120 121
  176. #define SP_INC_121 122
  177. #define SP_INC_122 123
  178. #define SP_INC_123 124
  179. #define SP_INC_124 125
  180. #define SP_INC_125 126
  181. #define SP_INC_126 127
  182. #define SP_INC_127 128
  183. #define SP_INC_128 129
  184. #define SP_INC_129 130
  185. #define SP_INC_130 131
  186. #define SP_INC_131 132
  187. #define SP_INC_132 133
  188. #define SP_INC_133 134
  189. #define SP_INC_134 135
  190. #define SP_INC_135 136
  191. #define SP_INC_136 137
  192. #define SP_INC_137 138
  193. #define SP_INC_138 139
  194. #define SP_INC_139 140
  195. #define SP_INC_140 141
  196. #define SP_INC_141 142
  197. #define SP_INC_142 143
  198. #define SP_INC_143 144
  199. #define SP_INC_144 145
  200. #define SP_INC_145 146
  201. #define SP_INC_146 147
  202. #define SP_INC_147 148
  203. #define SP_INC_148 149
  204. #define SP_INC_149 150
  205. #define SP_INC_150 151
  206. #define SP_INC_151 152
  207. #define SP_INC_152 153
  208. #define SP_INC_153 154
  209. #define SP_INC_154 155
  210. #define SP_INC_155 156
  211. #define SP_INC_156 157
  212. #define SP_INC_157 158
  213. #define SP_INC_158 159
  214. #define SP_INC_159 160
  215. #define SP_INC_160 161
  216. #define SP_INC_161 162
  217. #define SP_INC_162 163
  218. #define SP_INC_163 164
  219. #define SP_INC_164 165
  220. #define SP_INC_165 166
  221. #define SP_INC_166 167
  222. #define SP_INC_167 168
  223. #define SP_INC_168 169
  224. #define SP_INC_169 170
  225. #define SP_INC_170 171
  226. #define SP_INC_171 172
  227. #define SP_INC_172 173
  228. #define SP_INC_173 174
  229. #define SP_INC_174 175
  230. #define SP_INC_175 176
  231. #define SP_INC_176 177
  232. #define SP_INC_177 178
  233. #define SP_INC_178 179
  234. #define SP_INC_179 180
  235. #define SP_INC_180 181
  236. #define SP_INC_181 182
  237. #define SP_INC_182 183
  238. #define SP_INC_183 184
  239. #define SP_INC_184 185
  240. #define SP_INC_185 186
  241. #define SP_INC_186 187
  242. #define SP_INC_187 188
  243. #define SP_INC_188 189
  244. #define SP_INC_189 190
  245. #define SP_INC_190 191
  246. #define SP_INC_191 192
  247. #define SP_INC_192 193
  248. #define SP_INC_193 194
  249. #define SP_INC_194 195
  250. #define SP_INC_195 196
  251. #define SP_INC_196 197
  252. #define SP_INC_197 198
  253. #define SP_INC_198 199
  254. #define SP_INC_199 200
  255. #define SP_INC_200 201
  256. #define SP_INC_201 202
  257. #define SP_INC_202 203
  258. #define SP_INC_203 204
  259. #define SP_INC_204 205
  260. #define SP_INC_205 206
  261. #define SP_INC_206 207
  262. #define SP_INC_207 208
  263. #define SP_INC_208 209
  264. #define SP_INC_209 210
  265. #define SP_INC_210 211
  266. #define SP_INC_211 212
  267. #define SP_INC_212 213
  268. #define SP_INC_213 214
  269. #define SP_INC_214 215
  270. #define SP_INC_215 216
  271. #define SP_INC_216 217
  272. #define SP_INC_217 218
  273. #define SP_INC_218 219
  274. #define SP_INC_219 220
  275. #define SP_INC_220 221
  276. #define SP_INC_221 222
  277. #define SP_INC_222 223
  278. #define SP_INC_223 224
  279. #define SP_INC_224 225
  280. #define SP_INC_225 226
  281. #define SP_INC_226 227
  282. #define SP_INC_227 228
  283. #define SP_INC_228 229
  284. #define SP_INC_229 230
  285. #define SP_INC_230 231
  286. #define SP_INC_231 232
  287. #define SP_INC_232 233
  288. #define SP_INC_233 234
  289. #define SP_INC_234 235
  290. #define SP_INC_235 236
  291. #define SP_INC_236 237
  292. #define SP_INC_237 238
  293. #define SP_INC_238 239
  294. #define SP_INC_239 240
  295. #define SP_INC_240 241
  296. #define SP_INC_241 242
  297. #define SP_INC_242 243
  298. #define SP_INC_243 244
  299. #define SP_INC_244 245
  300. #define SP_INC_245 246
  301. #define SP_INC_246 247
  302. #define SP_INC_247 248
  303. #define SP_INC_248 249
  304. #define SP_INC_249 250
  305. #define SP_INC_250 251
  306. #define SP_INC_251 252
  307. #define SP_INC_252 253
  308. #define SP_INC_253 254
  309. #define SP_INC_254 255
  310. #ifdef __cplusplus
  311. }
  312. #endif
  313. #endif /* _UTILS_INCREMENT_MACRO_H */