{"id":638,"date":"2014-02-25T17:14:36","date_gmt":"2014-02-25T08:14:36","guid":{"rendered":"http:\/\/www.gvc-on.net\/?page_id=638"},"modified":"2014-02-25T17:15:32","modified_gmt":"2014-02-25T08:15:32","slug":"%e3%83%9e%e3%82%b9%e3%82%bf%e3%83%bc%e3%82%b3%e3%83%b3%e3%83%88%e3%83%ad%e3%83%bc%e3%83%a9%e3%83%bc%e7%94%a8%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0master_controller_18f26k22-c","status":"publish","type":"page","link":"https:\/\/www.gvc-on.net\/?page_id=638","title":{"rendered":"\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u7528\u30d7\u30ed\u30b0\u30e9\u30e0(master_controller_18f26k22.c)"},"content":{"rendered":"<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\/\/ --------------------------------------------------\r\n\/\/ Global Versatile Controler http:\/\/www.gvc-on.net\/\r\n\/\/ --------------------------------------------------\r\n\/\/ --------------------------------------------------\r\n\/\/ Revision Memo (Y.M.D Editor\/Memo)\r\n\/\/ --------------------------------------------------\r\n\/\/ \r\n\/\/ 2013.06.06 T.Kabu\r\n\/\/ \u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u7528\r\n\/\/ \r\n\/\/ \u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306f\u3001\u8a00\u3063\u3066\u307f\u308c\u3070\u30b7\u30ea\u30a2\u30eb\u3068I2C\u306e\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u5f79\u76ee\u3060\u3051\r\n\/\/ \u30fb\u521d\u671f\u8d77\u52d5\u6642\r\n\/\/ \u3000\u30fbI2C\u3092\u5168\u30b9\u30ad\u30e3\u30f3\u3057\u3066\u63a5\u7d9a\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u305d\u306e\u30bf\u30a4\u30d7\u3092\u53d6\u5f97\r\n\/\/ \u3000\u30fb\u8d77\u52d5\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u30b7\u30ea\u30a2\u30eb\u51fa\u529b\r\n\/\/ \u3000\u30fb\u63a5\u7d9a\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u305d\u306e\u30bf\u30a4\u30d7\u306e\u4e00\u89a7\u3092\u51fa\u529b\r\n\/\/ \u3000\u30fb\u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u9001\u4fe1\r\n\/\/ \u30fb\u30eb\u30fc\u30d7\u6642\u306e\u51e6\u7406\r\n\/\/ \u3000\u30fb\u30b7\u30ea\u30a2\u30eb\u304b\u3089\u306e\u30c7\u30fc\u30bf\u306e\u6709\u7121\u3092\u78ba\u8a8d\r\n\/\/ \u3000\u2192\u30c7\u30fc\u30bf\u304c\u3042\u308c\u3070\r\n\/\/ \u3000\u3000\u30fb\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3057\u3066\u305f\u3081\u3066\u3044\u304f\r\n\/\/ \u3000\u3000\u30fb\u30b3\u30de\u30f3\u30c9\u3068\u3057\u3066\u8a8d\u3081\u3089\u308c\u308c\u3070\u30b3\u30de\u30f3\u30c9\u51e6\u7406\r\n\/\/ \u3000(\u2192\u30c7\u30fc\u30bf\u304c\u306a\u3051\u308c\u3070\u3001\u3082\u3057\u304f\u306f\u30b3\u30de\u30f3\u30c9\u51e6\u7406\u304c\u7d42\u308f\u3063\u305f\u3089\u3001\u7279\u306b\u4f55\u3082\u3057\u306a\u3044\u3067\u4ee5\u4e0b\u306e\u51e6\u7406\u306b\u7d9a\u304f)\r\n\/\/ \u3000\u30fb\u53d6\u5f97\u53ef\u80fd\u306a\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u3089\u306f\u9806\u6b21\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3066\u3044\u304f\r\n\/\/ \u3000\u4ee5\u4e0a\u306e\u7e70\u308a\u8fd4\u3057\r\n\/\/ \r\n\/\/ 2013.05.08 T.Kabu\r\n\/\/ GVC Rev.2\u3068\u3057\u3066\u306e\u3082\u308d\u3082\u308d\u3092\u5b9a\u7fa9\r\n\/\/ \r\n\r\n\/\/---------------------------------------------------\r\n\/\/ Include Header\r\n\/\/---------------------------------------------------\r\n\/\/ ----------------------------------------\r\n\/\/ Standard Header\r\n\/\/ ----------------------------------------\r\n#include &lt;xc.h&gt;\r\n#include &lt;plib.h&gt;\r\n#include &lt;htc.h&gt;\r\n#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n#include &lt;string.h&gt;\r\n\r\n\/\/ ----------------------------------------\r\n\/\/ User Header\r\n\/\/ ----------------------------------------\r\n\/\/ Pragma Header\r\n#include &quot;pragma.h&quot;\r\n\r\n\/\/ PIC Parameter define and initialize\r\n#include &quot;pic_init.h&quot;\r\n\r\n\/\/ GVC Parameter define and initialize\r\n#include &quot;gvc_init.h&quot;\r\n\r\n\/\/ --------------------------------------------------\r\n\/\/ Const Define\r\n\/\/ --------------------------------------------------\r\n#define VERSION &quot;=== GVC MASTER CONTROLLER PROGRAM for 18F26K22 ===&quot;\r\n\r\n\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\r\n#define serial_rcvbuffsize\t\t256\r\n#define serial_rcvbuffring\t\t255\t\t\t\t\t\t\t\/\/ serial_rcvbuffsize\u304b\u30891\u6e1b\u3089\u3057\u305f\u5024\u3092\u8a2d\u5b9a\r\n\r\n\/\/ GVC\u3067\u6271\u3046\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5927\u30b5\u30a4\u30ba(\u3082\u308d\u3082\u308d\u8fbc\u307f\u8fbc\u307f\u3067\u2026TBD)\r\n#define GVC_MSG_MAX\t\t\t\t2500\r\n#define GVC_MSG_MIN\t\t\t\t256\r\n\r\n#define GVC_MIN_MESSAGE_LENGTH\t7\t\t\t\t\t\t\t\/\/ \u30b7\u30ea\u30a2\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5c0f\u30b5\u30a4\u30ba\r\n\r\n\/\/ PIC\u306eI2C\u30a2\u30c9\u30ec\u30b9\u3001\u9069\u6642\u5909\u66f4\u3059\u308b\u3053\u3068\r\n#define\tI2C_ADDR\t\t\t0x01\r\n\r\n\/\/ ------------------------------\r\n\/\/ Define MPL115A2 (Atmospheric pressure Sensor)\r\n\/\/ ------------------------------\r\n#define    GVC_PIR_ADDRESS\t\t\t0x11\t\t\t\t\t\/\/ I2C Device ID : PIR MODULE\r\n#define    GVC_TEMP_HUMI_ADDRESS\t0x20\t\t\t\t\t\/\/ I2C Device ID : TEMP &amp; HUMI MODULE\r\n#define    GVC_DISTANCE_ADDRESS\t\t0x50\t\t\t\t\t\/\/ I2C Device ID : DISTANCE MODULE\r\n#define    MPL115A2_ADDRESS\t\t\t0x60\t\t\t\t\t\/\/ I2C Device ID : MPL115A2 (Atmospheric pressure Sensor)\r\n\r\n\/\/ --------------------------------------------------\r\n\/\/ Variable Param\r\n\/\/ --------------------------------------------------\r\n\/\/ \u5272\u308a\u8fbc\u307f\u51e6\u7406\u5185\u3067\u306e\u30ec\u30b8\u30b9\u30bf\u306e\u5024\u3092\u683c\u7d0d\u3059\u308b\u5909\u6570\u306f\u3053\u3053\u3067\u5ba3\u8a00\u3059\u308b\u3053\u3068\u3001\u5272\u308a\u8fbc\u307f\u51e6\u7406\u5185\u3067\u5ba3\u8a00\u3057\u3066\u306f\u3044\u3051\u306a\u3044!! T.Kabu 2013.05.14\r\nunsigned char reg_RCSTA1;\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30b9\u30c6\u30fc\u30bf\u30b9\u30ec\u30b8\u30b9\u30bf\r\nunsigned char reg_SSP1STAT;\t\t\t\t\t\t\t\t\t\/\/ SSP1\u30b9\u30c6\u30fc\u30bf\u30b9\u30ec\u30b8\u30b9\u30bf\r\n\r\nstatic unsigned char serial_rcvptr;\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30dd\u30a4\u30f3\u30bf\r\nstatic unsigned char serial_readptr;\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u8aad\u307f\u51fa\u3057\u30dd\u30a4\u30f3\u30bf\r\nstatic unsigned char serial_rcvbuff&#x5B;serial_rcvbuffsize];\t\/\/ \u53d7\u4fe1\u30ea\u30f3\u30b0\u30d0\u30c3\u30d5\u30a1(RCREG1)\r\n\r\nunsigned char mainbuffer&#x5B;GVC_MAINBUFF_SIZE];\t\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\r\nunsigned char subbuffer&#x5B;GVC_SUBBUFF_SIZE];\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\r\n\/\/ \u5272\u308a\u8fbc\u307f\u51e6\u7406\u3068\u306f\u9055\u3046\u3051\u3069\u3001\u3053\u3053\u3067\u30d0\u30c3\u30d5\u30a1\u4f4d\u7f6e\u306a\u3069\u3092\u5ba3\u8a00\u3057\u305f\u3089\u306f\u307e\u3063\u305f\u306e\u3067\u3053\u3053\u3067\u5ba3\u8a00\u3059\u308b\u306a!! XC8\u306e\u30d0\u30b0\u306b\u306f\u307e\u308b\u305e!! T.Kabu 2013.05.14\r\n\r\nunsigned char i2c_slavetbl&#x5B;0x80];\t\t\t\t\t\t\t\/\/ I2C\u30b9\u30ec\u30fc\u30d6\u72b6\u614b\u683c\u7d0d\u30c6\u30fc\u30d6\u30eb(\u4f5c\u696d\u7528)\r\n\r\nGVC_SERIAL_MESSAGE_t * gvc_serial_message;\t\t\t\t\t\/\/ GVC \u30b7\u30ea\u30a2\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u7528\u30dd\u30a4\u30f3\u30bf(mainbuffer\u306b\u304b\u3076\u305b\u308b)\r\n\/\/\/\tGVC_I2C_MESSAGE_t * gvc_i2c_message;\t\t\t\t\t\/\/ GVC I2C\u30e1\u30c3\u30bb\u30fc\u30b8\u7528\u30dd\u30a4\u30f3\u30bf(gvc_serial_message\u306b\u304b\u3076\u305b\u308b)\r\n\r\n\/\/ ------------------------------\r\n\/\/ Global Parameter MPL115A2 (Atmospheric pressure Sensor)\r\n\/\/ ------------------------------\r\nshort int sia0;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ea0\u4fc2\u6570\r\nshort int sib1;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306eb1\u4fc2\u6570\r\nshort int sib2;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306eb2\u4fc2\u6570\r\nshort int sic12;\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ec12\u4fc2\u6570\r\nshort int sic11;\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ec11\u4fc2\u6570\r\nshort int sic22;\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ec22\u4fc2\u6570\r\n\r\nlong int sia0l;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ea0\u4fc2\u6570(long\u5024)\r\nlong int sib1l;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306eb1\u4fc2\u6570(long\u5024)\r\nlong int sib2l;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306eb2\u4fc2\u6570(long\u5024)\r\nlong int sic12l;\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ec12\u4fc2\u6570(long\u5024)\r\nlong int sic11l;\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ec11\u4fc2\u6570(long\u5024)\r\nlong int sic22l;\t\t\t\t\t\t\t\t\t\t\t\/\/ MPL115A2\u306ec22\u4fc2\u6570(long\u5024)\r\n\r\n\/\/ ------------------------------\r\n\/\/ GVC Message : Delimiter\r\n\/\/ ------------------------------\r\n\/\/ \u30c7\u30ea\u30df\u30bf\u30e1\u30c3\u30bb\u30fc\u30b8 \u2026 \u6700\u5f8c\u306e0x00\u306fmain()\u5185\u3067CRC\u306b\u7f6e\u63db\u3055\u308c\u308b\r\nunsigned char GVC_DELIMITER_MSG&#x5B;] = {\r\n\t0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,\r\n\t0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xaa,\r\n\t0x00\r\n};\r\n\r\n\/\/ --------------------------------------------------\r\n\/\/ Function prototype\r\n\/\/ --------------------------------------------------\r\n\r\n\/\/ --------------------------------------------------\r\n\/\/ Sub Routine\r\n\/\/ --------------------------------------------------\r\n\/\/ ------------------------------\r\n\/\/ Send Delimiter Frame\r\n\/\/ ------------------------------\r\nvoid send_delimiterframe()\r\n{\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u3092\u9001\u4fe1\r\n\tsend_strdata(&amp;GVC_DELIMITER_MSG);\r\n\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u3092\u9001\u4fe1\r\n\tsend_strdata(&amp;GVC_DELIMITER_MSG);\r\n\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u3092\u9001\u4fe1\r\n\tsend_strdata(&amp;GVC_DELIMITER_MSG);\r\n\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u3092\u9001\u4fe1\r\n\tsend_strdata(&amp;GVC_DELIMITER_MSG);\r\n\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u3092\u9001\u4fe1\r\n\tsend_strdata(&amp;GVC_DELIMITER_MSG);\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Send GVC Other Message\r\n\/\/ ------------------------------\r\nvoid send_gvc_other_message(int dev_num, int data_len, char * data)\r\n{\r\n\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\tPORT_RESULT_LED = LED_ON;\r\n\t\r\n\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\r\n\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8a2d\u5b9a\r\n\tgvc_serial_message-&gt;msg_type = GVC_MSG_OTHER;\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30bf\u30a4\u30d7\u3092\u8a2d\u5b9a\r\n\tgvc_serial_message-&gt;dev_num = dev_num;\t\t\t\t\/\/ \u30c7\u30d0\u30a4\u30b9\u756a\u53f7\u3092\u8a2d\u5b9a\r\n\tgvc_serial_message-&gt;format = 0x01;\t\t\t\t\t\/\/ \u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u8a2d\u5b9a(0x01=\u901a\u5e38\u30c6\u30ad\u30b9\u30c8)\r\n\tgvc_serial_message-&gt;cmd = 0x01;\t\t\t\t\t\t\/\/ \u7d50\u679c(\u60c5\u5831\u7a2e\u5225)\u3092\u8a2d\u5b9a(0x01=\u521d\u671f\u60c5\u5831\u3001\u30b7\u30b9\u30c6\u30e0\u60c5\u5831)\r\n\tgvc_serial_message-&gt;data_len = data_len;\t\t\t\/\/ \u30c7\u30fc\u30bf\u9577\u3092\u8a2d\u5b9a\r\n\tmemcpy(gvc_serial_message-&gt;data, data, data_len);\t\/\/ \u30c7\u30fc\u30bf\u3092\u8a2d\u5b9a\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ \u51e6\u7406\u7d50\u679c\u3092\u9001\u4fe1\r\n\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\r\n\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\tPORT_RESULT_LED = LED_OFF;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Recieve serialdata\r\n\/\/ ------------------------------\r\nchar rcv_serialdata(void)\r\n{\r\n\tunsigned char data;\r\n\t\r\n\t\/\/ \u8fd4\u308a\u5024\u7528\u30c7\u30fc\u30bf\u306b\u53d7\u4fe1\u30c7\u30fc\u30bf\u30b3\u30d4\u30fc\r\n\tdata = serial_rcvbuff&#x5B;serial_readptr];\r\n\t\/\/ \u53d7\u4fe1\u8aad\u307f\u51fa\u3057\u30dd\u30a4\u30f3\u30bf\u3092\u52a0\u7b97\r\n\tserial_readptr ++;\r\n\t\/\/ \u53d7\u4fe1\u8aad\u307f\u51fa\u3057\u30dd\u30a4\u30f3\u30bf\u3092\u30ea\u30f3\u30b0\u308b\r\n\tserial_readptr &amp;= serial_rcvbuffring;\r\n\t\r\n\t\/\/ \u53d7\u4fe1\u30c7\u30fc\u30bf\u3092\u8fd4\u3059\r\n\treturn data;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Setup MSSP1 18F26K22\r\n\/\/ ------------------------------\r\nvoid init_mssp1_18F26K22(void)\r\n{\r\n\t\/\/ ------------------------------\r\n\t\/\/ MSSP1\u5236\u5fa1\u30c7\u30fc\u30bf\u8a2d\u5b9a \u30de\u30b9\u30bf\u30fc\u3068\u3057\u3066\u8a2d\u5b9a\u3059\u308b\u5834\u5408\r\n\t\/\/ ------------------------------\r\n\t\/\/ bit 7   : SMP 1 = Slew rate control disabled for standard speed mode (100 kHz and 1 MHz)\r\n\t\/\/         :     0 = Slew rate control enabled for high speed mode (400 kHz)\r\n\t\/\/ bit 6   : CKE 1 = Enable input logic so that thresholds are compliant with SMbus specification\r\n\t\/\/         :     0 = Disable SMbus specific inputs\r\n\t\/\/ bit 5   : D\/A: Data\/Address bit (I2C mode only)\r\n\t\/\/         :     1 = Indicates that the last byte received or transmitted was data\r\n\t\/\/         :     0 = Indicates that the last byte received or transmitted was address\r\n\t\/\/ bit 4   : P: Stop bit\r\n\t\/\/         : (I2C mode only. This bit is cleared when the MSSPx module is disabled, SSPxEN is cleared.)\r\n\t\/\/         :     1 = Indicates that a Stop bit has been detected last (this bit is \u20180\u2019 on Reset)\r\n\t\/\/         :     0 = Stop bit was not detected last\r\n\t\/\/ bit 3   : S: Start bit\r\n\t\/\/         : (I2C mode only. This bit is cleared when the MSSPx module is disabled, SSPxEN is cleared.)\r\n\t\/\/         :     1 = Indicates that a Start bit has been detected last (this bit is \u20180\u2019 on Reset)\r\n\t\/\/         :     0 = Start bit was not detected last\r\n\t\/\/ bit 2   : R\/W: Read\/Write bit information (I2C mode only)\r\n\t\/\/         : In I2 C Master mode:\r\n\t\/\/         :     1 = Transmit is in progress\r\n\t\/\/         :     0 = Transmit is not in progress\r\n\t\/\/         : OR-ing this bit with SEN, RSEN, PEN, RCEN or ACKEN will indicate if the MSSPx is in Idle mode.\r\n\t\/\/         : (\u3053\u306e\u30d3\u30c3\u30c8\u3068\u3001SEN\u3001RSEN\u3001PEN\u3001RCEN\u3001\u307e\u305f\u306fACKEN \u3068\u306e\u8ad6\u7406\u548c\u3092\u53d6\u308b\u3068\u3001\u30de\u30b9\u30bf\u30e2\u30fc\u30c9\u304c\u30a2\u30af\u30c6\u30a3\u30d6\u304b\u3069\u3046\u304b\u3092\u5224\u65ad\u3067\u304d\u308b)\r\n\t\/\/ bit 1   : UA: Update Address bit (10-bit I2C mode only)\r\n\t\/\/ bit 0   : BF: Buffer Full Status bit\r\n\t\/\/         : Receive (SPI and I2 C modes):\r\n\t\/\/         :     1 = Receive complete, SSPxBUF is full\r\n\t\/\/         :     0 = Receive not complete, SSPxBUF is empty\r\n\t\/\/         : Transmit (I2 C mode only):\r\n\t\/\/         :     1 = Data transmit in progress (does not include the ACK and Stop bits), SSPxBUF is full\r\n\t\/\/         :     0 = Data transmit complete (does not include the ACK and Stop bits), SSPxBUF is empty\r\n\tSSP1STAT= 0b00000000;\t\/\/ 400kHz Slew rate\r\n\r\n\t\/\/ bit7   : WCOL master(1 = Collision, 0 = No Collision), slave(1 = must be cleard, 0 = No Collision)\r\n\t\/\/ bit6   : SSP1OV SPI(pass), I2C(1 = overflow, 0 = not Overflow)\r\n\t\/\/ bit5   : SSP1EN SPI(pass), I2C(1 = enable SDA\/SCL w\/input mode, 0 = disable)\r\n\t\/\/ bit4   : CKP    SPI(pass), I2C(master(1 = enable clock, 0 = hold clock low), slave (unused))\r\n\t\/\/ bit3-0 : SSP1M  0110 I2C Slave mode, 7bit address\r\n\t\/\/        : SSP1M  0111 I2C Slave mode, 10bit address\r\n\t\/\/        : SSP1M  1000 I2C Master mode, clock = Fosc\/(4 * (SSP1ADD + 1))\r\n\t\/\/        : SSP1M  1011 I2C F\/W controled Master mode(Slave Idle)\r\n\t\/\/        : SSP1M  1110 I2C Slave mode, 7bit address w\/Start\/Stop bit INT\r\n\t\/\/        : SSP1M  1111 I2C Slave mode, 10bit address w\/Start\/Stop bit INT\r\n\tSSP1CON1= 0b00101000;\t\/\/ No Col, Not Overflow,  enable SDA\/SCL w\/input mode, hold clock low, Master mode, clock = Fosc\/(4 * (SSP1ADD + 1))\r\n\t\r\n\t\/\/ SSP1CON2bits.SEN = 1 \u306f\u3001\u5b9f\u969b\u306b\u30de\u30b9\u30bf\u30fc\u304b\u3089\u4f55\u304b\u3092\u9001\u4fe1\u3059\u308b\u3068\u304d\u306b\u8a2d\u5b9a\u3059\u308b\u306e\u3067\u521d\u671f\u8a2d\u5b9a\u6642\u306b\u306f\u4e0d\u8981\r\n\t\r\n\t\/\/ SSP1ADD \u306f\u30de\u30cb\u30e5\u30a2\u30eb\u3092\u898b\u3066\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3001FOSC=16MHz\u3067100kHz\u306a\u308927h\u3001400kHz\u306a\u308909h\u3002\u305f\u3060\u3057400kHz\u306f\u3053\u306ePIC\u3067\u306f\u53b3\u5bc6\u306b\u306f\u6e96\u62e0\u3057\u3066\u3044\u306a\u3044\u3089\u3057\u3044\u2026\u03a3(\uff9f\u0414\uff9f\uff1b\uff74\uff70\uff6f!\r\n\tSSP1ADD = 0x27;\t\t\t\/\/ \u30af\u30ed\u30c3\u30af=FOSC\/((SSPADD + 1)*4) 8MHz\/((0x13+1)*4)=0.1(100KHz)\r\n\t\r\n\t\/\/ MSSP1\u5272\u308a\u8fbc\u307f\u30d5\u30e9\u30b0\u521d\u671f\u5316\r\n\tPIR1bits.SSP1IF = 0;\r\n\t\r\n\t\/\/ MSSP1\u30d0\u30b9\u885d\u7a81\u5272\u308a\u8fbc\u307f\u30d5\u30e9\u30b0\u3092\u521d\u671f\u5316\r\n\tPIR2bits.BCL1IF = 0;\r\n\t\r\n\t\/\/ 100ms\u5f85\u3064\r\n\tDelay_10ms(10);\r\n}\r\n\r\n\/\/ ----------------------------------------\r\n\/\/ Setup 18F26K22 for Analog Voltage\r\n\/\/ ----------------------------------------\r\nvoid init_pic_for_analogvoltage(void)\r\n{\r\n\t\/\/ ------------------------------\r\n\t\/\/ \u30dd\u30fc\u30c8A\u8a2d\u5b9a\r\n\t\/\/ ------------------------------\r\n\t\/\/ bit7   : RA7 1 = input, 0 = output\r\n\t\/\/ bit6   : RA6 1 = input, 0 = output\r\n\t\/\/ bit5   : RA5 1 = input, 0 = output\r\n\t\/\/ bit4   : RA4 1 = input, 0 = output\r\n\t\/\/ bit3   : RA3 1 = input, 0 = output\r\n\t\/\/ bit2   : RA2 1 = input, 0 = output\r\n\t\/\/ bit1   : RA1 1 = input, 0 = output\r\n\t\/\/ bit0   : RA0 1 = input, 0 = output\r\n\tTRISA = 0b00001111;\t\t\/\/ RA0-RA3\u3092\u3092\u96fb\u5727\u6e2c\u5b9a\u7528\u306binput\u30e2\u30fc\u30c9\r\n\t\r\n\t\/\/ ANSELA: PORTA ANALOG SELECT REGISTER \u30dd\u30fc\u30c8\u306eI\/O\u30e2\u30fc\u30c9\u306e\u8a2d\u5b9a\u3002\r\n\t\/\/ bit7-6 : none (0)\r\n\t\/\/ bit5   : ANSA4: Analog Select between Analog or Digital Function on pins RA5, respectively\r\n\t\/\/            0 = Digital I\/O. Pin is assigned to port or digital special function.\r\n\t\/\/            1 = Analog input. Pin is assigned as analog input(1). Digital input buffer disabled.\r\n\t\/\/ bit4   : none (0)\r\n\t\/\/ bit3   : ANSA3: Analog Select between Analog or Digital Function on pins RA3, respectively\r\n\t\/\/ bit2   : ANSA2: Analog Select between Analog or Digital Function on pins RA2, respectively\r\n\t\/\/ bit1   : ANSA1: Analog Select between Analog or Digital Function on pins RA1, respectively\r\n\t\/\/ bit0   : ANSA0: Analog Select between Analog or Digital Function on pins RA0, respectively\r\n\tANSELA = 0b00001111;\t\/\/ AN0(=RA0),AN1(=RA1),AN2(=RA2),AN3(=RA3) Analog input\r\n\t\r\n\t\/\/ ADCON0 \u306f\u3001\u5b9f\u969b\u306b\u96fb\u5727\u3092\u8aad\u3080\u3068\u304d\u306b\u3001\u305d\u306e\u30dd\u30fc\u30c8\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067\u3053\u3053\u3067\u306f\u3044\u3058\u3089\u306a\u3044\r\n\t\r\n\t\/\/ bit 7 TRIGSEL: Special Trigger Select bit\r\n\t\/\/     1 = Selects the special trigger from CTMU\r\n\t\/\/     0 = Selects the special trigger from CCP5\r\n\t\/\/ bit 6-4 Unimplemented: Read as \u20180\u2019\r\n\t\/\/ bit 3-2 PVCFG&lt;1:0&gt;: Positive Voltage Reference Configuration bits\r\n\t\/\/     00 = A\/D VREF+ connected to internal signal, AVDD\r\n\t\/\/     01 = A\/D VREF+ connected to external pin, VREF+\r\n\t\/\/     10 = A\/D VREF+ connected to internal signal, FVR BUF2\r\n\t\/\/     11 = Reserved (by default, A\/D VREF+ connected to internal signal, AVDD)\r\n\t\/\/ bit 1-0 NVCFG0&lt;1:0&gt;: Negative Voltage Reference Configuration bits\r\n\t\/\/     00 = A\/D VREF- connected to internal signal, AVSS\r\n\t\/\/     01 = A\/D VREF- connected to external pin, VREF-\r\n\t\/\/     10 = Reserved (by default, A\/D VREF+ connected to internal signal, AVSS)\r\n\t\/\/     11 = Reserved (by default, A\/D VREF+ connected to internal signal, AVSS)\r\n\tADCON1 = 0b00001000;\t\t\/\/ VREF+\u306fFVR\u304b\u3089\u3001VREF-\u306fGND\u306b\u5bfe\u3057\u3066\u306e\u5024\u3068\u306a\u308b\r\n\t\r\n\t\/\/ AD\u5909\u63db\u5236\u5fa1\u30ec\u30b8\u30b9\u30bf2\u8a2d\u5b9a A\/D CONTROL REGISTER 2\r\n\t\/\/ bit 7 ADFM: A\/D Conversion Result Format Select bit\r\n\t\/\/     1 = Right justified\r\n\t\/\/     0 = Left justified\r\n\t\/\/ bit 6 Unimplemented: Read as \u20180\u2019\r\n\t\/\/ bit 5-3 ACQT&lt;2:0&gt;: A\/D Acquisition time select bits. Acquisition time is the duration that the A\/D charge holding\r\n\t\/\/         capacitor remains connected to A\/D channel from the instant the GO\/DONE bit is set until conversions\r\n\t\/\/         begins.\r\n\t\/\/     000 = 0(1)\r\n\t\/\/     001 = 2 TAD\r\n\t\/\/     010 = 4 TAD\r\n\t\/\/     011 = 6 TAD\r\n\t\/\/     100 = 8 TAD\r\n\t\/\/     101 = 12 TAD\r\n\t\/\/     110 = 16 TAD\r\n\t\/\/     111 = 20 TAD\r\n\t\/\/ bit 2-0 ADCS&lt;2:0&gt;: A\/D Conversion Clock Select bits\r\n\t\/\/     000 = FOSC\/2\r\n\t\/\/     001 = FOSC\/8\r\n\t\/\/     010 = FOSC\/32\r\n\t\/\/     011 = FRC(1) (clock derived from a dedicated internal oscillator = 600 kHz nominal)\r\n\t\/\/     100 = FOSC\/4\r\n\t\/\/     101 = FOSC\/16\r\n\t\/\/     110 = FOSC\/64\r\n\t\/\/     111 = FRC(1) (clock derived from a dedicated internal oscillator = 600 kHz nominal)\r\n\tADCON2 = 0b10110101;\t\/\/ \u53f3\u5bc4\u305b\u300116TAD\u3001FOSC\/16\r\n\t\r\n\t\/\/ \u96fb\u5727\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u5236\u5fa1\u30ec\u30b8\u30b9\u30bf0 FIXED VOLTAGE REFERENCE CONTROL REGISTER\r\n\t\/\/ bit 7 FVREN: Fixed Voltage Reference Enable bit\r\n\t\/\/     0 = Fixed Voltage Reference is disabled\r\n\t\/\/     1 = Fixed Voltage Reference is enabled\r\n\t\/\/ bit 6 FVRST: Fixed Voltage Reference Ready Flag bit\r\n\t\/\/     0 = Fixed Voltage Reference output is not ready or not enabled\r\n\t\/\/     1 = Fixed Voltage Reference output is ready for use\r\n\t\/\/ bit 5-4 FVRS&lt;1:0&gt;: Fixed Voltage Reference Selection bits\r\n\t\/\/     00 = Fixed Voltage Reference Peripheral output is off\r\n\t\/\/     01 = Fixed Voltage Reference Peripheral output is 1x (1.024V)\r\n\t\/\/     10 = Fixed Voltage Reference Peripheral output is 2x (2.048V)(1)\r\n\t\/\/     11 = Fixed Voltage Reference Peripheral output is 4x (4.096V)(1)\r\n\t\/\/ bit 3-2 Reserved: Read as \u20180\u2019. Maintain these bits clear.\r\n\t\/\/ bit 1-0 Unimplemented: Read as \u20180\u2019.\r\n\tVREFCON0 = 0b10110000;\t\/\/ FVR\u6709\u52b9\u3001x4\u306e4.096V\u3068\u3059\u308b\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Interrupt Routine\r\n\/\/ ------------------------------\r\n\/\/ I2C\u306e\u30de\u30b9\u30bf\u30fc\u3068\u30b9\u30ec\u30fc\u30d6\u3068\u306e\u3084\u308a\u53d6\u308a\u306f\u3001\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306e\u8aac\u660e\u304c\u8a00\u8449\u8db3\u3089\u305a\u306a\u305f\u3081\u306b\r\n\/\/ \u975e\u5e38\u306b\u5224\u308a\u3065\u3089\u3044\u3002\u305f\u3060\u3057\u3001\u5224\u3063\u3066\u3057\u307e\u3046\u3068\u4f55\u3060\u305d\u308c\u3060\u3051\u304b\u3001\u3068\u306a\u308b\u3002\r\n\/\/ \r\n\/\/ \u7279\u306b\u30b9\u30ec\u30fc\u30d6\u5074\u3067\u3042\u308c\u3053\u308c\u8a2d\u5b9a\u3057\u305f\u308a\u5224\u5b9a\u3084\u51e6\u7406\u306b\u5fc5\u8981\u306a\u306e\u306f\u6b21\u306e\u30d3\u30c3\u30c8\r\n\/\/ \u30fbD\/A\u20261=SSP1BUF\u306e\u4e2d\u306f\u30c7\u30fc\u30bf\u30010=SSP1BUF\u306e\u4e2d\u306f\u30a2\u30c9\u30ec\u30b9(\u7a7a\u3063\u307d\u2026\u7a7a\u306e\u8aad\u307f\u51fa\u3057\u8981\u6c42\u6642)\r\n\/\/ \u30fbR\/W\u20261=\u30de\u30b9\u30bf\u30fc\u304c\u30b9\u30ec\u30fc\u30d6\u304b\u3089\u53d7\u4fe1\u30010=\u30de\u30b9\u30bf\u30fc\u304c\u30b9\u30ec\u30fc\u30d6\u3078\u9001\u4fe1\r\n\/\/ \u30fbBF\u20261=\u30d0\u30c3\u30d5\u30a1\u306b\u4f55\u304b\u5165\u3063\u3066\u3044\u308b(\u7a7a\u306e\u8aad\u307f\u51fa\u3057\u8981\u6c42\u6642\u3082)\u30010=\u30d0\u30c3\u30d5\u30a1\u306f\u7a7a\u3063\u307d\r\n\/\/ \u30fbCKP\u2026\u30de\u30b9\u30bf\u30fc\u306b\u30c7\u30fc\u30bf\u9001\u4fe1\u3092\u8a31\u53ef\u3059\u308b\u3068\u304d\u3001\u30b9\u30ec\u30fc\u30d6\u304b\u3089\u9001\u4fe1\u3059\u308b\u3068\u304d\u306b1\u306b\u3057\u3066SCL\u3092\u30ea\u30ea\u30fc\u30b9\u3059\u308b\r\n\/\/ \u30fbSSP1IF\u2026\u5272\u308a\u8fbc\u307f\u30d5\u30e9\u30b0\u3001\u306a\u3093\u304b\u3057\u305f\u3089\u30af\u30ea\u30a2\u3059\u308b\r\n\/\/ \u30fbSEN\u2026\u30de\u30b9\u30bf\u30fc\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3059\u308b\u6642\u306b\u3001\u30bd\u30d5\u30c8\u5074\u3067CKP\u3092\u5236\u5fa1\u3059\u308b\u305f\u3081\u306b1\u306b\u3059\u308b\u30020\u3060\u3068\u3046\u307e\u304f\u52d5\u304b\u306a\u3044\u3088!!\r\n\/\/(\u30fbS\u2026\u30b9\u30bf\u30fc\u30c8\u30d3\u30c3\u30c8\u3001\u7279\u306b\u4f7f\u308f\u306a\u304f\u3066\u3082\u3044\u3044\u6c17\u304c\u3059\u308b)\r\n\/\/\r\n\/\/ \u3067\u3001\u5224\u5b9a\u306b\u4f7f\u3046\u30d3\u30c3\u30c8\u304c\u591a\u3044\u3051\u3069\u3001\u57fa\u672c\u7684\u306b\u306fSSP1STAT\u306a\u306e\u3067\u3001\u30de\u30b9\u30af\u3057\u3066\u4e00\u62ec\u5224\u5b9a\u3059\u308c\u3070OK\u3002\r\n\/\/ --------------------------------------------------\r\n\/\/ 18F26K22 Interrupt Routine\r\n\/\/ --------------------------------------------------\r\n\/\/ \u5272\u308a\u8fbc\u307f\u306f\u3059\u3079\u3066interrupt\u5ba3\u8a00\u3055\u308c\u305f\u3053\u306e\u95a2\u6570\u304c\u547c\u3070\u308c\u308b\r\nstatic void interrupt interrupt_18F26K22()\r\n{\r\n\t\/\/ \u5168\u5272\u308a\u8fbc\u307f\u3092\u7981\u6b62(=0) (Global Interrupt Enable bit ... INTCON)\r\n\tINTCONbits.GIE = 0;\r\n\t\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ MSSP1\u5272\u308a\u8fbc\u307f\u51e6\u7406 (Rev.1\u306e18F26K22_I2C.c\u3092\u53c2\u7167\u3059\u308b\u3053\u3068)\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306f\u3001MSSP\u5272\u308a\u8fbc\u307f\u306f\u30a8\u30e9\u30fc\u304b\u8907\u6570\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3067\u3082\u306a\u3051\u308c\u3070\u767a\u751f\u3057\u306a\u3044\r\n\t\/\/ MSSP\u5272\u308a\u8fbc\u307f(=1)\u306a\u3089 (Synchronous Serial Port (MSSP) Interrupt Flag bit ... PIR1)\r\n\tif (PIR1bits.SSP1IF == 1)\r\n\t{\r\n\t\t\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9LED\u3092\u70b9\u706f\r\n\t\tPORT_STATUS_LED = LED_ON;\r\n\t\t\r\n\t\t\/\/ MSSP\u5272\u308a\u8fbc\u307f\u30af\u30ea\u30a2(=0) (Synchronous Serial Port (MSSP) Interrupt Flag bit ... PIR1)\r\n\t\tPIR1bits.SSP1IF = 0;\r\n\t\t\r\n\t\t\/\/ SSP1\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u53d6\u5f97\u3001D\/A\u3001R\/W\u3001BF\u30d3\u30c3\u30c8\u3092\u30de\u30b9\u30af\r\n\t\treg_SSP1STAT = SSP1STAT &amp; 0b00100101;\r\n\t\t\r\n\t\t\/\/ SSP1\u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u3001\u30a2\u30c9\u30ec\u30b9(D\/A=0)\u3067\u3001\u304b\u3064\u30de\u30b9\u30bf\u30fc\u304c\u30b9\u30ec\u30fc\u30d6\u3078\u9001\u4fe1(R\/W=0)\u3001\u304b\u3064\u30d0\u30c3\u30d5\u30a1\u306b\u4f55\u304b\u3042\u308b(BF=1)\u306a\u3089\r\n\t\tif (reg_SSP1STAT == 0b00000001)\r\n\t\t{\r\n\t\t}\r\n\t\t\/\/ SSP1\u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u3001\u30c7\u30fc\u30bf(D\/A=1)\u3067\u3001\u304b\u3064\u30de\u30b9\u30bf\u30fc\u304c\u30b9\u30ec\u30fc\u30d6\u3078\u9001\u4fe1(R\/W=0)\u3001\u304b\u3064\u30d0\u30c3\u30d5\u30a1\u306b\u4f55\u304b\u3042\u308b(BF=1)\u306a\u3089\r\n\t\telse if (reg_SSP1STAT == 0b00100001)\r\n\t\t{\r\n\t\t}\r\n\t\t\/\/ \u30a2\u30c9\u30ec\u30b9(D\/A=0)\u3067\u3001\u304b\u3064\u30de\u30b9\u30bf\u30fc\u304c\u30b9\u30ec\u30fc\u30d6\u304b\u3089\u53d7\u4fe1(R\/W=1)\u3001\u304b\u3064\u30d0\u30c3\u30d5\u30a1\u306b\u4f55\u304b\u3042\u308b(BF=1)\u306a\r\n\t\telse if (reg_SSP1STAT == 0b00000101)\r\n\t\t{\r\n\t\t}\r\n\t\t\/\/ \u30c7\u30fc\u30bf(D\/A=1)\u3067\u3001\u304b\u3064\u30de\u30b9\u30bf\u30fc\u304c\u30b9\u30ec\u30fc\u30d6\u304b\u3089\u53d7\u4fe1(R\/W=1)\u3001\u304b\u3064\u30d0\u30c3\u30d5\u30a1\u304c\u7a7a(BF=0)\u306a\u3089\r\n\t\telse if (reg_SSP1STAT == 0b00100100)\r\n\t\t{\r\n\t\t}\r\n\t\t\/\/ \u3053\u308c\u3089\u4ee5\u5916\u306f\r\n\t\telse\r\n\t\t{\r\n\t\t}\r\n\t\t\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9LED\u3092\u6d88\u706f\r\n\t\tPORT_STATUS_LED = LED_OFF;\r\n\t}\r\n\t\r\n\t\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u30b7\u30ea\u30a2\u30eb1\u53d7\u4fe1\u5272\u308a\u8fbc\u307f\u51e6\u7406\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u30b7\u30ea\u30a2\u30eb1\u53d7\u4fe1\u5272\u308a\u8fbc\u307f(=1)\u306a\u3089 (RC1IF: EUSART1 Receive Interrupt Flag bit ... INTCON)\r\n\t\/\/ 1 = The EUSART1 receive buffer, RCREG1, is full (cleared when RCREG1 is read)\r\n\t\/\/ 0 = The EUSART1 receive buffer is empty\r\n\tif (PIR1bits.RC1IF == 1)\r\n\t{\r\n\t\t\/\/ \u53d7\u4fe1\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u53d6\u5f97\r\n\t\treg_RCSTA1 = RCSTA1;\r\n\t\t\/\/ \u53d7\u4fe1\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u30d5\u30ec\u30fc\u30df\u30f3\u30b0\u30a8\u30e9\u30fc\u3001\u30aa\u30fc\u30d0\u30fc\u30e9\u30f3\u30a8\u30e9\u30fc\u304c\u306a\u3051\u308c\u3070\r\n\t\tif ((reg_RCSTA1 &amp; 0b00000110) == 0b00000000)\r\n\t\t{\r\n\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1(RCREG1)\u304b\u30891\u30d0\u30a4\u30c8\u53d6\u5f97\r\n\t\t\tserial_rcvbuff&#x5B;serial_rcvptr] = RCREG1;\r\n\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30dd\u30a4\u30f3\u30bf\u3092\u52a0\u7b97(+1)\r\n\t\t\tserial_rcvptr ++;\r\n\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30dd\u30a4\u30f3\u30bf\u3092\u30ea\u30f3\u30b0\u308b\r\n\t\t\tserial_rcvptr &amp;= serial_rcvbuffring;\r\n\t\t}\r\n\t\t\/\/ \u53d7\u4fe1\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u30aa\u30fc\u30d0\u30fc\u30e9\u30f3\u30a8\u30e9\u30fc\u304c\u3042\u308b\u306a\u3089\r\n\t\telse if (reg_RCSTA1 &amp; 0b00000010)\r\n\t\t{\r\n\t\t\t\/\/ CREN \u30ec\u30b7\u30fc\u30d0\u30a4\u30cd\u30fc\u30d6\u30eb\u30d3\u30c3\u30c8\u3092\u30af\u30ea\u30a2\u3057\u3066\u518d\u8a2d\u5b9a\r\n\t\t\tRCSTA1bits.CREN = 0;\r\n\t\t\tRCSTA1bits.CREN = 1;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1(RCREG1)\u304b\u30891\u30d0\u30a4\u30c8\u53d6\u5f97\r\n\t\t\tserial_rcvbuff&#x5B;serial_rcvptr] = RCREG1;\r\n\t\t}\r\n\t\t\/\/ \u30b7\u30ea\u30a2\u30eb1\u53d7\u4fe1\u5272\u308a\u8fbc\u307f\u30af\u30ea\u30a2(=0)\u2026\u306f1\u30d0\u30a4\u30c8\u53d7\u4fe1\u3059\u308c\u3070\u81ea\u52d5\u7684\u306b\u30af\u30ea\u30a2\u3055\u308c\u308b\u306e\u3067\u5fc5\u8981\u306a\u3044\r\n\t\t\/\/PIR1bits.RC1IF = 0;\r\n\t\t\r\n\t\t\/\/ \u307b\u3093\u3068\u306f\u3053\u3053\u3067\u3001\u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30dd\u30a4\u30f3\u30bfserial_rcvptr\u304c\u30ea\u30f3\u30b0\u30d0\u30c3\u30d5\u30a1\u3092\u4e0a\u66f8\u304d\u3057\u306a\u3044\u3088\u3046\u306b\r\n\t\t\/\/ \u3059\u308b\u3068\u304b\u3001\u3042\u308f\u305b\u3066\u30d5\u30ed\u30fc\u5236\u5fa1\u3059\u308b\u3068\u304b\u3001\u3044\u308d\u3044\u308d\u3042\u308b\u3051\u3069\u3001\u4eca\u56de\u306f\u3068\u308a\u3042\u3048\u305a\u307b\u3063\u3068\u304f\r\n\t}\r\n\t\/\/ \u5168\u5272\u308a\u8fbc\u307f\u3092\u8a31\u53ef(=1) (Global Interrupt Enable bit ... INTCON)\r\n\tINTCONbits.GIE = 1;\r\n}\r\n\r\n\/\/ --------------------------------------------------\r\n\/\/ Module Routine\r\n\/\/ --------------------------------------------------\r\n\/\/ ------------------------------\r\n\/\/ Get GVC TEMPERATURE DATA\r\n\/\/ ------------------------------\r\nint get_gvc_temp_data(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u73fe\u72b6\u306f\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304c\u81ea\u52d5\u7684\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u8981\u6c42\u3059\u308b\u306e\u3067\u3001\u3053\u3053\u3067format, cmd\u7b49\u3092\u8a2d\u5b9a\u3059\u308b\r\n\t\/\/ gvcd\u304b\u3089\u8981\u6c42\u3055\u308c\u308b\u5834\u5408\u306b\u306f\u3001set_gvc_switch_onoff()\u306e\u3088\u3046\u306b\u305d\u306e\u307e\u307e\u6d41\u7528\u3059\u308c\u3070\u3088\u3044\r\n\t\r\n\t\/\/ \u6e29\u5ea6\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\tgvc_i2c_message-&gt;format = 0x01;\t\t\/\/ \u73fe\u5728\u306e\u6e29\u5ea6(\u6442\u6c0f)\u3068\u6e7f\u5ea6\u3092\u3001\u6587\u5b57\u5217\u3067\u5c0f\u6570\u70b9\u8868\u8a18\u306e\u5b9f\u657016\u6587\u5b57\u3067\u3001\u305d\u306e\u4ed6Vref\u3001\u5206\u89e3\u80fd\u3001\u3082TAB\u533a\u5207\u308a\u3067\r\n\tgvc_i2c_message-&gt;cmd = 0x11;\t\t\/\/ \u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b1\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3001\u6e29\u5ea6\u3068\u6e7f\u5ea6\u306f\u540c\u3058\u30e2\u30b8\u30e5\u30fc\u30eb\u306a\u306e\u3067\u3001\u6e29\u5ea6\u306f0x11\u3001\u6e7f\u5ea6\u306f0x12\u3067\u53d6\u5f97)\r\n\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u30b9\u30ec\u30fc\u30d6\u5074\u304c\u4e0a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u305f\u6642\u70b9\u3067\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3059\u308b\u3088\u3046\u306b\u3057\u305f\u306a\u3089\u3001\u3053\u3053\u3067\u5f85\u305f\u306a\u304f\u3066\u3044\u3044\r\n\t\/\/ \u9006\u306b\u3001\u30b9\u30ec\u30fc\u30d6\u5074\u304c\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u306e\u751f\u6210\u306b\u6642\u9593\u3092\u8981\u3059\u308b\u3088\u3046\u306a\u3089\u3001\u5c11\u3057\u5f85\u3063\u305f\u308a\u3001\u3067\u304d\u305f\u304b\u3069\u3046\u304b\u30dd\u30fc\u30ea\u30f3\u30b0\u3059\u308b\u306a\u3069\u306e\u51e6\u7406\u304c\u5fc5\u8981\r\n\t\r\n\t\/\/ I2C\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1(\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u9577\u306fdata_len\u306b\u5165\u3063\u3066\u3044\u308b\u304c\u3001I2C\u306e\u5834\u5408\u306b\u306f\u53d7\u4fe1\u30d0\u30a4\u30c8\u6570\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067GVC_MSG_MIN\u3060\u3051\u53d7\u4fe1\u3059\u308b)\r\n\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MIN);\r\n\t\r\n\t\/\/ \u2193\u3067\u3001\u53d7\u3051\u305f\u5074\u306fCRC\u307e\u3067\u542b\u3081\u3066CRC\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068\r\n\t\/\/ \u3000\u6b63\u3057\u3051\u308c\u3070CRC\u306e\u7d50\u679c\u304c0\u306b\u306a\u308b\u3002\r\n\t\/\/ CRC\u306e\u78ba\u8a8d(format + cmd + data_len + data&#x5B;] + checksum\u3001\u3092CRC\u3059\u308b)\u3067OK\u306a\u3089\r\n\tif (GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1) == 0)\r\n\t{\r\n\t\t\/\/ \u623b\u308b\r\n\t\treturn;\r\n\t}\r\n\t\/\/ CRC\u30a8\u30e9\u30fc\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\t\tsprintf(gvc_i2c_message-&gt;data, &quot;SLAVE MESSAGE CRC ERROR!? data_len=%d&quot;, gvc_i2c_message-&gt;data_len);\r\n\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u9577\u3092\u8a2d\u5b9a\r\n\t\tgvc_i2c_message-&gt;data_len = strlen(gvc_i2c_message-&gt;data);\r\n\t}\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Get GVC HUMIDITY DATA\r\n\/\/ ------------------------------\r\nint get_gvc_humi_data(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u73fe\u72b6\u306f\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304c\u81ea\u52d5\u7684\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u8981\u6c42\u3059\u308b\u306e\u3067\u3001\u3053\u3053\u3067format, cmd\u7b49\u3092\u8a2d\u5b9a\u3059\u308b\r\n\t\/\/ gvcd\u304b\u3089\u8981\u6c42\u3055\u308c\u308b\u5834\u5408\u306b\u306f\u3001set_gvc_switch_onoff()\u306e\u3088\u3046\u306b\u305d\u306e\u307e\u307e\u6d41\u7528\u3059\u308c\u3070\u3088\u3044\r\n\t\r\n\t\/\/ \u6e29\u5ea6\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\tgvc_i2c_message-&gt;format = 0x11;\t\t\/\/ \u73fe\u5728\u306e\u6e29\u5ea6(\u6442\u6c0f)\u3068\u6e7f\u5ea6\u3092\u3001\u6587\u5b57\u5217\u3067\u5c0f\u6570\u70b9\u8868\u8a18\u306e\u5b9f\u657016\u6587\u5b57\u3067\u3001\u305d\u306e\u4ed6Vref\u3001\u5206\u89e3\u80fd\u3001\u3082TAB\u533a\u5207\u308a\u3067\r\n\tgvc_i2c_message-&gt;cmd = 0x12;\t\t\/\/ \u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b2\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3001\u6e29\u5ea6\u3068\u6e7f\u5ea6\u306f\u540c\u3058\u30e2\u30b8\u30e5\u30fc\u30eb\u306a\u306e\u3067\u3001\u6e29\u5ea6\u306f0x11\u3001\u6e7f\u5ea6\u306f0x12\u3067\u53d6\u5f97)\r\n\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u30b9\u30ec\u30fc\u30d6\u5074\u304c\u4e0a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u305f\u6642\u70b9\u3067\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3059\u308b\u3088\u3046\u306b\u3057\u305f\u306a\u3089\u3001\u3053\u3053\u3067\u5f85\u305f\u306a\u304f\u3066\u3044\u3044\r\n\t\/\/ \u9006\u306b\u3001\u30b9\u30ec\u30fc\u30d6\u5074\u304c\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u306e\u751f\u6210\u306b\u6642\u9593\u3092\u8981\u3059\u308b\u3088\u3046\u306a\u3089\u3001\u5c11\u3057\u5f85\u3063\u305f\u308a\u3001\u3067\u304d\u305f\u304b\u3069\u3046\u304b\u30dd\u30fc\u30ea\u30f3\u30b0\u3059\u308b\u306a\u3069\u306e\u51e6\u7406\u304c\u5fc5\u8981\r\n\t\r\n\t\/\/ I2C\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1(\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u9577\u306fdata_len\u306b\u5165\u3063\u3066\u3044\u308b\u304c\u3001I2C\u306e\u5834\u5408\u306b\u306f\u53d7\u4fe1\u30d0\u30a4\u30c8\u6570\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067GVC_MSG_MIN\u3060\u3051\u53d7\u4fe1\u3059\u308b)\r\n\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MIN);\r\n\t\r\n\t\/\/ \u2193\u3067\u3001\u53d7\u3051\u305f\u5074\u306fCRC\u307e\u3067\u542b\u3081\u3066CRC\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068\r\n\t\/\/ \u3000\u6b63\u3057\u3051\u308c\u3070CRC\u306e\u7d50\u679c\u304c0\u306b\u306a\u308b\u3002\r\n\t\/\/ CRC\u306e\u78ba\u8a8d(format + cmd + data_len + data&#x5B;] + checksum\u3001\u3092CRC\u3059\u308b)\u3067OK\u306a\u3089\r\n\tif (GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1) == 0)\r\n\t{\r\n\t\t\/\/ \u623b\u308b\r\n\t\treturn;\r\n\t}\r\n\t\/\/ CRC\u30a8\u30e9\u30fc\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\t\tsprintf(gvc_i2c_message-&gt;data, &quot;SLAVE MESSAGE CRC ERROR!? data_len=%d&quot;, gvc_i2c_message-&gt;data_len);\r\n\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u9577\u3092\u8a2d\u5b9a\r\n\t\tgvc_i2c_message-&gt;data_len = strlen(gvc_i2c_message-&gt;data);\r\n\t}\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Get GVC DISTANCE DATA\r\n\/\/ ------------------------------\r\nint get_gvc_dist_data(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u73fe\u72b6\u306f\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304c\u81ea\u52d5\u7684\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u8981\u6c42\u3059\u308b\u306e\u3067\u3001\u3053\u3053\u3067format, cmd\u7b49\u3092\u8a2d\u5b9a\u3059\u308b\r\n\t\/\/ gvcd\u304b\u3089\u8981\u6c42\u3055\u308c\u308b\u5834\u5408\u306b\u306f\u3001set_gvc_switch_onoff()\u306e\u3088\u3046\u306b\u305d\u306e\u307e\u307e\u6d41\u7528\u3059\u308c\u3070\u3088\u3044\r\n\t\r\n\t\/\/ \u6e29\u5ea6\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\tgvc_i2c_message-&gt;format = 0x06;\t\t\/\/ \u3068\u308a\u3042\u3048\u305a(TBD)\r\n\tgvc_i2c_message-&gt;cmd = 0x11;\t\t\/\/ \u30c7\u30fc\u30bf\u8981\u6c42\u30b3\u30de\u30f3\u30c9(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b1\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u30b9\u30ec\u30fc\u30d6\u5074\u304c\u4e0a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u305f\u6642\u70b9\u3067\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3059\u308b\u3088\u3046\u306b\u3057\u305f\u306a\u3089\u3001\u3053\u3053\u3067\u5f85\u305f\u306a\u304f\u3066\u3044\u3044\r\n\t\/\/ \u9006\u306b\u3001\u30b9\u30ec\u30fc\u30d6\u5074\u304c\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u306e\u751f\u6210\u306b\u6642\u9593\u3092\u8981\u3059\u308b\u3088\u3046\u306a\u3089\u3001\u5c11\u3057\u5f85\u3063\u305f\u308a\u3001\u3067\u304d\u305f\u304b\u3069\u3046\u304b\u30dd\u30fc\u30ea\u30f3\u30b0\u3059\u308b\u306a\u3069\u306e\u51e6\u7406\u304c\u5fc5\u8981\r\n\t\r\n\t\/\/ I2C\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1(\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u9577\u306fdata_len\u306b\u5165\u3063\u3066\u3044\u308b\u304c\u3001I2C\u306e\u5834\u5408\u306b\u306f\u53d7\u4fe1\u30d0\u30a4\u30c8\u6570\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067GVC_MSG_MIN\u3060\u3051\u53d7\u4fe1\u3059\u308b)\r\n\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MIN);\r\n\t\r\n\t\/\/ \u2193\u3067\u3001\u53d7\u3051\u305f\u5074\u306fCRC\u307e\u3067\u542b\u3081\u3066CRC\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068\r\n\t\/\/ \u3000\u6b63\u3057\u3051\u308c\u3070CRC\u306e\u7d50\u679c\u304c0\u306b\u306a\u308b\u3002\r\n\t\/\/ CRC\u306e\u78ba\u8a8d(format + cmd + data_len + data\u9577 + checksum\u3001\u3092CRC\u3059\u308b)\u3067OK\u306a\u3089\r\n\tif (GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1) == 0)\r\n\t{\r\n\t\t\/\/ \u623b\u308b\r\n\t\treturn;\r\n\t}\r\n\t\/\/ CRC\u30a8\u30e9\u30fc\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\t\tsprintf(gvc_i2c_message-&gt;data, &quot;SLAVE MESSAGE CRC ERROR!? data_len=%d&quot;, gvc_i2c_message-&gt;data_len);\r\n\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u9577\u3092\u8a2d\u5b9a\r\n\t\tgvc_i2c_message-&gt;data_len = strlen(gvc_i2c_message-&gt;data);\r\n\t}\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Get GVC PIR DATA\r\n\/\/ ------------------------------\r\nint get_gvc_pir_data(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u73fe\u72b6\u306f\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304c\u81ea\u52d5\u7684\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u8981\u6c42\u3059\u308b\u306e\u3067\u3001\u3053\u3053\u3067format, cmd\u7b49\u3092\u8a2d\u5b9a\u3059\u308b\r\n\t\/\/ gvcd\u304b\u3089\u8981\u6c42\u3055\u308c\u308b\u5834\u5408\u306b\u306f\u3001set_gvc_switch_onoff()\u306e\u3088\u3046\u306b\u305d\u306e\u307e\u307e\u6d41\u7528\u3059\u308c\u3070\u3088\u3044\r\n\t\r\n\t\/\/ \u6e29\u5ea6\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\tgvc_i2c_message-&gt;format = 0x02;\t\t\/\/ \u73fe\u5728\u306e\u7126\u96fb\u30bb\u30f3\u30b5\u30fc\u306e\u7d4c\u904e(\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u9593\u9694\u3068\u691c\u77e5\u30ab\u30a6\u30f3\u30c8\u6570\u3092\u8981\u6c42)\r\n\tgvc_i2c_message-&gt;cmd = 0x11;\t\t\/\/ \u30c7\u30fc\u30bf\u8981\u6c42\u30b3\u30de\u30f3\u30c9(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b1\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u30b9\u30ec\u30fc\u30d6\u5074\u304c\u4e0a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u305f\u6642\u70b9\u3067\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3059\u308b\u3088\u3046\u306b\u3057\u305f\u306a\u3089\u3001\u3053\u3053\u3067\u5f85\u305f\u306a\u304f\u3066\u3044\u3044\r\n\t\/\/ \u9006\u306b\u3001\u30b9\u30ec\u30fc\u30d6\u5074\u304c\u8fd4\u3059\u3079\u304d\u30c7\u30fc\u30bf\u306e\u751f\u6210\u306b\u6642\u9593\u3092\u8981\u3059\u308b\u3088\u3046\u306a\u3089\u3001\u5c11\u3057\u5f85\u3063\u305f\u308a\u3001\u3067\u304d\u305f\u304b\u3069\u3046\u304b\u30dd\u30fc\u30ea\u30f3\u30b0\u3059\u308b\u306a\u3069\u306e\u51e6\u7406\u304c\u5fc5\u8981\r\n\t\r\n\t\/\/ I2C\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1(\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u9577\u306fdata_len\u306b\u5165\u3063\u3066\u3044\u308b\u304c\u3001I2C\u306e\u5834\u5408\u306b\u306f\u53d7\u4fe1\u30d0\u30a4\u30c8\u6570\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067GVC_MSG_MIN\u3060\u3051\u53d7\u4fe1\u3059\u308b)\r\n\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MIN);\r\n\t\r\n\t\/\/ \u2193\u3067\u3001\u53d7\u3051\u305f\u5074\u306fCRC\u307e\u3067\u542b\u3081\u3066CRC\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068\r\n\t\/\/ \u3000\u6b63\u3057\u3051\u308c\u3070CRC\u306e\u7d50\u679c\u304c0\u306b\u306a\u308b\u3002\r\n\t\/\/ CRC\u306e\u78ba\u8a8d(format + cmd + data_len + data\u9577 + checksum\u3001\u3092CRC\u3059\u308b)\u3067OK\u306a\u3089\r\n\tif (GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1) == 0)\r\n\t{\r\n\t\t\/\/ \u623b\u308b\r\n\t\treturn;\r\n\t}\r\n\t\/\/ CRC\u30a8\u30e9\u30fc\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\t\tsprintf(gvc_i2c_message-&gt;data, &quot;SLAVE MESSAGE CRC ERROR!? data_len=%d&quot;, gvc_i2c_message-&gt;data_len);\r\n\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u9577\u3092\u8a2d\u5b9a\r\n\t\tgvc_i2c_message-&gt;data_len = strlen(gvc_i2c_message-&gt;data);\r\n\t}\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Set GVC SWITCH ON\/OFF\r\n\/\/ ------------------------------\r\nint set_gvc_switch_onoff(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u30b9\u30a4\u30c3\u30c1\u306eON\/OFF\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\u2026\u3068\u3044\u3046\u3088\u308a\u306f\u305d\u306e\u307e\u307e\u4f7f\u3046\r\n\t\/\/ \u3053\u308c\u306f\u3001\u3082\u3068\u3082\u3068\u306e\u8981\u6c42\u30e1\u30c3\u30bb\u30fc\u30b8\u304cgvcd\u304b\u3089\u304f\u308b\u306e\u3067\u305d\u308c\u3092\u6d41\u7528\u3059\u308c\u3070\u3044\u3044\u304b\u3089\r\n\t\/\/ \u4ed6\u306e\u6e29\u5ea6\u3068\u304b\u6e7f\u5ea6\u3068\u304b\u3001\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u767a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5834\u5408\u306f\u6d41\u7528\u3059\u308b\u3082\u306e\u304c\u7121\u3044\u306e\u3067\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u5185\u3067\u751f\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\r\n\/\/\/\tgvc_i2c_message-&gt;format = 0x00;\t\t\/\/ NOT USE\r\n\/\/\/\tgvc_i2c_message-&gt;cmd = cmd;\t\t\t\/\/ ON\/OFF COMMAND\r\n\/\/\/\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Get GVC SWITCH STATUS\r\n\/\/ ------------------------------\r\nint get_gvc_switch_status(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u30b9\u30a4\u30c3\u30c1\u306eON\/OFF\u72b6\u614b\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\u2026\u3068\u3044\u3046\u3088\u308a\u306f\u3001\u6307\u5b9a\u3055\u308c\u305fi2c_addr\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u72b6\u614b\u3092\u305d\u306e\u307e\u307e\u53d6\u5f97\u3059\u308b\u3060\u3051\r\n\t\r\n\t\/\/ I2C\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1(\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u9577\u306fdata_len\u306b\u5165\u3063\u3066\u3044\u308b\u304c\u3001I2C\u306e\u5834\u5408\u306b\u306f\u53d7\u4fe1\u30d0\u30a4\u30c8\u6570\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067GVC_MSG_MIN\u3060\u3051\u53d7\u4fe1\u3059\u308b)\r\n\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MIN);\r\n\t\r\n\t\/\/ \u2193\u3067\u3001\u53d7\u3051\u305f\u5074\u306fCRC\u307e\u3067\u542b\u3081\u3066CRC\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068\r\n\t\/\/ \u3000\u6b63\u3057\u3051\u308c\u3070CRC\u306e\u7d50\u679c\u304c0\u306b\u306a\u308b\u3002\r\n\t\/\/ CRC\u306e\u78ba\u8a8d(format + cmd + data_len + data\u9577 + checksum\u3001\u3092CRC\u3059\u308b)\u3067OK\u306a\u3089\r\n\tif (GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1) == 0)\r\n\t{\r\n\t\t\/\/ \u623b\u308b\r\n\t\treturn;\r\n\t}\r\n\t\/\/ CRC\u30a8\u30e9\u30fc\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\t\tsprintf(gvc_i2c_message-&gt;data, &quot;SLAVE MESSAGE CRC ERROR!? data_len=%d&quot;, gvc_i2c_message-&gt;data_len);\r\n\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u9577\u3092\u8a2d\u5b9a\r\n\t\tgvc_i2c_message-&gt;data_len = strlen(gvc_i2c_message-&gt;data);\r\n\t}\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Set GVC IR TXRX\r\n\/\/ ------------------------------\r\nint set_gvc_ir_txrx(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ IR\u306e\u9001\u4fe1\/\u53d7\u4fe1\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\u2026\u3068\u3044\u3046\u3088\u308a\u306f\u305d\u306e\u307e\u307e\u4f7f\u3046\r\n\t\/\/ \u3053\u308c\u306f\u3001\u3082\u3068\u3082\u3068\u306e\u8981\u6c42\u30e1\u30c3\u30bb\u30fc\u30b8\u304cgvcd\u304b\u3089\u304f\u308b\u306e\u3067\u305d\u308c\u3092\u6d41\u7528\u3059\u308c\u3070\u3044\u3044\u304b\u3089\r\n\t\/\/ \u4ed6\u306e\u6e29\u5ea6\u3068\u304b\u6e7f\u5ea6\u3068\u304b\u3001\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u767a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5834\u5408\u306f\u6d41\u7528\u3059\u308b\u3082\u306e\u304c\u7121\u3044\u306e\u3067\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u5185\u3067\u751f\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\r\n\/\/\/\tgvc_i2c_message-&gt;format = 0x00;\t\t\/\/ NOT USE\r\n\/\/\/\tgvc_i2c_message-&gt;cmd = cmd;\t\t\t\/\/ ON\/OFF COMMAND\r\n\/\/\/\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Get GVC IR STATUS\r\n\/\/ ------------------------------\r\nint get_gvc_ir_status(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\/\/ \u8d64\u5916\u7dda\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u3082\u3068\u3082\u3068\u306egvc_i2c_message\u304cmain_buff\u306b\u306a\u3063\u3066\u3044\u3066GVC_MSG_MAX\u3060\u3051\u53d7\u4fe1\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u30e7!!\t\u4eca\u306f\u3068\u308a\u3042\u3048\u305aGVC_MSG_MIN\u306b\u3057\u3068\u304f 2013.07.16 T.Kabu\r\n\t\r\n\t\/\/ I2C\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1(\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u9577\u306fdata_len\u306b\u5165\u3063\u3066\u3044\u308b\u304c\u3001I2C\u306e\u5834\u5408\u306b\u306f\u53d7\u4fe1\u30d0\u30a4\u30c8\u6570\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067GVC_MSG_MIN\u3060\u3051\u53d7\u4fe1\u3059\u308b)\r\n\/\/\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MIN);\r\n\t\/\/ GVC_MSG_MAX\u3060\u3051\u53d7\u4fe1\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u305f\r\n\ti2c_read(i2c_addr, (char *)gvc_i2c_message, GVC_MSG_MAX);\r\n\t\r\n\t\/\/ \u2193\u3067\u3001\u53d7\u3051\u305f\u5074\u306fCRC\u307e\u3067\u542b\u3081\u3066CRC\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068\r\n\t\/\/ \u3000\u6b63\u3057\u3051\u308c\u3070CRC\u306e\u7d50\u679c\u304c0\u306b\u306a\u308b\u3002\r\n\t\/\/ CRC\u306e\u78ba\u8a8d(format + cmd + data_len + data&#x5B;] + checksum\u3001\u3092CRC\u3059\u308b)\u3067OK\u306a\u3089\r\n\tif (GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1) == 0)\r\n\t{\r\n\t\t\/\/ \u623b\u308b\r\n\t\treturn;\r\n\t}\r\n\t\/\/ CRC\u30a8\u30e9\u30fc\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ \u30c7\u30fc\u30bf\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u3001\u30e2\u30b8\u30e5\u30fc\u30eb\u60c5\u5831(\u901a\u5e38\u30c6\u30ad\u30b9\u30c8\u30d5\u30a9\u30fc\u30de\u30c3\u30c8)\u306b\u5909\u66f4\r\n\t\tgvc_i2c_message-&gt;format = 0x81;\r\n\t\t\/\/ \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\t\tsprintf(gvc_i2c_message-&gt;data, &quot;SLAVE MESSAGE CRC ERROR!? data_len=%d&quot;, gvc_i2c_message-&gt;data_len);\r\n\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u9577\u3092\u8a2d\u5b9a\r\n\t\tgvc_i2c_message-&gt;data_len = strlen(gvc_i2c_message-&gt;data);\r\n\t}\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Set GVC IR DATA\r\n\/\/ ------------------------------\r\nint set_gvc_ir_data(char i2c_addr, GVC_I2C_MESSAGE_t * gvc_i2c_message)\r\n{\r\n\t\r\n\t\/\/ IR\u306e\u9001\u4fe1\/\u53d7\u4fe1\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\u2026\u3068\u3044\u3046\u3088\u308a\u306f\u305d\u306e\u307e\u307e\u4f7f\u3046\r\n\t\/\/ \u3053\u308c\u306f\u3001\u3082\u3068\u3082\u3068\u306e\u8981\u6c42\u30e1\u30c3\u30bb\u30fc\u30b8\u304cgvcd\u304b\u3089\u304f\u308b\u306e\u3067\u305d\u308c\u3092\u6d41\u7528\u3059\u308c\u3070\u3044\u3044\u304b\u3089\r\n\t\/\/ \u4ed6\u306e\u6e29\u5ea6\u3068\u304b\u6e7f\u5ea6\u3068\u304b\u3001\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u767a\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5834\u5408\u306f\u6d41\u7528\u3059\u308b\u3082\u306e\u304c\u7121\u3044\u306e\u3067\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u5185\u3067\u751f\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\r\n\/\/\/\tgvc_i2c_message-&gt;format = 0x00;\t\t\/\/ NOT USE\r\n\/\/\/\tgvc_i2c_message-&gt;cmd = cmd;\t\t\t\/\/ ON\/OFF COMMAND\r\n\/\/\/\tgvc_i2c_message-&gt;data_len = 0;\t\t\/\/ \u30c7\u30fc\u30bf\u306f\u306a\u3044\u306e\u30670\u3092\u8a2d\u5b9a\r\n\t\r\n\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\tgvc_i2c_message-&gt;data&#x5B;gvc_i2c_message-&gt;data_len] = GetCRC8((void *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len);\r\n\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(i2c_addr, (char *)gvc_i2c_message, GVC_I2C_MESSAGE_HEADER_SIZE + gvc_i2c_message-&gt;data_len + 1);\r\n\t\r\n\t\/\/ \u623b\u308b\r\n\treturn;\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Setup MPL115A2 (Atmospheric pressure Sensor)\r\n\/\/ ------------------------------\r\nvoid setup_MPL115A2(void)\r\n{\r\n\t\/\/ MPL115A2\u306f\u3001\u305d\u308c\u81ea\u4f53\u304cI2C\u306e\u30b9\u30ec\u30fc\u30d6\u30c7\u30d0\u30a4\u30b9\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b\u306e\u3067\u3001\u4ed6\u306eGVC\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u306f\r\n\t\/\/ \u6271\u3044\u65b9\u304c\u7570\u306a\u308b\u3002\r\n\t\r\n\t\/\/ http:\/\/www.ne.jp\/asahi\/shared\/o-family\/ElecRoom\/AVRMCOM\/MPL115A2cnt\/MPL115A2cnt.html\r\n\t\/\/ http:\/\/nontomos.web.fc2.com\/arduino03\/arduino03.html\r\n\t\/\/ http:\/\/plaza.rakuten.co.jp\/odorie\/diary\/201012080001\/\r\n\t\r\n\tshort int paramMSB;\r\n\tshort int paramLSB;\r\n\t\r\n\t\/\/ MPL115A2\u4fc2\u6570\u3092\u8981\u6c42\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u751f\u6210\r\n\tsubbuffer&#x5B;0] = 0x04;\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(MPL115A2_ADDRESS, subbuffer, 1);\r\n\t\r\n\t\/\/ MPL115A2\u304b\u3089\u4fc2\u657012\u30d0\u30a4\u30c8\u3092\u53d7\u4fe1\u3059\u308b\r\n\ti2c_read(MPL115A2_ADDRESS, (char *)subbuffer, 12);\r\n\t\r\n\t\/\/ \u4fc2\u6570a0\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u4fc2\u6570a0(\u304a\u3088\u3073long\u5024)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;0];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;1];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tsia0 = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u8a2d\u5b9a\r\n\tsia0 |= paramLSB &amp; 0x00FF;\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tsia0l = sia0;\t\t\t\t\t\t\t\t\t\/\/ \u4fc2\u6570a0(long\u5024)\u306b\u30b3\u30d4\u30fc\r\n\t\r\n\t\/\/ \u4fc2\u6570b1\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u4fc2\u6570b1(\u304a\u3088\u3073long\u5024)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;2];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;3];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tsib1 = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u8a2d\u5b9a\r\n\tsib1 |= paramLSB &amp; 0x00FF;\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tsib1l = sib1;\t\t\t\t\t\t\t\t\t\/\/ \u4fc2\u6570b1(long\u5024)\u306b\u30b3\u30d4\u30fc\r\n\t\r\n\t\/\/ \u4fc2\u6570b2\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u4fc2\u6570b2(\u304a\u3088\u3073long\u5024)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;4];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;5];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tsib2 = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u8a2d\u5b9a\r\n\tsib2 |= paramLSB &amp; 0x00FF;\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tsib2 &amp;= 0xFFFF;\t\t\t\t\t\t\t\t\t\/\/ \u30de\u30b9\u30af(\u306a\u3093\u3067\u3060\u308d\uff1f)\r\n\tsib2l = sib2;\t\t\t\t\t\t\t\t\t\/\/ \u4fc2\u6570b2(long\u5024)\u306b\u30b3\u30d4\u30fc\r\n\t\r\n\t\/\/ \u4fc2\u6570c12\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u4fc2\u6570c12(\u304a\u3088\u3073long\u5024)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;6];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;7];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tsic12 = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u8a2d\u5b9a\r\n\tsic12 |= paramLSB &amp; 0x00FF;\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tsic12l = sic12;\t\t\t\t\t\t\t\t\t\/\/ \u4fc2\u6570c12(long\u5024)\u306b\u30b3\u30d4\u30fc\r\n\t\r\n\t\/\/ \u4fc2\u6570c11\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u4fc2\u6570c11(\u304a\u3088\u3073long\u5024)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;8];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;9];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tsic11 = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u8a2d\u5b9a\r\n\tsic11 |= paramLSB &amp; 0x00FF;\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tsic11l = sic11;\t\t\t\t\t\t\t\t\t\/\/ \u4fc2\u6570c11(long\u5024)\u306b\u30b3\u30d4\u30fc\r\n\t\r\n\t\/\/ \u4fc2\u6570c22\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u4fc2\u6570c22(\u304a\u3088\u3073long\u5024)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;10];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;11];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tsic22 = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u8a2d\u5b9a\r\n\tsic22 |= paramLSB &amp; 0x00FF;\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tsic22l = sic22;\t\t\t\t\t\t\t\t\t\/\/ \u4fc2\u6570c22(long\u5024)\u306b\u30b3\u30d4\u30fc\r\n} \r\n\r\n\/\/ ------------------------------\r\n\/\/ Get MPL115A2 (Atmospheric pressure Sensor)\r\n\/\/ ------------------------------\r\nfloat get_MPL115A2(void)\r\n{\r\n\tshort int paramMSB;\r\n\tshort int paramLSB;\r\n\t\r\n\tlong int uiPadc;\r\n\tlong int uiTadc;\r\n\tfloat a1;\r\n\tfloat a2;\r\n\tfloat pcomp;\r\n\tfloat hPa;\r\n\t\r\n\t\/\/ MPL115A2\u306f\u3001\u305d\u308c\u81ea\u4f53\u304cI2C\u306e\u30b9\u30ec\u30fc\u30d6\u30c7\u30d0\u30a4\u30b9\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b\u306e\u3067\u3001\u4ed6\u306eGVC\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u306f\r\n\t\/\/ \u6271\u3044\u65b9\u304c\u7570\u306a\u308b\u3002\r\n\t\r\n\t\/\/ http:\/\/www.ne.jp\/asahi\/shared\/o-family\/ElecRoom\/AVRMCOM\/MPL115A2cnt\/MPL115A2cnt.html\r\n\t\/\/ http:\/\/nontomos.web.fc2.com\/arduino03\/arduino03.html\r\n\t\/\/ http:\/\/plaza.rakuten.co.jp\/odorie\/diary\/201012080001\/\r\n\t\r\n\t\/\/ MPL115A2\u306b\u5927\u6c17\u5727\u3001\u6e29\u5ea6\u306e\u8a08\u7b97\u958b\u59cb\u547d\u4ee4\u3092\u9001\u4fe1\r\n\tsubbuffer&#x5B;0] = 0x12;\r\n\tsubbuffer&#x5B;1] = 0x01;\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(MPL115A2_ADDRESS, subbuffer, 2);\r\n\t\r\n\t\/\/ \u5927\u6c17\u5727\u306e\u8a08\u7b97\u3092\u5f85\u3064\r\n\tDelay_10ms(5);\r\n\t\r\n\t\/\/ MPL115A2\u306b\u5927\u6c17\u5727\u306e\u8981\u6c42\u547d\u4ee4(0x00)\u3092\u9001\u4fe1\r\n\tsubbuffer&#x5B;0] = 0x00;\r\n\t\/\/ I2C \u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\ti2c_write(MPL115A2_ADDRESS, subbuffer, 1);\r\n\t\r\n\t\/\/ MPL115A2\u304b\u3089\u5927\u6c17\u5727\u3068\u6e29\u5ea6\u306e4\u30d0\u30a4\u30c8\u3092\u53d7\u4fe1\u3059\u308b\r\n\ti2c_read(MPL115A2_ADDRESS, (char *)subbuffer, 4);\r\n\t\r\n\t\/\/ \u5927\u6c17\u5727\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u5927\u6c17\u5727(uiPadc)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;0];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;1];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tuiPadc = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\r\n\tuiPadc |= paramLSB;\t\t\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tuiPadc &amp;= 0xFFFF;\t\t\t\t\t\t\t\t\/\/ long\u5024\u306a\u306e\u3067\u3001\u5fc5\u8981\u306a16\u30d3\u30c3\u30c8\u5206\u3060\u3051\u30de\u30b9\u30af\u3057\u3066\r\n\tuiPadc &gt;&gt;= 6;\t\t\t\t\t\t\t\t\t\/\/ \u672c\u6765\u306e\u5024\u304c\u5165\u3063\u3066\u3044\u308b10\u30d3\u30c3\u30c8\u3060\u3051\u3092\u5f97\u308b\u305f\u3081\u306b6\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u6368\u3066\u308b\r\n\t\r\n\t\/\/ \u6e29\u5ea6\u306e\u4e0a\u4f4d\u3001\u304a\u3088\u3073\u4e0b\u4f4d\u30d0\u30a4\u30c8\u53d6\u5f97\uff06\u6e29\u5ea6(uiTadc)\u306b\u8a2d\u5b9a\r\n\tparamMSB = subbuffer&#x5B;2];\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tparamLSB = subbuffer&#x5B;3];\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\uff11\u30d0\u30a4\u30c8\u53d7\u4fe1\r\n\tuiTadc = paramMSB &lt;&lt; 8;\t\t\t\t\t\t\t\/\/ \u4e0a\u4f4d\u30d0\u30a4\u30c8\u306a\u306e\u30678\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\r\n\tuiTadc |= paramLSB;\t\t\t\t\t\t\t\t\/\/ \u4e0b\u4f4d\u30d0\u30a4\u30c8\u3092\u30de\u30fc\u30b8\r\n\tuiTadc &amp;= 0xFFFF;\t\t\t\t\t\t\t\t\/\/ long\u5024\u306a\u306e\u3067\u3001\u5fc5\u8981\u306a16\u30d3\u30c3\u30c8\u5206\u3060\u3051\u30de\u30b9\u30af\u3057\u3066\r\n\tuiTadc &gt;&gt;= 6;\t\t\t\t\t\t\t\t\t\/\/ \u672c\u6765\u306e\u5024\u304c\u5165\u3063\u3066\u3044\u308b10\u30d3\u30c3\u30c8\u3060\u3051\u3092\u5f97\u308b\u305f\u3081\u306b6\u30d3\u30c3\u30c8\u30b7\u30d5\u30c8\u3057\u3066\u6368\u3066\u308b\r\n\t\r\n\t\/\/ \u5927\u6c17\u5727\u8a08\u7b97\r\n\ta1 = sib1l;\r\n\ta1 += (sic11l * uiPadc * 0.00006103515);\r\n\ta1 += (sic12l * uiTadc * 0.00048828125);\r\n\ta2 = (sib2l * 0.5);\r\n\ta2 += (sic22l * uiTadc * 0.00003051757);\r\n\tpcomp = sia0l * 0.125;\r\n\tpcomp += a1 * uiPadc * 0.00012207031;\r\n\tpcomp += a2 * uiTadc * 0.00012207031;\r\n\thPa = 0.63538611925 * pcomp + 500.0;  \/\/ \u5927\u6c17\u5727(hPa)\u3092\u7b97\u51fa\r\n\t\r\n\treturn hPa;\t\t\t\t\t\t\t\t\t\t\/\/ \u5927\u6c17\u5727\u3092\u8fd4\u3057\u3066\u623b\u308b\r\n}\r\n\r\n\/\/ ------------------------------\r\n\/\/ Get I2C Slave Module Info\r\n\/\/ ------------------------------\r\nvoid get_module_info(void)\r\n{\r\n\tchar slave_addr;\t\t\t\t\t\t\t\t\t\/\/ I2C\u30b9\u30ec\u30fc\u30d6\u30a2\u30c9\u30ec\u30b9\r\n\t\r\n\t\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9LED\u3092\u70b9\u706f\r\n\tPORT_STATUS_LED = LED_ON;\r\n\t\r\n\t\/\/ \u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\tmemset((void *)i2c_slavetbl, 0x00, sizeof(i2c_slavetbl));\r\n\t\/\/ \u30c6\u30fc\u30d6\u30eb0\u756a\u306f\u30de\u30b9\u30bf\u30fc\u3068\u3057\u3066\u8a2d\u5b9a\r\n\ti2c_slavetbl&#x5B;0] = 'M';\r\n\t\/\/ I2C \u30b9\u30ec\u30fc\u30d6\u30c7\u30d0\u30a4\u30b9\u3092\u30b9\u30ad\u30e3\u30f3\r\n\tfor (slave_addr = 1; slave_addr &lt; 0x7f; slave_addr ++)\r\n\t{\r\n\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\/\/ \u30b9\u30ec\u30fc\u30d6\u63a5\u7d9a\u306eGVC\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u30bf\u30a4\u30d7\u3092\u4e00\u89a7\u30c6\u30fc\u30d6\u30eb\u306b\u8a2d\u5b9a\r\n\t\ti2c_slavetbl&#x5B;slave_addr] = i2c_slave_check(slave_addr);\r\n\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\t\tPORT_RESULT_LED = LED_OFF;\r\n\t}\r\n\t\r\n\t\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9LED\u3092\u6d88\u706f\r\n\tPORT_STATUS_LED = LED_OFF;\r\n\t\r\n}\r\n\r\n\/\/ --------------------------------------------------\r\n\/\/ Main loop\r\n\/\/ --------------------------------------------------\r\nvoid main(void)\r\n{\r\n\tchar work_mode = 1;\t\t\t\t\t\t\t\t\t\/\/ \u52d5\u4f5c\u30e2\u30fc\u30c9(1:\u901a\u5e38\u30010:\u505c\u6b62\u72b6\u614b)\r\n\t\r\n\tchar wait_count;\t\t\t\t\t\t\t\t\t\/\/ \u30b3\u30de\u30f3\u30c9\u5f85\u3061\u30ab\u30a6\u30f3\u30bf\r\n\t\r\n\tint rx_pos = 0;\t\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30c7\u30fc\u30bf\u306e\u4f4d\u7f6e\r\n\tint rx_data_len = 0;\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30c7\u30fc\u30bf\u306e\u9577\u3055\r\n\tint check_char;\t\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u306e\u30c1\u30a7\u30c3\u30af\u7528\u30dd\u30a4\u30f3\u30bf\r\n\t\r\n\tint rx_remainder;\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u306e\u6b8b\u308a\u306e\u5148\u982d\u4f4d\u7f6e\r\n\tint rx_remainder_len = 0;\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u306e\u6b8b\u308a\u306e\u9577\u3055\r\n\t\r\n\tint ftoa_status;\t\t\t\t\t\t\t\t\t\/\/ ftoa()\u7528\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u5909\u6570\r\n\t\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u30ea\u30bb\u30c3\u30c8\u3059\u308b\u5834\u5408\u306b\u3053\u3053\u306b\u98db\u3076\r\n\t\/\/ ----------------------------------------\r\n\tRESET_JOB:\r\n\t\r\n\t\/\/ Setup 18F26K22\r\n\tinit_pic_18F26K22();\r\n\t\r\n\t\/\/ Setup MSSP1 18F26K22\r\n\tinit_mssp1_18F26K22();\r\n\t\r\n\t\/\/ Setup EUSART 18F26K22\r\n\tinit_eusart_18F26K22();\r\n\t\r\n\t\/\/ LED Brink\r\n\tled_brink(1);\r\n\t\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u3053\u308c\u3088\u308a\u4e0b\u306b\u3001\u500b\u5225\u306e\u8a2d\u5b9a\u3092\u8a18\u8ff0\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30c7\u30fc\u30bf\u306bCRC\u3092\u3064\u3051\u308b\r\n\tGVC_DELIMITER_MSG&#x5B; strlen(GVC_DELIMITER_MSG) ] = GetCRC8((void *)GVC_DELIMITER_MSG, strlen(GVC_DELIMITER_MSG));\r\n\t\r\n\t\/\/ Setup 18F26K22 for Analog Voltage\r\n\tinit_pic_for_analogvoltage();\r\n\t\r\n\t\/\/ Get Vdd Voltage\r\n\tvdd_volt = get_vdd();\r\n\t\/\/ \u3082\u3057Vdd\u304c4.0V\u3088\u308a\u5927\u304d\u3044\u3068\u304b\u30011.0V\u672a\u6e80\u306a\u3089\r\n\tif (vdd_volt &gt; 4.0 || vdd_volt &lt; 1.0)\r\n\t{\r\n\t\t\/\/ \u305f\u3076\u3093\u3061\u3083\u3093\u3068\u6e2c\u5b9a\u3067\u304d\u3066\u3044\u306a\u3044\u3063\u3066\u3053\u3068\u3067\u30015.00\u306b\u56fa\u5b9a\r\n\t\tvdd_volt = 5.0;\r\n\t}\r\n\tTRISA = 0b00000111;\t\t\/\/ RA3\u3092output\u30e2\u30fc\u30c9\u306b\u3057\u3066\u5207\u308a\u96e2\u3059\r\n\t\r\n\t\/\/ \u52d5\u4f5c\u30e2\u30fc\u30c9\u3092\u901a\u5e38\u306b\u8a2d\u5b9a\r\n\twork_mode = 1;\r\n\t\r\n\t\/\/ ----------------------------------------\r\n\t\/\/ \u500b\u5225\u8a2d\u5b9a\u7d42\u4e86\r\n\t\/\/ ----------------------------------------\r\n\t\r\n\t\/\/ LED Brink\r\n\tled_brink(2);\r\n\t\r\n\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30dd\u30a4\u30f3\u30bf\u3092\u521d\u671f\u5316\r\n\tserial_rcvptr = 0;\r\n\t\/\/ \u53d7\u4fe1\u8aad\u307f\u51fa\u3057\u30dd\u30a4\u30f3\u30bf\u3092\u521d\u671f\u5316\r\n\tserial_readptr = 0;\r\n\t\r\n\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\/\u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\tmemset((void *)i2c_slavetbl, 0x00, sizeof(i2c_slavetbl));\r\n\t\r\n\t\/\/ EUSART1 RX \u5272\u308a\u8fbc\u307f\u8a31\u53ef(=1) (EUSART1 Receive Interrupt Enable bit ... PIE1)\r\n\tPIE1bits.RC1IE = 1;\r\n\t\/\/ MSSP\u5272\u308a\u8fbc\u307f\u8a31\u53ef(=1) (Synchronous Serial Port (MSSP) Interrupt Enable bit ... PIE1)\r\n\tPIE1bits.SSP1IE = 1;\r\n\t\/\/ \u5468\u8fba\u5272\u308a\u8fbc\u307f\u8a31\u53ef(=1) (Peripheral Interrupt Enable bit ... INTCON)\r\n\tINTCONbits.PEIE = 1;\r\n\t\/\/ \u5168\u5272\u308a\u8fbc\u307f\u3092\u8a31\u53ef(=1) (Global Interrupt Enable bit ... INTCON)\r\n\tINTCONbits.GIE = 1;\r\n\t\r\n\t\/\/ ------------------------------\r\n\t\/\/ I2C \u30e2\u30b8\u30e5\u30fc\u30eb\u30b9\u30ad\u30e3\u30f3\r\n\t\/\/ ------------------------------\r\n\tget_module_info();\r\n\t\r\n\t\/\/ \u3082\u3057\u5927\u6c17\u5727\u30bb\u30f3\u30b5\u30fc(MPL115A2)\u304c\u306a\u3044\u306a\u3089\r\n\tif (i2c_slavetbl&#x5B;MPL115A2_ADDRESS] == 'x')\r\n\t{\r\n\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t}\r\n\t\/\/ \u3042\u308b\u306a\u3089\r\n\telse\r\n\t{\r\n\t\t\/\/ Setup MPL115A2 (Atmospheric pressure Sensor)\r\n\t\tsetup_MPL115A2();\r\n\t}\r\n\t\r\n\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u9001\u4fe1\r\n\tsend_delimiterframe();\r\n\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u8a2d\u5b9a\r\n\tsprintf(subbuffer, &quot;%s, work_mode=%d, wait_count=%d, Vdd=%s&quot;, VERSION, work_mode, wait_count, ftoa(vdd_volt, &amp;ftoa_status));\r\n\t\r\n\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\tsend_gvc_other_message(gvc_serial_message-&gt;dev_num, strlen(subbuffer), subbuffer);\r\n\t\r\n\t\/\/ LED Brink\r\n\tled_brink(3);\r\n\t\r\n\t\/\/ ------------------------------\r\n\t\/\/ \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\r\n\t\/\/ ------------------------------\r\n\twhile(1)\r\n\t{\r\n\t\t\/\/ \u53d7\u4fe1\u30c7\u30fc\u30bf\u30dd\u30a4\u30f3\u30bf\u3068\u53d7\u4fe1\u30c7\u30fc\u30bf\u306e\u9577\u3055\u3092\u521d\u671f\u5316\r\n\t\trx_pos = 0;\r\n\t\trx_data_len = 0;\r\n\t\t\r\n\t\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u9001\u4fe1\r\n\t\tsend_delimiterframe();\r\n\t\t\r\n\t\t\/\/ \u30c7\u30ea\u30df\u30bf\u30d5\u30ec\u30fc\u30e0\u9001\u4fe1\u5f8c\u3001\u30c7\u30fc\u30e2\u30f3\u304b\u3089\u306e\u30b3\u30de\u30f3\u30c9\u3092\u7d041\u79d2\u5f85\u3064\r\n\t\tfor (wait_count = 0; wait_count &lt; 10; wait_count ++)\r\n\t\t{\r\n\t\t\t\/\/ --------------------------------\r\n\t\t\t\/\/ \u30c7\u30fc\u30bf\u53d7\u4fe1\u30eb\u30fc\u30d7\r\n\t\t\t\/\/ --------------------------------\r\n\t\t\twhile (1)\r\n\t\t\t{\r\n\t\t\t\t\/\/ \u30b7\u30ea\u30a2\u30eb\u30d0\u30c3\u30d5\u30a1\u306b\u672a\u8aad\u30c7\u30fc\u30bf\u304c\u306a\u3044\u306a\u3089\r\n\t\t\t\tif (serial_rcvptr == serial_readptr)\r\n\t\t\t\t{\r\n\t\t\t\t\t\/\/ \u30eb\u30fc\u30d7\u3092\u629c\u3051\u308b\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\t\/\/ \u30c7\u30fc\u30bf\u304c\u3042\u308b\u306a\u3089\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u304b\u3089\u4e00\u6587\u5b57\u53d6\u5f97\r\n\t\t\t\t\tmainbuffer&#x5B;rx_pos] = rcv_serialdata();\r\n\t\t\t\t\t\/\/ \u53d7\u4fe1\u30c7\u30fc\u30bf\u30dd\u30a4\u30f3\u30bf\u3068\u53d7\u4fe1\u30c7\u30fc\u30bf\u306e\u9577\u3055\u3092\u52a0\u7b97\r\n\t\t\t\t\trx_pos ++;\r\n\t\t\t\t\trx_data_len ++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\/\/ --------------------------------\r\n\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u78ba\u8a8d\r\n\t\t\t\/\/ --------------------------------\r\n\t\t\t\/\/ rx_data_len\u304c\u6700\u5c0f\u30e1\u30c3\u30bb\u30fc\u30b8\u30b5\u30a4\u30ba\u4ee5\u4e0a\u306e\u9577\u3055\u304c\u3042\u308b\u306a\u3089\r\n\t\t\tif (rx_data_len &gt;= GVC_MIN_MESSAGE_LENGTH)\r\n\t\t\t{\r\n\t\t\t\t\/\/ 0\u304b\u3089rx_len-GVC_MIN_MESSAGE_LENGTH\u306e\u4e2d\u306b\u6709\u52b9\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u30bf\u30a4\u30d7\u304c\u3042\u308b\u304b\u3069\u3046\u304b\u30b9\u30ad\u30e3\u30f3\r\n\t\t\t\tfor (check_char = 0; check_char &lt;= (rx_data_len - GVC_MIN_MESSAGE_LENGTH); check_char ++)\r\n\t\t\t\t{\r\n\t\t\t\t\t\/\/ \u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3078\u306e\u30b3\u30de\u30f3\u30c9\u9001\u4fe1\u304c\u3042\u3063\u305f\u3089\u3001\r\n\t\t\t\t\tif (mainbuffer&#x5B;check_char] == 0x05)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\t\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)(mainbuffer + check_char);\r\n\t\t\t\t\t\t\/\/ \r\n\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u5185\u306bCRC\u307e\u3067\u542b\u3081\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u30d5\u30ec\u30fc\u30e0\u304c\u53ce\u307e\u3063\u3066\u3044\u3066\u3001\u304b\u3064CRC\u30c1\u30a7\u30c3\u30af\u3057\u3066OK\u306a\u3089\r\n\t\t\t\t\t\tif ( ( (rx_data_len - check_char) &gt;= (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1) ) &amp;&amp;\r\n\t\t\t\t\t\t\tGetCRC8((void *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1)) == 0 )\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\/\/ \u3042\u307e\u3063\u305f\u30c7\u30fc\u30bf\u306e\u5148\u982d\u4f4d\u7f6e\u3092\u8a2d\u5b9a\r\n\t\t\t\t\t\t\trx_remainder = check_char + (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1);\r\n\t\t\t\t\t\t\t\/\/ \u3042\u307e\u3063\u305f\u30c7\u30fc\u30bf\u3092\u8a08\u7b97\r\n\t\t\t\t\t\t\trx_remainder_len = rx_data_len - rx_remainder;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\/\/ \u30b3\u30de\u30f3\u30c9\u306b\u57fa\u3065\u3044\u3066\u51e6\u7406 \u2026 \u3053\u306e\u8fba\u3001\u3082\u3063\u3068\u30b3\u30de\u30f3\u30c9\u304c\u5897\u3048\u3066\u304d\u305f\u3089\u95a2\u6570\u306e\u914d\u5217\u3092\u30b3\u30fc\u30eb\u3059\u308b\u5f62\u306b\u3057\u305f\u3044\u304c\u3001\u305d\u3053\u307e\u3067\u306e\u30e1\u30e2\u30ea\u306f\u306a\u3044\u304b :-)\r\n\t\t\t\t\t\t\tswitch (gvc_serial_message-&gt;cmd)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcase 0x01 :\t\t\/\/ 0x01:\u30d0\u30fc\u30b8\u30e7\u30f3\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tsprintf(subbuffer, &quot;%s, work_mode=%d, wait_count=%d, Vdd=%s&quot;, VERSION, work_mode, wait_count, ftoa(vdd_volt, &amp;ftoa_status));\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_gvc_other_message(gvc_serial_message-&gt;dev_num, strlen(subbuffer), subbuffer);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x02 :\t\t\/\/ 0x02:\u30e2\u30b8\u30e5\u30fc\u30eb\u4e00\u89a7\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ I2C \u30e2\u30b8\u30e5\u30fc\u30eb\u30b9\u30ad\u30e3\u30f3(\u518d\u30b9\u30ad\u30e3\u30f3\u3059\u308b\u3060\u3051\u3067\u30ea\u30bb\u30c3\u30c8\u52d5\u4f5c\u3067\u306f\u306a\u3044)\r\n\t\t\t\t\t\t\t\t\tget_module_info();\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_gvc_other_message(gvc_serial_message-&gt;dev_num, sizeof(i2c_slavetbl), i2c_slavetbl);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x03 :\t\t\/\/ 0x03:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42\r\n\/*\r\n\t\t\t\t\t\t\t\tcase 0x10 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b1\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x11 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b1\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x12 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b2\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x13 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b3\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x14 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b4\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x15 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b5\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x16 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b6\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x17 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b7\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x18 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b8\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x19 :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b9\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x1A :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b10\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x1B :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b11\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x1C :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b12\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x1D :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b13\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x1E :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b14\u756a\u76ee\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\tcase 0x1F :\t\t\/\/ 0x10:\u30e2\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\u8981\u6c42(\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u642d\u8f09\u3057\u3066\u3044\u308b\u5168\u3066\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97)\r\n\t\t\t\t\t\t\t\t\t\/\/ \u3053\u306e\u51e6\u7406\u306f\u73fe\u72b6\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304c\u81ea\u52d5\u7684\u306b\u3084\u3063\u3066\u3044\u308b\u306e\u3067\u5b9f\u88c5\u3057\u306a\u3044 T.Kabu\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tsprintf(subbuffer, &quot;Sorry, now doing autopilot. :-)&quot;);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_gvc_other_message(gvc_serial_message-&gt;dev_num, strlen(subbuffer), subbuffer);\r\n*\/\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x20 :\t\t\/\/ 0x20:\u30b9\u30a4\u30c3\u30c1OFF\u8981\u6c42\r\n\t\t\t\t\t\t\t\tcase 0x21 :\t\t\/\/ 0x21:\u30b9\u30a4\u30c3\u30c1ON\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u30b9\u30a4\u30c3\u30c1ON\/OFF\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\tset_gvc_switch_onoff(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\/\/ break; \u3057\u306a\u3044\u3067\u3001\u7d9a\u3051\u3066\u73fe\u5728\u306e\u30b9\u30a4\u30c3\u30c1\u72b6\u614b\u3092\u8fd4\u3059\r\n\t\t\t\t\t\t\t\tcase 0x2f :\t\t\/\/ 0x2f:\u30b9\u30a4\u30c3\u30c1\u72b6\u614b\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30b3\u30de\u30f3\u30c9\u3092\u3044\u3063\u305f\u3093\u30b3\u30d4\u30fc\r\n\t\t\t\t\t\t\t\t\tmemcpy(subbuffer, (void *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len));\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)subbuffer;\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30bf\u30a4\u30d7\u3092\u3068\u308a\u3042\u3048\u305a\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304b\u3089\u306e\u60c5\u5831\u306b\u5909\u66f4\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_OTHER;\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30b9\u30a4\u30c3\u30c1\u306eON\/OFF\u72b6\u614b\u3092\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\tget_gvc_switch_status(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\t\t\t\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x91 :\t\t\/\/ 0x91:IR\u9001\u4fe1\u8981\u6c42\r\n\t\t\t\t\t\t\t\tcase 0x92 :\t\t\/\/ 0x92:IR\u53d7\u4fe1\u8981\u6c42\r\n\t\t\t\t\t\t\t\tcase 0x95 :\t\t\/\/ 0x95:IR\u524a\u9664\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\tset_gvc_ir_txrx(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2193\u3053\u306e\u3042\u3068\u3001\u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u3067\u306a\u304f\u3066\u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3067\u306d\uff1f\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30b3\u30de\u30f3\u30c9\u3092\u3044\u3063\u305f\u3093\u30b3\u30d4\u30fc\r\n\t\t\t\t\t\t\t\t\tmemcpy(subbuffer, (void *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len));\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)subbuffer;\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30bf\u30a4\u30d7\u3092\u3068\u308a\u3042\u3048\u305a\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u304b\u3089\u306e\u60c5\u5831\u306b\u5909\u66f4\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_OTHER;\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\tget_gvc_ir_status(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\t\t\t\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x93 :\t\t\/\/ 0x93:IR\u8a2d\u5b9a\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u3067\u8a2d\u5b9aor\u53d6\u5f97\u3092\u3059\u308b\u5834\u5408\u3001\u5f8c\u308d\u306e\u30c7\u30fc\u30bf\u306f\u7121\u8996\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044(main_buffer\u3092\u4f7f\u3063\u3066\u3057\u307e\u3046\u305f\u3081)\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\tset_gvc_ir_data(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2193\u3053\u306e\u3042\u3068\u3001\u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30b3\u30de\u30f3\u30c9\u3092\u30b3\u30d4\u30fc\u3057\u3066\u3057\u307e\u3046\u3068\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3059\u308b\u306e\u3067\u3057\u306a\u3044\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30b3\u30de\u30f3\u30c9\u3092\u3044\u3063\u305f\u3093\u30b3\u30d4\u30fc\r\n\/\/\/\t\t\t\t\t\t\t\t\tmemcpy(subbuffer, (void *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len));\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\/\/\/\t\t\t\t\t\t\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)subbuffer;\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30bf\u30a4\u30d7\u3092\u8d64\u5916\u7dda\u60c5\u5831\u306b\u5909\u66f4\u2026\u3067\u306a\u304f\u3066\u3001\u3053\u3053\u306f\u5358\u306a\u308b\u8a2d\u5b9a\u3060\u304b\u3089OTHER\u306b\u3057\u3066\u3044\u308b\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_OTHER;\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2193\u3053\u3053\u3067\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3057\u3066\u3057\u307e\u3046\u3068\u3001subbuffer\u306e128bytes\u3092\u5927\u304d\u304f\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3057\u3066\u3057\u307e\u3046\u3088\u306d\u3047\uff1f\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\r\n\t\t\t\t\t\t\t\t\tget_gvc_ir_status(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\t\t\t\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x94 :\t\t\/\/ 0x94:IR\u8aad\u51fa\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u3067\u8a2d\u5b9aor\u53d6\u5f97\u3092\u3059\u308b\u5834\u5408\u3001\u5f8c\u308d\u306e\u30c7\u30fc\u30bf\u306f\u7121\u8996\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044(main_buffer\u3092\u4f7f\u3063\u3066\u3057\u307e\u3046\u305f\u3081)\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066IR\u30c7\u30fc\u30bf\u53d6\u5f97\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\tset_gvc_ir_txrx(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2193\u3053\u306e\u3042\u3068\u3001\u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u4e00\u65e6\u30b3\u30de\u30f3\u30c9\u30d8\u30c3\u30c0\u3092\u5f85\u907f\u3055\u305b\u3066\u3001\u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u518d\u521d\u671f\u5316\u3057\u3066\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3059\u308b\r\n\t\t\t\t\t\t\t\t\t\/\/ \u3000\u306a\u306e\u3067\u3001\u8d64\u5916\u7dda\u8aad\u51fa\u8981\u6c42\u306b\u7d9a\u3051\u3066\u4f55\u304b\u30b3\u30de\u30f3\u30c9\u3092\u9001\u3089\u306a\u3044\u3088\u3046\u306b\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044(\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u660e\u8a18\u3059\u308b\u3053\u3068)\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u30b3\u30de\u30f3\u30c9\u3092\u3044\u3063\u305f\u3093\u30b3\u30d4\u30fc\r\n\t\t\t\t\t\t\t\t\tmemcpy(subbuffer, (void *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE));\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)subbuffer;\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30c7\u30fc\u30bf\u30dd\u30a4\u30f3\u30bf\u3068\u53d7\u4fe1\u30c7\u30fc\u30bf\u306e\u9577\u3055\u3092\u521d\u671f\u5316\u3057\u3066\u3001\u30c7\u30fc\u30e2\u30f3\u304b\u3089\u306e\u6b8b\u308a\u306e\u30c7\u30fc\u30bf\u3092\u7834\u68c4\r\n\t\t\t\t\t\t\t\t\trx_pos = 0;\r\n\t\t\t\t\t\t\t\t\trx_data_len = 0;\r\n\t\t\t\t\t\t\t\t\trx_remainder = 0;\r\n\t\t\t\t\t\t\t\t\trx_remainder_len = 0;\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\t\t\t\t\t\t\t\t\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u30d8\u30c3\u30c0\u90e8\u5206\u3092\u30b3\u30d4\u30fc\r\n\t\t\t\t\t\t\t\t\tmemcpy(mainbuffer, (void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30bf\u30a4\u30d7\u3092\u8d64\u5916\u7dda\u60c5\u5831\u306b\u5909\u66f4\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_IR;\r\n\t\t\t\t\t\t\t\t\t\/\/ \u5bfe\u8c61\u30b9\u30ec\u30fc\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\r\n\t\t\t\t\t\t\t\t\tget_gvc_ir_status(gvc_serial_message-&gt;dev_num, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\t\t\t\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 0x7e :\t\t\/\/ 0x7e:\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u30ea\u30bb\u30c3\u30c8\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30ea\u30bb\u30c3\u30c8\u3059\u308b\r\n\t\t\t\t\t\t\t\t\tgoto RESET_JOB;\r\n\/\/\/\t\t\t\t\t\t\t\t\tbreak;\t\t\/\/ break\u306b\u610f\u5473\u304c\u3042\u308b\u306e\u304b\u306a\uff1f :-)\r\n\t\t\t\t\t\t\t\tcase 0x7f :\t\t\/\/ 0x7f:\u30de\u30b9\u30bf\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u30b9\u30c8\u30c3\u30d7\u8981\u6c42\r\n\t\t\t\t\t\t\t\t\t\/\/ \u52d5\u4f5c\u30e2\u30fc\u30c9\u3092\u505c\u6b62\u72b6\u614b\u306b\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\twork_mode = 0;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault :\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30b5\u30d6\u30d0\u30c3\u30d5\u30a1\u306b\u672a\u5b9f\u88c5\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3042\u308b\u65e8\u3092\u8a2d\u5b9a\r\n\t\t\t\t\t\t\t\t\tsprintf(subbuffer, &quot;%02x, Not implemented&quot;, gvc_serial_message-&gt;cmd);\r\n\t\t\t\t\t\t\t\t\t\/\/ \u30c7\u30fc\u30e2\u30f3\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n\t\t\t\t\t\t\t\t\tsend_gvc_other_message(gvc_serial_message-&gt;dev_num, strlen(subbuffer), subbuffer);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\/\/ \u30c7\u30ea\u30df\u30bf\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6b21\u304b\u3089\u6b8b\u308a\u306e\u30c7\u30fc\u30bf\u3092\u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306e\u5148\u982d\u306b\u30b3\u30d4\u30fc\r\n\t\t\t\t\t\t\tmemmove(mainbuffer, mainbuffer + rx_remainder, rx_remainder_len);\r\n\t\t\t\t\t\t\t\/\/ \u6b21\u306e\u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u30dd\u30a4\u30f3\u30bf\u3092\u8a2d\u5b9a\r\n\t\t\t\t\t\t\trx_pos = rx_remainder_len;\r\n\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30d0\u30c3\u30d5\u30a1\u9577\u3092\u8a2d\u5b9a\r\n\t\t\t\t\t\t\trx_data_len = rx_remainder_len;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\/\/ \u30b9\u30ad\u30e3\u30f3\u30eb\u30fc\u30d7\u304b\u3089\u629c\u3051\u308b\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\/\/ 100ms\u5f85\u3064\r\n\t\t\tDelay_10ms(10);\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ \u52d5\u4f5c\u30e2\u30fc\u30c9\u304c\u52d5\u4f5c\u72b6\u614b\u306a\u3089\r\n\t\tif (work_mode == 1)\r\n\t\t{\r\n\t\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t\t}\r\n\t\t\/\/ \u52d5\u4f5c\u30e2\u30fc\u30c9\u304c\u505c\u6b62\u72b6\u614b\u306a\u3089\u3001\u30b3\u30de\u30f3\u30c9\u3092\u3072\u305f\u3059\u3089\u5f85\u3064\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u304a\u5929\u6c17\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u6e29\u5ea6\u3092\u8981\u6c42\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u306a\u3044\u306a\u3089\r\n\t\tif (i2c_slavetbl&#x5B;GVC_TEMP_HUMI_ADDRESS] == 'x')\r\n\t\t{\r\n\t\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t\t}\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3042\u308b\u306a\u3089\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\t\t\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_TEMP;\r\n\t\t\tgvc_serial_message-&gt;dev_num = GVC_TEMP_HUMI_ADDRESS;\r\n\t\t\t\/\/ \u6e29\u5ea6\u30c7\u30fc\u30bf\u3092\u53d6\u5f97(I2C_ADDR=GVC_TEMP_HUMI_ADDRESS)\r\n\t\t\tget_gvc_temp_data(GVC_TEMP_HUMI_ADDRESS, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\r\n\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\r\n\t\t\t\/\/ \u51e6\u7406\u7d50\u679c\u3092\u9001\u4fe1\r\n\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\t\t\tPORT_RESULT_LED = LED_OFF;\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u304a\u5929\u6c17\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u76f8\u5bfe\u6e7f\u5ea6\u3092\u8981\u6c42\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u306a\u3044\u306a\u3089\r\n\t\tif (i2c_slavetbl&#x5B;GVC_TEMP_HUMI_ADDRESS] == 'x')\r\n\t\t{\r\n\t\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t\t}\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3042\u308b\u306a\u3089\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\t\t\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_HUMI;\r\n\t\t\tgvc_serial_message-&gt;dev_num = GVC_TEMP_HUMI_ADDRESS;\r\n\t\t\t\/\/ \u6e7f\u5ea6\u30c7\u30fc\u30bf\u3092\u53d6\u5f97(I2C_ADDR=GVC_TEMP_HUMI_ADDRESS)\r\n\t\t\tget_gvc_humi_data(GVC_TEMP_HUMI_ADDRESS, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\r\n\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\r\n\t\t\t\/\/ \u51e6\u7406\u7d50\u679c\u3092\u9001\u4fe1\r\n\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\t\t\tPORT_RESULT_LED = LED_OFF;\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ MPL115A2(Atmospheric pressure)\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u7121\u3044\u306a\u3089\r\n\t\tif (i2c_slavetbl&#x5B;MPL115A2_ADDRESS] == 'x')\r\n\t\t{\r\n\t\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t\t}\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3042\u308b\u306a\u3089\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\t\t\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_PRESS;\r\n\t\t\tgvc_serial_message-&gt;dev_num = MPL115A2_ADDRESS;\r\n\t\t\t\r\n\t\t\t\/\/ \u5927\u6c17\u5727\u3092\u53d6\u5f97(MPL115A2)\u3057\u3066\u3001\u30c7\u30fc\u30bf\u306b\u8a2d\u5b9a\r\n\t\t\tsprintf(gvc_serial_message-&gt;data, &quot;%s&quot;, ftoa(get_MPL115A2(), &amp;ftoa_status));\r\n\t\t\t\/\/ \u30c7\u30fc\u30bf\u9577\u3092\u8a2d\u5b9a\r\n\t\t\tgvc_serial_message-&gt;data_len = strlen(gvc_serial_message-&gt;data);\r\n\t\t\t\r\n\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\r\n\t\t\t\/\/ \u51e6\u7406\u7d50\u679c\u3092\u9001\u4fe1\r\n\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\t\t\tPORT_RESULT_LED = LED_OFF;\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u6e2c\u8ddd\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u8ddd\u96e2\u3092\u8981\u6c42\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u7121\u3044\u306a\u3089\r\n\t\tif (i2c_slavetbl&#x5B;GVC_DISTANCE_ADDRESS] == 'x')\r\n\t\t{\r\n\t\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t\t}\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3042\u308b\u306a\u3089\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\t\t\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_DIST;\r\n\t\t\tgvc_serial_message-&gt;dev_num = GVC_DISTANCE_ADDRESS;\r\n\t\t\t\/\/ \u8ddd\u96e2\u30c7\u30fc\u30bf\u3092\u53d6\u5f97(I2C_ADDR=GVC_DISTANCE_ADDRESS)\r\n\t\t\tget_gvc_dist_data(GVC_DISTANCE_ADDRESS, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\r\n\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\r\n\t\t\t\/\/ \u51e6\u7406\u7d50\u679c\u3092\u9001\u4fe1\r\n\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\t\t\tPORT_RESULT_LED = LED_OFF;\r\n\t\t}\r\n\t\t\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u8d64\u5916\u7dda\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u8ddd\u96e2\u3092\u8981\u6c42\r\n\t\t\/\/ ------------------------------\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u7121\u3044\u306a\u3089\r\n\t\tif (i2c_slavetbl&#x5B;GVC_PIR_ADDRESS] == 'x')\r\n\t\t{\r\n\t\t\t\/\/ \u4f55\u3082\u3057\u306a\u3044\r\n\t\t}\r\n\t\t\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3042\u308b\u306a\u3089\r\n\t\telse\r\n\t\t{\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u70b9\u706f\r\n\t\t\tPORT_RESULT_LED = LED_ON;\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u3092\u521d\u671f\u5316\r\n\t\t\tmemset((void *)mainbuffer, 0x00, sizeof(mainbuffer));\r\n\t\t\t\r\n\t\t\t\/\/ \u30e1\u30a4\u30f3\u30d0\u30c3\u30d5\u30a1\u306bGVC_SERIAL_MESSAGE_t\u3092\u304b\u3076\u305b\u308b\r\n\t\t\tgvc_serial_message = (GVC_SERIAL_MESSAGE_t *)mainbuffer;\r\n\t\t\tgvc_serial_message-&gt;msg_type = GVC_MSG_IR;\r\n\t\t\tgvc_serial_message-&gt;dev_num = GVC_PIR_ADDRESS;\r\n\t\t\t\/\/  \u8d64\u5916\u7dda\u30bb\u30f3\u30b5\u30fc\u306e\u72b6\u614b\u3092\u53d6\u5f97(I2C_ADDR=GVC_PIR_ADDRESS)\r\n\t\t\tget_gvc_pir_data(GVC_PIR_ADDRESS, (GVC_I2C_MESSAGE_t *)&amp;(gvc_serial_message-&gt;format));\r\n\t\t\t\r\n\t\t\t\/\/ CRC\u3092\u8a08\u7b97\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306b\u8a2d\u5b9a\r\n\t\t\tgvc_serial_message-&gt;data&#x5B; gvc_serial_message-&gt;data_len ] = GetCRC8((void *)gvc_serial_message, GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len);\r\n\t\t\t\/\/ \u2191\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u5074\u306f\u3001\u30c7\u30fc\u30bf\u306eCRC\u3092\u8a08\u7b97\u3057\u305f\u3042\u3068\u3067\r\n\t\t\t\/\/ \u3000\u305d\u306eCRC\u3092\u30c7\u30fc\u30bf\u306e\u6700\u5f8c\u306b\u9023\u7d50\u3057\u3066\u76f8\u624b\u306b\u9001\u308c\u3070\u3044\u3044\r\n\t\t\t\r\n\t\t\t\/\/ \u51e6\u7406\u7d50\u679c\u3092\u9001\u4fe1\r\n\t\t\tsend_serial((char *)gvc_serial_message, (GVC_SERIAL_MESSAGE_HEADER_SIZE + gvc_serial_message-&gt;data_len + 1));\r\n\t\t\t\r\n\t\t\t\/\/ \u30ea\u30b6\u30eb\u30c8LED\u3092\u6d88\u706f\r\n\t\t\tPORT_RESULT_LED = LED_OFF;\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\/\/ &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; \/\/ Global Versatile Controler http:\/\/www.gvc-on.net\/ \/\/  &hellip; <a href=\"https:\/\/www.gvc-on.net\/?page_id=638\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":622,"menu_order":30,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-638","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/pages\/638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=638"}],"version-history":[{"count":1,"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/pages\/638\/revisions"}],"predecessor-version":[{"id":639,"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/pages\/638\/revisions\/639"}],"up":[{"embeddable":true,"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=\/wp\/v2\/pages\/622"}],"wp:attachment":[{"href":"https:\/\/www.gvc-on.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}