/** * Copyright (c) 2014 - 2018, Nordic Semiconductor ASA * * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form, except as embedded into a Nordic * Semiconductor ASA integrated circuit in a product or a software update for * such product, must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other * materials provided with the distribution. * * 3. Neither the name of Nordic Semiconductor ASA nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * 4. This software, with or without modification, must only be used with a * Nordic Semiconductor ASA integrated circuit. * * 5. Any software provided in binary form under this license must not be reverse * engineered, decompiled, modified and/or disassembled. * * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ #ifndef OUR_SERVICE_H__ #define OUR_SERVICE_H__ #include #include "ble.h" #include "ble_srv_common.h" #include #include #include #include "app_uart.h" #include "app_error.h" #ifdef __cplusplus extern "C" { #endif #define NUM_STX 0 #define NUM_TYPE_SVR 1 #define NUM_CHECKSUM 18 #define NUM_ETX 19 #define COM_COMM_EMG_SWTICH 0x01 #define COM_COMM_SMART_BAND 0x02 #define COM_COMM_ONEPASS 0x03 #define COM_TYPE_BELL_EMG 0x01 #define COM_STX 0x02 // START BYTE #define COM_ETX 0x03 // END BYTE //#define COM_TYPE_BELL_EMG 0x01 //#define COM_TYPE_SVR_NORMAL 0x02 //#define COM_TYPE_SVR_TALKING 0x03 //#define COM_TYPE_SVR_DISCON 0x04 //#define COM_TYPE_SVR_BUSY 0x05 //#define COM_TYPE_SVR_ALIVE 0x06 //#define COM_TYPE_SVR_TEST 0x07 #define COM_TYPE_BAND 0x02 #define COM_TYPE_BAND_EMG 0x01 #define DEV_NONE 0 #define DEV_BAND_PARK 1 // ¹êµå ÁÖÂ÷µî·Ï #define DEV_BAND_EMG 2 // ¹êµå ºñ»ó #define DEV_EMG_BUTTON 3 // ºñ»óº§ ¹öÆ° #define DEV_BAND_ADV 4 // ºñ»óº§ #define DEV_WES_ALIVE 5 // ¼ö½Å±â Alive #define DEV_WES_REG 6 // ¼ö½Å±â ¸ñ·Ï #define DEV_WES_ADV 7 // ¼ö½Å±â #define DEV_EMG_BAND 8 #define DEV_NUS_EMG 1 #define DEV_NUS_TEST 2 #define DEV_NUS_REG 3 #define DEV_NUS_ALIVE 4 //#define COM_TYPE_SVR_NORMAL 0x02 //#define COM_TYPE_SVR_TALKING 0x03 //#define COM_TYPE_SVR_DISCON 0x04 //#define COM_TYPE_SVR_BUSY 0x05 //#define COM_TYPE_SVR_ALIVE 0x06 //#define COM_TYPE_SVR_MIC 0x07 #define COM_TYPE_SVR_RECV_REG 0x08 #define COM_TYPE_SVR_RECV_INIT 0x0a #define COM_TYPE_SVR_RECV_LIST 0x0c #define COM_TYPE_SVR_PARKING 0x73 #define SERVER_COMM_DATA_LEN 0x08 #define COM_TYPE_SVR_EMG_REQ 0x01 // SERVER EMG ÀÀ´ä #define COM_TYPE_SVR_NORMAL 0x02 // ¼ö½Å±â Normal ½ÅÈ£ ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_TALKING 0x03 // ¼ö½Å±â Talking ½ÅÈ£ ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_DISCON 0x04 // ¼ö½Å±â DisConnect ½ÅÈ£ ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_BUSY 0x05 // ¼ö½Å±â Busy ½ÅÈ£ ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_ALIVE 0x06 // ¼ö½Å±â Alive ½ÅÈ£ ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_MIC 0x07 // ¼ö½Å±â Mic »óÅ ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_RECV_REG_REQ 0x08 // ¼Û½Å±â µî·Ï ¿äû ( BleEventServer --> IES600 ) #define COM_TYPE_SEV_RECV_REG_ANSWER 0x09 // ¼Û½Å±â µî·Ï ÀÀ´ä ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_RECV_INIT_REQ 0x0a // ¼ö½Å±â ÃʱâÈ­ ¿äû ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_RECV_INIT_ANSWER 0x0b // ¼ö½Å±â ÃʱâÈ­ ÀÀ´ä ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_RECV_LIST_REQ 0x0c // ¼Û½Å±â ¸ñ·Ï ¿äû ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_RECV_LIST_ANSWER 0x0d // ¼Û½Å±â ¸ñ·Ï ÀÀ´ä ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_UPGREAD_REQ 0x0e // ¼ö½Å±â ¾÷±×·¹ÀÌµå ¿äû ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_UPGREAD_ANSWER 0x0f // ¼ö½Å±â ¾÷±×·¹À̵å ÀÀ´ä ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_VER_REQ 0x10 // ¼ö½Å±â ¹öÀü ¿äû ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_VER_ANSWER 0x11 // ¼ö½Å±â ¹öÀü ÀÀ´ä ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_CALL_REQ 0x12 // ¼ö½Å±â ÅëÈ­ ¿äû ( BleEventServer --> IES600 ) #define COM_TYPE_SVR_CALL_ANSWER 0x13 // ¼ö½Å±â ÅëÈ­ ÀÀ´ä ( IES600 --> BleEventServer ) #define COM_TYPE_SVR_TEST 0x14 // ¼ö½Å±â TEST ½ÅÈ£ ( ) struct stSystemTimer__ { volatile int MS_1; volatile int UART_LAST_RECV_TIMER; volatile int SEND_TEST_TIMER; volatile int LED_TOGGLE_TIMER; volatile int TMR_SYS_OFF; volatile int TMR_CON_START; volatile int PARK_KEEP_TIMER; volatile int DEV_REG_TIMER; volatile int SVR_SEND_TIMER; }; typedef struct stSystemTimer__ stSystemTimer; struct stBandData__ { uint32_t Uid; uint32_t Site; uint16_t Dong; uint16_t Ho; uint8_t KeyNum; uint8_t KeyType; uint32_t ReaderId[3]; uint8_t ReaderRssi[3]; }; typedef struct stBandData__ stBandData; struct stSystemManager__ { char RxValild; char RxEvent; char SwitchOn; // ºÎÀú »çÀ̸° µ¿ÀÛ À¯¹« char BuzzerOn; char MicOn; char SpeakerOn; char ServerCon; // À̺¥Æ®¼­¹ö¿Í ¿¬°á À¯¹« char DevType; char *PtrLocalName; int PtrLocalNameLen; char LedBlinkRun; // LED Blink µ¿ÀÛ Á¾·ù int LedBlinkTimer; // LED Blink µ¿ÀÛ ½Ã°£ char NusData; char RegRequst; char PeerAddr[6]; char *PtrPeerAddrStr; char BatLevel; char *TmpPtr; char AesEncData[16]; char TmpBuff[40]; char TmpBuff2[40]; char SecondData; char BandMode; char BandType; char Site[4]; char Dong[2]; char Ho[2]; stBandData BandData; }; typedef struct stSystemManager__ stSystemManager; void USART_Handler(void); void ParseEventServer(); void SendToEventServer(char* data, int len); void SendEmergency(); void SendEmergencyLocal(); void SendTest(); void LedToggle(); void USART_DataCheck(); void SendAck(uint8_t cmd); void SendCurrentRegDev(); void SendEmergencyBand(); void SendParkingBand(); void AliveTest(); void SendParkingApp(); void Server_Answer_Call(); void Server_Answer_Reg_List(); void Server_Answer_Version(); void Server_Answer_Upgread(); extern char SvrRxBuffer[]; extern int SvrRxBufferPos; extern char SvrEvent; extern stSystemTimer SystemTimer; extern stSystemManager SystemManager; #endif /* _ OUR_SERVICE_H__ */