/** * 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. * */ #include #include #include "nrf_gpio.h" #include "our_service.h" #include "ble_srv_common.h" #include "app_error.h" #include "SEGGER_RTT.h" #include "board_gpi.h" #include "nrf_log.h" #include "sysmgr.h" char SvrRxBuffer[100]; int SvrRxBufferPos; char SvrEvent; stSystemTimer SystemTimer; stSystemManager SystemManager; char SvrSendBuff[50]; void delete_all_begin(void); void USART_DataCheck() { if( SystemTimer.UART_LAST_RECV_TIMER > 10 && SystemManager.RxValild ) { SvrRxBuffer[SvrRxBufferPos] = 0; //printf("[%d]%s\r\n", SvrRxBufferPos, SvrRxBuffer); SystemManager.RxValild = 0; if( SvrRxBufferPos == 20 ) { SystemManager.RxEvent = 1; } SvrRxBufferPos = 0; } if( SystemTimer.UART_LAST_RECV_TIMER > 10 && SvrRxBufferPos ) { SystemManager.RxValild = 0; SvrRxBufferPos = 0; } } void USART_Handler(void) { char ch; uint8_t cr; // SystemTimer.UART1_LAST_RECV_TIMER = 0; if( app_uart_get(&cr) == NRF_SUCCESS ) { SystemManager.RxValild = 1; SvrRxBuffer[SvrRxBufferPos++] = cr; SvrRxBufferPos %= 100; SystemTimer.UART_LAST_RECV_TIMER = 0; } } #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_VER_REQ 0x10 // #define COM_TYPE_SVR_CALL_REQ 0x12 /* À̺¥Æ® ¼­¹ö¿¡¼­ 20byte µé¾î¿ÔÀ»¶§ */ void ParseEventServer() { int i; if( SystemManager.RxEvent == 0 ) return; SystemManager.RxEvent = 0; NRF_LOG_RAW_INFO("\n\n"); NRF_LOG_RAW_INFO("SERVER TO DATA : ") for( i=0; i<20; i++) { NRF_LOG_RAW_INFO("0x%02x ", SvrRxBuffer[i]); } NRF_LOG_RAW_INFO("\n\n"); if(SvrRxBuffer[0] != 0x02) return; switch(SvrRxBuffer[1]){ case COM_TYPE_SVR: switch(SvrRxBuffer[3]){ case COM_TYPE_SVR_NORMAL: NRF_LOG_INFO("Recv : Normal"); PKLedOff(); PKBuzzerOff(); PKMicOff(); SystemManager.SwitchOn = 0; break; case COM_TYPE_SVR_TALKING: NRF_LOG_INFO("Recv : Talking"); PKLedOn(); PKBuzzerOff(); SystemManager.SwitchOn = 0; break; case COM_TYPE_SVR_DISCON: NRF_LOG_INFO("Recv : Disconnect"); SystemManager.SwitchOn = 0; //bsp_board_leds_off(); break; case COM_TYPE_SVR_BUSY: NRF_LOG_INFO("Recv : Busy"); break; case COM_TYPE_SVR_ALIVE: NRF_LOG_INFO("Recv : Keep Alive"); break; case COM_TYPE_SVR_MIC: NRF_LOG_INFO("Recv : mic on/off"); if( SvrRxBuffer[11] == 0 ) { NRF_LOG_INFO("mic on"); NRF_LOG_INFO("speaker off"); PKSpeakerOff(); PKMicOn(); PKBuzzerOff(); PKLedOn(); SystemManager.SwitchOn = 0; }else{ NRF_LOG_INFO("mic off"); NRF_LOG_INFO("speaker on"); PKMicOff(); PKSpeakerOn(); PKLedOn(); } break; // ¼Û½Å±â µî·Ï¿äû case COM_TYPE_SVR_RECV_REG: NRF_LOG_INFO("Recv : COM_TYPE_SVR_RECV_REG"); SystemManager.LedBlinkRun = COM_TYPE_SVR_RECV_REG; SystemManager.RegRequst = 1; SendAck(COM_TYPE_SVR_RECV_REG+1); SystemTimer.DEV_REG_TIMER = 0; break; // ¼Û½Å±â µî·Ï ÃʱâÈ­ case COM_TYPE_SVR_RECV_INIT: NRF_LOG_INFO("Recv : COM_TYPE_SVR_RECV_INIT"); // SystemManager.LedBlinkRun = COM_TYPE_SVR_RECV_INIT; // SystemManager.LedBlinkTimer = 2500; // SystemTimer.LED_TOGGLE_TIMER = 0; // SystemManager.SwitchOn = 1; SendAck(COM_TYPE_SVR_RECV_INIT+1); //for( i=0; i "); for( i=0; i SendEmergency()\n"); if( SystemManager.RegRequst == 1 ) { SystemManager.RegRequst = 0; return; } SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = COM_TYPE_BELL_EMG; SvrSendBuff[4] = SystemManager.PeerAddr[3]; SvrSendBuff[5] = SystemManager.PeerAddr[4]; SvrSendBuff[6] = SystemManager.PeerAddr[5]; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 8; SvrSendBuff[11] = 0; SvrSendBuff[12] = 0; SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; NRF_LOG_INFO("SendEmergency ==="); SendToEventServer(&SvrSendBuff[0], 20); SystemManager.SwitchOn = 1; PKBuzzerOn(); } void SendParkingApp() { int i; NRF_LOG_RAW_INFO("===> SendParkingApp()\n"); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = 3; SvrSendBuff[2] = 0; SvrSendBuff[3] = 1; // SvrSendBuff[4] = SystemManager.PeerAddr[3]; // SvrSendBuff[5] = SystemManager.PeerAddr[4]; // SvrSendBuff[6] = SystemManager.PeerAddr[5]; SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 0x11; SvrSendBuff[11] = 0x74; SvrSendBuff[12] = 0; //uuid SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = SystemManager.Site[0]; //Site SvrSendBuff[17] = SystemManager.Site[1]; SvrSendBuff[18] = SystemManager.Site[2]; SvrSendBuff[19] = SystemManager.Site[3]; SvrSendBuff[20] = SystemManager.Dong[0]; //Dong SvrSendBuff[21] = SystemManager.Dong[1]; SvrSendBuff[22] = SystemManager.Ho[0]; //Ho SvrSendBuff[23] = SystemManager.Ho[1]; SvrSendBuff[24] = 0; //KEY NUM SvrSendBuff[25] = 0; //KEY TYPE SvrSendBuff[26] = 0; //Random SvrSendBuff[27] = 0; SvrSendBuff[28] = COM_ETX; NRF_LOG_INFO("SendParkingApp ==="); SendToEventServer(&SvrSendBuff[0], 1); SendToEventServer(&SvrSendBuff[0], 29); for(i=0; i<2; i++){ PKLedOn(); nrf_delay_ms(300); PKLedOff(); nrf_delay_ms(300); } nrf_delay_ms(2000); // Áߺ¹Çؼ­ µé¾î¿À´Â µ¥ÀÌŸ·Î ÀÎÇÑ ¿¬¼Ó µ¿ÀÛ ¹æÁö } void SendEmergencyBand() { int i; char tmpStr[10]; NRF_LOG_RAW_INFO("===> SendEmergencyBand()\n"); SystemManager.LedBlinkRun = 1; SystemManager.LedBlinkTimer = 5000; SystemTimer.LED_TOGGLE_TIMER = 0; SystemManager.DevType = 0; SystemManager.SwitchOn = 1; PKBuzzerOn(); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = 2; SvrSendBuff[2] = 0; SvrSendBuff[3] = COM_TYPE_BELL_EMG; // SvrSendBuff[4] = SystemManager.PeerAddr[3]; // SvrSendBuff[5] = SystemManager.PeerAddr[4]; // SvrSendBuff[6] = SystemManager.PeerAddr[5]; SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; if( RegMacPool.Count != 0 ){ // µî·ÏµÈ ¼Û½Å±â°¡ ÀÖÀ¸¸é ù¹øÂ° MAC Àü¼Û strcpy( tmpStr, &RegMacPool.Mac[0][6]); tmpStr[6] = 0; SvrSendBuff[6] = strtoul( &tmpStr[4], NULL, 16 ); tmpStr[4] = 0; SvrSendBuff[5] = strtoul( &tmpStr[2], NULL, 16 ); tmpStr[2] = 0; SvrSendBuff[4] = strtoul( &tmpStr[0], NULL, 16 ); }else{ // ¾øÀ¸¸é 000000 Àü¼Û SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; } SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 0x11; SvrSendBuff[11] = 0x72; SvrSendBuff[12] = 0; //uuid SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = SystemManager.Site[0]; //Site SvrSendBuff[17] = SystemManager.Site[1]; SvrSendBuff[18] = SystemManager.Site[2]; SvrSendBuff[19] = SystemManager.Site[3]; SvrSendBuff[20] = SystemManager.Dong[0]; //Dong SvrSendBuff[21] = SystemManager.Dong[1]; SvrSendBuff[22] = SystemManager.Ho[0]; //Ho SvrSendBuff[23] = SystemManager.Ho[1]; SvrSendBuff[24] = 0; //KEY NUM SvrSendBuff[25] = 0; //KEY TYPE SvrSendBuff[26] = 0; //Random SvrSendBuff[27] = 0; SvrSendBuff[28] = COM_ETX; NRF_LOG_INFO("SendEmergencyBand==="); SendToEventServer(&SvrSendBuff[0], 1); nrf_delay_ms(500); SendToEventServer(&SvrSendBuff[0], 29); //NRF_LOG_RAW_INFO("================= EmergencyBand \n"); for( i=0; i<29; i++) { //NRF_LOG_RAW_INFO("%02x ", SvrSendBuff[i]); } NRF_LOG_RAW_INFO("\n"); } void SendParkingBand() { int i; NRF_LOG_RAW_INFO("===> SendParkingBand()\n"); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = 2; SvrSendBuff[2] = 0; SvrSendBuff[3] = 2; // SvrSendBuff[4] = SystemManager.PeerAddr[3]; // SvrSendBuff[5] = SystemManager.PeerAddr[4]; // SvrSendBuff[6] = SystemManager.PeerAddr[5]; SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 0x11; SvrSendBuff[11] = 0x73; SvrSendBuff[12] = 0; //uuid SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = SystemManager.Site[0]; //Site SvrSendBuff[17] = SystemManager.Site[1]; SvrSendBuff[18] = SystemManager.Site[2]; SvrSendBuff[19] = SystemManager.Site[3]; SvrSendBuff[20] = SystemManager.Dong[0]; //Dong SvrSendBuff[21] = SystemManager.Dong[1]; SvrSendBuff[22] = SystemManager.Ho[0]; //Ho SvrSendBuff[23] = SystemManager.Ho[1]; SvrSendBuff[24] = 0; //KEY NUM SvrSendBuff[25] = 0; //KEY TYPE SvrSendBuff[26] = 0; //Random SvrSendBuff[27] = 0; SvrSendBuff[28] = COM_ETX; // NRF_LOG_INFO("SendParkingBand ==="); SendToEventServer(&SvrSendBuff[0], 1); SendToEventServer(&SvrSendBuff[0], 29); // SystemManager.SwitchOn = 1; SystemManager.SwitchOn = 0; for(i=0; i<2; i++){ PKLedOn(); nrf_delay_ms(300); PKLedOff(); nrf_delay_ms(300); } } void SendAck(uint8_t cmd) { NRF_LOG_RAW_INFO("===> SendAck()\n"); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = cmd; SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 8; SvrSendBuff[11] = 'A'; SvrSendBuff[12] = 'C'; SvrSendBuff[13] = 'K'; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; // NRF_LOG_INFO("cmd:0x%02x ACK ==== ", cmd); SendToEventServer(&SvrSendBuff[0], 20); } void SendDevList() { char tmpStr[10]; int i; NRF_LOG_RAW_INFO("===> SendDevList(%d)\n", RegMacPool.Count); if( RegMacPool.Count == 0 ) { strcpy( tmpStr, &RegMacPool.Mac[i][6]); tmpStr[6] = 0; SvrSendBuff[6] = strtoul( &tmpStr[4], NULL, 16 ); tmpStr[4] = 0; SvrSendBuff[5] = strtoul( &tmpStr[2], NULL, 16 ); tmpStr[2] = 0; SvrSendBuff[4] = strtoul( &tmpStr[0], NULL, 16 ); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = 0x0D; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 8; SvrSendBuff[11] = 0; SvrSendBuff[12] = 0; SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; NRF_LOG_INFO("DevList %02x%02x%02x ===== ", SvrSendBuff[4], SvrSendBuff[5], SvrSendBuff[6]); SendToEventServer(&SvrSendBuff[0], 20); nrf_delay_ms(50); } for( i=0; i SendCurrentRegDev()\n"); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = 0x0d; SvrSendBuff[4] = SystemManager.PeerAddr[3]; SvrSendBuff[5] = SystemManager.PeerAddr[4]; SvrSendBuff[6] = SystemManager.PeerAddr[5]; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 8; SvrSendBuff[11] = 0; SvrSendBuff[12] = 0; SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; // NRF_LOG_INFO("DevList %02x%02x%02x ===== ", SvrSendBuff[4], SvrSendBuff[5], SvrSendBuff[6]); SendToEventServer(&SvrSendBuff[0], 20); nrf_delay_ms(50); } void Server_Call_Request() { char tmpStr[10]; int i; NRF_LOG_INFO("Server_Call_Request"); if( SystemManager.ServerCon == 0 ) { SystemManager.LedBlinkRun = 1; SystemManager.LedBlinkTimer = 5000; SystemTimer.LED_TOGGLE_TIMER = 0; SystemManager.DevType = 0; SystemManager.SwitchOn = 1; PKBuzzerOn(); SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = COM_TYPE_SVR_CALL_REQ+1; if( RegMacPool.Count != 0 ){ // µî·ÏµÈ ¼Û½Å±â°¡ ÀÖÀ¸¸é ù¹øÂ° MAC Àü¼Û strcpy( tmpStr, &RegMacPool.Mac[0][6]); tmpStr[6] = 0; SvrSendBuff[6] = strtoul( &tmpStr[4], NULL, 16 ); tmpStr[4] = 0; SvrSendBuff[5] = strtoul( &tmpStr[2], NULL, 16 ); tmpStr[2] = 0; SvrSendBuff[4] = strtoul( &tmpStr[0], NULL, 16 ); }else{ // ¾øÀ¸¸é 000000 Àü¼Û SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; } SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 8; // SvrSendBuff[11] = 'A'; // SvrSendBuff[12] = 'C'; // SvrSendBuff[13] = 'K'; SvrSendBuff[11] = 0; SvrSendBuff[12] = 0; SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; SendToEventServer(&SvrSendBuff[0], 20); // SendAck(COM_TYPE_SVR_CALL_REQ+1); } } void Server_Ver_Request() { NRF_LOG_RAW_INFO("===> Server_Ver_Request()\n"); if( SystemManager.ServerCon == 0) { SystemManager.LedBlinkRun = COM_TYPE_SVR_VER_REQ; SystemManager.LedBlinkTimer = 1500; SystemTimer.LED_TOGGLE_TIMER = 0; SystemManager.DevType = 0; SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = COM_TYPE_SVR_VER_REQ+1; SvrSendBuff[4] = 0; SvrSendBuff[5] = 0; SvrSendBuff[6] = 0; SvrSendBuff[7] = new_ble_addr.addr[3]; SvrSendBuff[8] = new_ble_addr.addr[4]; SvrSendBuff[9] = new_ble_addr.addr[5]; SvrSendBuff[10] = 8; SvrSendBuff[11] = 0x00; //ver SvrSendBuff[12] = 0x01; SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; // NRF_LOG_INFO("Send Server ===> "); SendToEventServer(&SvrSendBuff[0], 20); // SystemManager.SwitchOn = 1; SystemManager.SwitchOn = 0; } } // »ç¿ë¾ÊÇÔ void SendEmergencyLocal() { SvrSendBuff[0] = COM_STX; SvrSendBuff[1] = COM_TYPE_SVR; SvrSendBuff[2] = 0; SvrSendBuff[3] = COM_TYPE_BELL_EMG; SvrSendBuff[4] = 0xaa; SvrSendBuff[5] = 0xaa; SvrSendBuff[6] = 0xaa; SvrSendBuff[7] = 0xbb; SvrSendBuff[8] = 0xbb; SvrSendBuff[9] = 0xbb; SvrSendBuff[10] = 8; SvrSendBuff[11] = 0; SvrSendBuff[12] = 0; SvrSendBuff[13] = 0; SvrSendBuff[14] = 0; SvrSendBuff[15] = 0; SvrSendBuff[16] = 0; SvrSendBuff[17] = 0; SvrSendBuff[18] = 0; SvrSendBuff[19] = COM_ETX; SendToEventServer(&SvrSendBuff[0], 20); SystemManager.SwitchOn = 1; PKBuzzerOn(); } // ¼Û½Å±â Å×½ºÆ® ¹öư´­·¶À»½Ã µ¿ÀÛ void AliveTest() { SystemManager.SwitchOn = 1; PKBuzzerOn(); SystemManager.LedBlinkRun = COM_TYPE_SVR_ALIVE; SystemManager.LedBlinkTimer = 3300; SystemTimer.LED_TOGGLE_TIMER = 0; } // »ç¿ë¾ÊÇÔ void SendTest() { if( SystemTimer.SEND_TEST_TIMER< 3000 ) return; SystemTimer.SEND_TEST_TIMER = 0; SendEmergency(); } void LedToggle() { static char toggle = 0; if( SystemManager.RegRequst ) { if( SystemTimer.DEV_REG_TIMER >= 60000 ) { SystemManager.RegRequst = 0; PKLedOff(); SystemManager.LedBlinkRun = 0; } } // ¼Û½Å±â µî·Ï¸ðµå½Ã Ç×»ó ON if( SystemManager.LedBlinkRun == COM_TYPE_SVR_RECV_REG ) { PKLedOn(); return; } if( SystemManager.LedBlinkRun == COM_TYPE_SVR_RECV_REG+1 ) { if( SystemManager.RegRequst == 1 ) { if( SystemManager.LedBlinkTimer < 0 ) { SystemManager.LedBlinkRun = COM_TYPE_SVR_RECV_REG; PKLedOn(); return; } } if( SystemTimer.LED_TOGGLE_TIMER < 500 ) return; SystemTimer.LED_TOGGLE_TIMER = 0; if( toggle++&0x01) { PKLedOn(); }else{ PKLedOff(); } } #if 0 if( SystemManager.LedBlinkRun == COM_TYPE_SVR_PARKING ) { if( SystemManager.LedBlinkTimer < 0 ) { SystemManager.LedBlinkRun = 0; PKLedOff(); return; } if( SystemTimer.LED_TOGGLE_TIMER < 500 ) return; SystemTimer.LED_TOGGLE_TIMER = 0; if( toggle++&0x01) { PKLedOn(); }else{ PKLedOff(); } } #endif #if 0 if( SystemManager.LedBlinkRun == COM_TYPE_SVR_RECV_INIT ) { if( SystemManager.LedBlinkTimer < 0 ) { SystemManager.LedBlinkRun = 0; PKLedOff(); return; } if( SystemTimer.LED_TOGGLE_TIMER < 500 ) return; SystemTimer.LED_TOGGLE_TIMER = 0; if( toggle++&0x01) { PKLedOn(); }else{ PKLedOff(); } } #endif #if 0 if( SystemManager.LedBlinkRun == COM_TYPE_SVR_RECV_LIST || SystemManager.LedBlinkRun == COM_TYPE_SVR_VER_REQ) { if( SystemManager.LedBlinkTimer < 0 ) { SystemManager.LedBlinkRun = 0; PKLedOff(); return; } if( SystemTimer.LED_TOGGLE_TIMER < 500 ) return; SystemTimer.LED_TOGGLE_TIMER = 0; if( toggle++&0x01) { PKLedOn(); }else{ PKLedOff(); } } #endif if( SystemManager.LedBlinkRun == COM_TYPE_SVR_ALIVE ) { if( SystemManager.LedBlinkTimer < 0 ) { SystemManager.LedBlinkRun = 0; PKLedOff(); PKBuzzerOff(); return; } if( SystemTimer.LED_TOGGLE_TIMER < 500 ) return; SystemTimer.LED_TOGGLE_TIMER = 0; if( toggle++&0x01) { PKLedOn(); }else{ PKLedOff(); } } if( SystemManager.SwitchOn == 0 ) return; if( SystemManager.LedBlinkRun == 0 ) return; #if 0 if( SystemManager.LedBlinkTimer < 0 ) { SystemManager.LedBlinkRun = 0; PKLedOff(); return; } #endif if( SystemTimer.LED_TOGGLE_TIMER < 500 ) return; SystemTimer.LED_TOGGLE_TIMER = 0; if( toggle++&0x01) { PKLedOn(); }else{ PKLedOff(); } }