/** * 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 <stdint.h> #include "ble.h" #include "ble_srv_common.h" #include <stdbool.h> #include <stdint.h> #include <stdio.h> #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_IOS_PARK 9 // NEW IOS ���н� ������� #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 TransferVerHigh; char TransferVerLow; 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__ */