|
|
@@ -1,2881 +1,3240 @@
|
|
|
-#define __UART_DEF
|
|
|
-#include"User.h"
|
|
|
+#define __UART_DEF
|
|
|
+#include "User.h"
|
|
|
|
|
|
/*******************************************************************************
|
|
|
* 函数名称:Check
|
|
|
*******************************************************************************/
|
|
|
-unsigned int Check(unsigned char *p,unsigned char num)
|
|
|
-{
|
|
|
- unsigned char i=0;
|
|
|
- unsigned int uiCheckSum=0;
|
|
|
- for(i=0;i<num;i++){
|
|
|
- uiCheckSum += *p;
|
|
|
- p++;
|
|
|
- }
|
|
|
- return uiCheckSum;
|
|
|
+#define OUTTIME2S 200
|
|
|
+#define OUTTIME60S 6000
|
|
|
+unsigned char g_ucTX_DMA[MAX_UART_BUFFER_SIZE] __attribute__((eds));
|
|
|
+
|
|
|
+uint32_t uart1_header = 0;
|
|
|
+uint32_t uart1_last = 0;
|
|
|
+uint32_t uart4_header = 0;
|
|
|
+uint32_t uart4_last = 0;
|
|
|
+uint32_t uart1_recOK = 0;
|
|
|
+
|
|
|
+
|
|
|
+extern unsigned int ms10_conter;
|
|
|
+unsigned int Check(unsigned char *p, unsigned char num) {
|
|
|
+ unsigned char i = 0;
|
|
|
+ unsigned int uiCheckSum = 0;
|
|
|
+ for (i = 0; i < num; i++) {
|
|
|
+ uiCheckSum += *p;
|
|
|
+ p++;
|
|
|
+ }
|
|
|
+ return uiCheckSum;
|
|
|
}
|
|
|
|
|
|
-void InitUart1(void){
|
|
|
- U1MODEbits.STSEL = 0;
|
|
|
- U1MODEbits.PDSEL = 0;
|
|
|
- U1MODEbits.BRGH = 0;
|
|
|
- U1MODEbits.ABAUD = 0;
|
|
|
- U1MODEbits.LPBACK = 0;
|
|
|
-
|
|
|
- // U1BRG = 31;
|
|
|
-// U1BRG = 259;
|
|
|
- U1BRG =0x67;
|
|
|
-
|
|
|
- U1STAbits.UTXISEL0 = 1;
|
|
|
- U1STAbits.UTXISEL1 = 0;
|
|
|
- U1STAbits.URXISEL = 0;
|
|
|
-
|
|
|
- IEC0bits.U1TXIE = 0;
|
|
|
- IEC0bits.U1RXIE = 1;
|
|
|
- U1MODEbits.UARTEN = 1;
|
|
|
- U1STAbits.UTXEN = 1;
|
|
|
- IPC2bits.U1RXIP = 7;
|
|
|
- IPC3bits.U1TXIP = 7;
|
|
|
-
|
|
|
+void InitUart1(void) {
|
|
|
+ U1MODEbits.STSEL = 0;
|
|
|
+ U1MODEbits.PDSEL = 0;
|
|
|
+ U1MODEbits.BRGH = 0;
|
|
|
+ U1MODEbits.ABAUD = 0;
|
|
|
+ U1MODEbits.LPBACK = 0;
|
|
|
+
|
|
|
+ // U1BRG = 31;
|
|
|
+ // U1BRG = 259;
|
|
|
+ U1BRG = 0x67;
|
|
|
+
|
|
|
+ U1STAbits.UTXISEL1 = 0;
|
|
|
+ U1STAbits.UTXISEL0 = 1;
|
|
|
+ U1STAbits.URXISEL = 0;
|
|
|
+
|
|
|
+ IEC0bits.U1TXIE = 0;
|
|
|
+ IEC0bits.U1RXIE = 1;
|
|
|
+ U1MODEbits.UARTEN = 1;
|
|
|
+ U1STAbits.UTXEN = 1;
|
|
|
+ IPC2bits.U1RXIP = 7;
|
|
|
+ IPC3bits.U1TXIP = 7;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ _U1TXIF = 0; // Clear UART TX IF to prevent erroneous DMA operation
|
|
|
+ // Configure DMA channel
|
|
|
+ DMACH5 = 0;
|
|
|
+ DMACH5bits.SAMODE = 1; // Source Address incremented after operation
|
|
|
+ DMACH5bits.DAMODE = 0; // Destination Address unchanged after operation
|
|
|
+ DMACH5bits.TRMODE = 0; // One Shot Mode
|
|
|
+ DMACH5bits.SIZE = 1; // Transfer size of 1 byte
|
|
|
+
|
|
|
+ DMAINT5 = 0;
|
|
|
+ DMAINT5bits.CHSEL = 68; // DMA Trigger is U1 TX Interrupt
|
|
|
+
|
|
|
+ DMADST5 = (uint16_t)&U1TXREG;
|
|
|
+
|
|
|
+ // Set up interrupts and interrupt priorities as desired
|
|
|
+ _DMA5IF = 0;
|
|
|
+ _DMA5IE = 0;
|
|
|
+ _DMA5IP = 3;
|
|
|
+
|
|
|
+ _U1RXIF = 0;
|
|
|
+ _U1RXIE = 1;
|
|
|
+ _U1RXIP = 3;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
-void InitUart2(void){
|
|
|
-
|
|
|
-
|
|
|
- U2MODEbits.STSEL=0;
|
|
|
- U2MODEbits.PDSEL=0;
|
|
|
- U2MODEbits.BRGH=0;
|
|
|
- U2MODEbits.ABAUD=0;
|
|
|
- U2MODEbits.LPBACK=0;
|
|
|
-
|
|
|
- U2BRG = 0x67;
|
|
|
-
|
|
|
- U2STAbits.UTXISEL1=0;
|
|
|
- U2STAbits.UTXISEL0=1;
|
|
|
- U2STAbits.URXISEL=1;
|
|
|
-
|
|
|
- IEC1bits.U2TXIE = 0;
|
|
|
- IEC1bits.U2RXIE = 1;
|
|
|
- U2MODEbits.UARTEN=1;
|
|
|
- U2STAbits.UTXEN=1;
|
|
|
- IPC7bits.U2RXIP = 6;
|
|
|
- IPC7bits.U2TXIP = 6;
|
|
|
-
|
|
|
+void InitUart2(void) {
|
|
|
+
|
|
|
+ U2MODEbits.STSEL = 0;
|
|
|
+ U2MODEbits.PDSEL = 0;
|
|
|
+ U2MODEbits.BRGH = 0;
|
|
|
+ U2MODEbits.ABAUD = 0;
|
|
|
+ U2MODEbits.LPBACK = 0;
|
|
|
+
|
|
|
+ U2BRG = 0x67;
|
|
|
+
|
|
|
+ U2STAbits.UTXISEL1 = 0;
|
|
|
+ U2STAbits.UTXISEL0 = 1;
|
|
|
+ U2STAbits.URXISEL = 1;
|
|
|
+
|
|
|
+ IEC1bits.U2TXIE = 0;
|
|
|
+ IEC1bits.U2RXIE = 1;
|
|
|
+ U2MODEbits.UARTEN = 1;
|
|
|
+ U2STAbits.UTXEN = 1;
|
|
|
+ IPC7bits.U2RXIP = 6;
|
|
|
+ IPC7bits.U2TXIP = 6;
|
|
|
}
|
|
|
-void InitUart3(void){
|
|
|
-
|
|
|
-
|
|
|
- U3MODEbits.STSEL=0;
|
|
|
- U3MODEbits.PDSEL=0;
|
|
|
- U3MODEbits.BRGH=0;
|
|
|
- U3MODEbits.ABAUD=0;
|
|
|
- U3MODEbits.LPBACK=0;
|
|
|
-
|
|
|
- U3BRG = 0x67;
|
|
|
-
|
|
|
- U3STAbits.UTXISEL1=0;
|
|
|
- U3STAbits.UTXISEL0=1;
|
|
|
- U3STAbits.URXISEL=1;
|
|
|
-
|
|
|
- IEC5bits.U3TXIE = 0;
|
|
|
- IEC5bits.U3RXIE = 1;
|
|
|
- U3MODEbits.UARTEN=1;
|
|
|
- U3STAbits.UTXEN=1;
|
|
|
- IPC20bits.U3RXIP = 6;
|
|
|
- IPC20bits.U3TXIP = 6;
|
|
|
-
|
|
|
+void InitUart3(void) {
|
|
|
+
|
|
|
+ U3MODEbits.STSEL = 0;
|
|
|
+ U3MODEbits.PDSEL = 0;
|
|
|
+ U3MODEbits.BRGH = 0;
|
|
|
+ U3MODEbits.ABAUD = 0;
|
|
|
+ U3MODEbits.LPBACK = 0;
|
|
|
+
|
|
|
+ U3BRG = 0x67;
|
|
|
+
|
|
|
+ U3STAbits.UTXISEL1 = 0;
|
|
|
+ U3STAbits.UTXISEL0 = 1;
|
|
|
+ U3STAbits.URXISEL = 0;
|
|
|
+
|
|
|
+ IEC5bits.U3TXIE = 0;
|
|
|
+ IEC5bits.U3RXIE = 1;
|
|
|
+ U3MODEbits.UARTEN = 1;
|
|
|
+ U3STAbits.UTXEN = 1;
|
|
|
+ IPC20bits.U3RXIP = 6;
|
|
|
+ IPC20bits.U3TXIP = 6;
|
|
|
}
|
|
|
-void InitUart4(void){
|
|
|
-
|
|
|
-
|
|
|
- U4MODEbits.STSEL=0;
|
|
|
- U4MODEbits.PDSEL=0;
|
|
|
- U4MODEbits.BRGH=0;
|
|
|
- U4MODEbits.ABAUD=0;
|
|
|
- U4MODEbits.LPBACK=0;
|
|
|
-
|
|
|
- U4BRG = 0x67;
|
|
|
-
|
|
|
- U4STAbits.UTXISEL1=0;
|
|
|
- U4STAbits.UTXISEL0=1;
|
|
|
- U4STAbits.URXISEL=1;
|
|
|
-
|
|
|
- IEC5bits.U4TXIE = 0;
|
|
|
- IEC5bits.U4RXIE = 1;
|
|
|
- U4MODEbits.UARTEN=1;
|
|
|
- U4STAbits.UTXEN=1;
|
|
|
- IPC22bits.U4RXIP = 6;
|
|
|
- IPC22bits.U4TXIP = 6;
|
|
|
-
|
|
|
+void InitUart4(void) {
|
|
|
+
|
|
|
+ U4MODEbits.STSEL = 0;
|
|
|
+ U4MODEbits.PDSEL = 0;
|
|
|
+ U4MODEbits.BRGH = 0;
|
|
|
+ U4MODEbits.ABAUD = 0;
|
|
|
+ U4MODEbits.LPBACK = 0;
|
|
|
+
|
|
|
+ U4BRG = 0x67;
|
|
|
+
|
|
|
+ U4STAbits.UTXISEL1 = 0;
|
|
|
+ U4STAbits.UTXISEL0 = 1;
|
|
|
+ U4STAbits.URXISEL = 1;
|
|
|
+
|
|
|
+ IEC5bits.U4TXIE = 0;
|
|
|
+ IEC5bits.U4RXIE = 1;
|
|
|
+ U4MODEbits.UARTEN = 1;
|
|
|
+ U4STAbits.UTXEN = 1;
|
|
|
+ IPC22bits.U4RXIP = 6;
|
|
|
+ IPC22bits.U4TXIP = 6;
|
|
|
+
|
|
|
+
|
|
|
+ _U4TXIF = 0; // Clear UART TX IF to prevent erroneous DMA operation
|
|
|
+ // Configure DMA channel
|
|
|
+ DMACH4 = 0;
|
|
|
+ DMACH4bits.SAMODE = 1; // Source Address incremented after operation
|
|
|
+ DMACH4bits.DAMODE = 0; // Destination Address unchanged after operation
|
|
|
+ DMACH4bits.TRMODE = 0; // One Shot Mode
|
|
|
+ DMACH4bits.SIZE = 1; // Transfer size of 1 byte
|
|
|
+
|
|
|
+ DMAINT4 = 0;
|
|
|
+ DMAINT4bits.CHSEL = 59; // DMA Trigger is U4 TX Interrupt
|
|
|
+
|
|
|
+ DMADST4 = (uint16_t)&U4TXREG;
|
|
|
+
|
|
|
+ // Set up interrupts and interrupt priorities as desired
|
|
|
+ _DMA4IF = 0;
|
|
|
+ _DMA4IE = 0;
|
|
|
+ _DMA4IP = 3;
|
|
|
+
|
|
|
+ _U4RXIF = 0;
|
|
|
+ _U4RXIE = 1;
|
|
|
+ _U4RXIP = 3;
|
|
|
+
|
|
|
}
|
|
|
-void InitUart5(void){
|
|
|
-
|
|
|
-
|
|
|
- U5MODEbits.STSEL=0;
|
|
|
- U5MODEbits.PDSEL=0;
|
|
|
- U5MODEbits.BRGH=0;
|
|
|
- U5MODEbits.ABAUD=0;
|
|
|
- U5MODEbits.LPBACK=0;
|
|
|
-
|
|
|
- U5BRG = 0x67;
|
|
|
-
|
|
|
- U5STAbits.UTXISEL1=0;
|
|
|
- U5STAbits.UTXISEL0=1;
|
|
|
- U5STAbits.URXISEL=1;
|
|
|
-
|
|
|
- IEC7bits.U5TXIE = 0;
|
|
|
- IEC6bits.U5RXIE = 1;
|
|
|
- U5MODEbits.UARTEN=1;
|
|
|
- U5STAbits.UTXEN=1;
|
|
|
- IPC27bits.U5RXIP = 6;
|
|
|
- IPC28bits.U5TXIP = 6;
|
|
|
-
|
|
|
+void InitUart5(void) {
|
|
|
+
|
|
|
+ U5MODEbits.STSEL = 0;
|
|
|
+ U5MODEbits.PDSEL = 0;
|
|
|
+ U5MODEbits.BRGH = 0;
|
|
|
+ U5MODEbits.ABAUD = 0;
|
|
|
+ U5MODEbits.LPBACK = 0;
|
|
|
+
|
|
|
+ U5BRG = 0x67;
|
|
|
+
|
|
|
+ U5STAbits.UTXISEL1 = 0;
|
|
|
+ U5STAbits.UTXISEL0 = 1;
|
|
|
+ U5STAbits.URXISEL = 1;
|
|
|
+
|
|
|
+ IEC7bits.U5TXIE = 0;
|
|
|
+ IEC6bits.U5RXIE = 1;
|
|
|
+ U5MODEbits.UARTEN = 1;
|
|
|
+ U5STAbits.UTXEN = 1;
|
|
|
+ IPC27bits.U5RXIP = 6;
|
|
|
+ IPC28bits.U5TXIP = 6;
|
|
|
}
|
|
|
-void InitUart6(void){
|
|
|
-
|
|
|
-
|
|
|
- U6MODEbits.STSEL=0;
|
|
|
- U6MODEbits.PDSEL=0;
|
|
|
- U6MODEbits.BRGH=0;
|
|
|
- U6MODEbits.ABAUD=0;
|
|
|
- U6MODEbits.LPBACK=0;
|
|
|
-
|
|
|
- U6BRG = 0x67;
|
|
|
-
|
|
|
- U6STAbits.UTXISEL1=0;
|
|
|
- U6STAbits.UTXISEL0=1;
|
|
|
- U6STAbits.URXISEL=1;
|
|
|
-
|
|
|
- IEC7bits.U6TXIE = 0;
|
|
|
- IEC7bits.U6RXIE = 1;
|
|
|
- U6MODEbits.UARTEN=1;
|
|
|
- U6STAbits.UTXEN=1;
|
|
|
- IPC28bits.U6RXIP = 6;
|
|
|
- IPC28bits.U6TXIP = 6;
|
|
|
-
|
|
|
+void InitUart6(void) {
|
|
|
+
|
|
|
+ U6MODEbits.STSEL = 0;
|
|
|
+ U6MODEbits.PDSEL = 0;
|
|
|
+ U6MODEbits.BRGH = 0;
|
|
|
+ U6MODEbits.ABAUD = 0;
|
|
|
+ U6MODEbits.LPBACK = 0;
|
|
|
+
|
|
|
+ U6BRG = 0x67;
|
|
|
+
|
|
|
+ U6STAbits.UTXISEL1 = 0;
|
|
|
+ U6STAbits.UTXISEL0 = 1;
|
|
|
+ U6STAbits.URXISEL = 1;
|
|
|
+
|
|
|
+ IEC7bits.U6TXIE = 0;
|
|
|
+ IEC7bits.U6RXIE = 1;
|
|
|
+ U6MODEbits.UARTEN = 1;
|
|
|
+ U6STAbits.UTXEN = 1;
|
|
|
+ IPC28bits.U6RXIP = 6;
|
|
|
+ IPC28bits.U6TXIP = 6;
|
|
|
}
|
|
|
-void UART1SEND(char data)
|
|
|
-{
|
|
|
- U1TXREG = data;
|
|
|
- while(!IFS0bits.U1TXIF);
|
|
|
- IFS0bits.U1TXIF=0;
|
|
|
+void UART1SEND(char data) {
|
|
|
+ if (g_CmdFrom_UartNum == 1) {
|
|
|
+ U1TXREG = data;
|
|
|
+ while (!IFS0bits.U1TXIF)
|
|
|
+ ;
|
|
|
+ IFS0bits.U1TXIF = 0;
|
|
|
+ } else {
|
|
|
+ U4TXREG = data;
|
|
|
+ while (!IFS5bits.U4TXIF)
|
|
|
+ ;
|
|
|
+ IFS5bits.U4TXIF = 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+void UART1SendDma(unsigned char *txData, unsigned int len) {
|
|
|
+ for (unsigned int i = 0; i < len; i++) {
|
|
|
+ g_ucTX_DMA[i] = txData[i];
|
|
|
+ }
|
|
|
+ if (g_CmdFrom_UartNum == 1) {
|
|
|
+ while (DMACH5bits.CHEN);
|
|
|
+ DMASRC5 = (uint16_t)g_ucTX_DMA;
|
|
|
+ DMACNT5 = len;
|
|
|
+ DMACH5bits.CHEN = 1; // Enable DMA Channel
|
|
|
+ DMACH5bits.CHREQ = 1; // Start DMA Operation
|
|
|
+ } else {
|
|
|
+ while (DMACH4bits.CHEN);
|
|
|
+ DMASRC4 = (uint16_t)g_ucTX_DMA;
|
|
|
+ DMACNT4 = len;
|
|
|
+ DMACH4bits.CHEN = 1; // Enable DMA Channel
|
|
|
+ DMACH4bits.CHREQ = 1; // Start DMA Operation
|
|
|
+ }
|
|
|
}
|
|
|
-void Uart1_Receive(char num){
|
|
|
|
|
|
- U1TXREG = num;
|
|
|
- while(!U1STAbits.TRMT);
|
|
|
- IFS0bits.U1RXIF=0;
|
|
|
+void Uart1_Receive(char num) {
|
|
|
+
|
|
|
+ U1TXREG = num;
|
|
|
+ while (!U1STAbits.TRMT)
|
|
|
+ ;
|
|
|
+ IFS0bits.U1RXIF = 0;
|
|
|
}
|
|
|
-void UART2SEND(char data)
|
|
|
-{
|
|
|
- U2TXREG = data;
|
|
|
- while(!IFS1bits.U2TXIF);
|
|
|
- IFS1bits.U2TXIF=0;
|
|
|
+void UART2SEND(char data) {
|
|
|
+ U2TXREG = data;
|
|
|
+ while (!IFS1bits.U2TXIF)
|
|
|
+ ;
|
|
|
+ IFS1bits.U2TXIF = 0;
|
|
|
}
|
|
|
-void Uart2_Receive(char num){
|
|
|
+void Uart2_Receive(char num) {
|
|
|
|
|
|
- U2TXREG = num;
|
|
|
- while(!U2STAbits.TRMT);
|
|
|
- IFS1bits.U2RXIF=0;
|
|
|
+ U2TXREG = num;
|
|
|
+ while (!U2STAbits.TRMT)
|
|
|
+ ;
|
|
|
+ IFS1bits.U2RXIF = 0;
|
|
|
}
|
|
|
-void UART3SEND(char data)
|
|
|
-{
|
|
|
- U3TXREG = data;
|
|
|
- while(!IFS5bits.U3TXIF);
|
|
|
- IFS5bits.U3TXIF=0;
|
|
|
+void UART3SEND(char data) {
|
|
|
+ U3TXREG = data;
|
|
|
+ while (!IFS5bits.U3TXIF)
|
|
|
+ ;
|
|
|
+ IFS5bits.U3TXIF = 0;
|
|
|
}
|
|
|
-void Uart3_Receive(char num){
|
|
|
+void Uart3_Receive(char num) {
|
|
|
|
|
|
- U3TXREG = num;
|
|
|
- while(!U3STAbits.TRMT);
|
|
|
- IFS5bits.U3RXIF=0;
|
|
|
+ U3TXREG = num;
|
|
|
+ while (!U3STAbits.TRMT)
|
|
|
+ ;
|
|
|
+ IFS5bits.U3RXIF = 0;
|
|
|
}
|
|
|
-void UART4SEND(char data)
|
|
|
-{
|
|
|
- U4TXREG = data;
|
|
|
- while(!IFS5bits.U4TXIF);
|
|
|
- IFS5bits.U4TXIF=0;
|
|
|
+void UART4SEND(char data) {
|
|
|
+ U4TXREG = data;
|
|
|
+ while (!IFS5bits.U4TXIF)
|
|
|
+ ;
|
|
|
+ IFS5bits.U4TXIF = 0;
|
|
|
}
|
|
|
-void Uart4_Receive(char num){
|
|
|
+void Uart4_Receive(char num) {
|
|
|
|
|
|
- U4TXREG = num;
|
|
|
- while(!U4STAbits.TRMT);
|
|
|
- IFS5bits.U4RXIF=0;
|
|
|
+ U4TXREG = num;
|
|
|
+ while (!U4STAbits.TRMT)
|
|
|
+ ;
|
|
|
+ IFS5bits.U4RXIF = 0;
|
|
|
}
|
|
|
-void UART5SEND(char data)
|
|
|
-{
|
|
|
- U5TXREG = data;
|
|
|
- while(!IFS7bits.U5TXIF);
|
|
|
- IFS7bits.U5TXIF=0;
|
|
|
+void UART5SEND(char data) {
|
|
|
+ U5TXREG = data;
|
|
|
+ while (!IFS7bits.U5TXIF)
|
|
|
+ ;
|
|
|
+ IFS7bits.U5TXIF = 0;
|
|
|
}
|
|
|
-void Uart5_Receive(char num){
|
|
|
+void Uart5_Receive(char num) {
|
|
|
|
|
|
- U5TXREG = num;
|
|
|
- while(!U5STAbits.TRMT);
|
|
|
- IFS6bits.U5RXIF=0;
|
|
|
+ U5TXREG = num;
|
|
|
+ while (!U5STAbits.TRMT)
|
|
|
+ ;
|
|
|
+ IFS6bits.U5RXIF = 0;
|
|
|
}
|
|
|
-void UART6SEND(char data)
|
|
|
-{
|
|
|
- U6TXREG = data;
|
|
|
- while(!IFS7bits.U6TXIF);
|
|
|
- IFS7bits.U6TXIF=0;
|
|
|
+void UART6SEND(char data) {
|
|
|
+ U6TXREG = data;
|
|
|
+ while (!IFS7bits.U6TXIF)
|
|
|
+ ;
|
|
|
+ IFS7bits.U6TXIF = 0;
|
|
|
}
|
|
|
-void Uart6_Receive(char num){
|
|
|
+void Uart6_Receive(char num) {
|
|
|
|
|
|
- U6TXREG = num;
|
|
|
- while(!U6STAbits.TRMT);
|
|
|
- IFS7bits.U6RXIF=0;
|
|
|
+ U6TXREG = num;
|
|
|
+ while (!U6STAbits.TRMT)
|
|
|
+ ;
|
|
|
+ IFS7bits.U6RXIF = 0;
|
|
|
}
|
|
|
|
|
|
+void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt(void) {
|
|
|
+ IFS0bits.U1RXIF = 0;
|
|
|
+ g_ucU1RX_Buf[uart1_last++] = U1RXREG;
|
|
|
+ if(uart1_last == MAX_UART_BUFFER_SIZE){
|
|
|
+ uart1_last = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+// g_ucU1RX_Data[g_uiUart1_No] = U1RXREG;
|
|
|
+// if (g_BUSY1 == 1)
|
|
|
+// return;
|
|
|
+// if (g_ucHeaderFlag1 == 0) {
|
|
|
+// if (g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD) {
|
|
|
+// g_ucHeaderFlag1 = 1;
|
|
|
+// g_ucU1RX_Data[0] = FRAME_HEAD;
|
|
|
+// g_uiUart1_No = 1;
|
|
|
+// } else {
|
|
|
+// g_BUSY1 = 0;
|
|
|
+// }
|
|
|
+// } else if (g_ucHeaderFlag1 == 1) {
|
|
|
+// g_uiUart1_No++;
|
|
|
+// }
|
|
|
+// if (g_uiUart1_No > (FRAME_LTHH_INDEX + 1)) {
|
|
|
+// g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
|
|
|
+// if (g_uiUart1_No == g_uiLth1) {
|
|
|
+// g_ulRSUM1 = Check(g_ucU1RX_Data, g_uiLth1 - 1);
|
|
|
+// g_ucCRC1 = (unsigned char)g_ulRSUM1;
|
|
|
+// if (g_ucCRC1 == g_ucU1RX_Data[g_uiLth1 - 1]) {
|
|
|
+// g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
|
|
|
+// g_ucUART1_flag = 1;
|
|
|
+// g_CmdFrom_UartNum = 1;
|
|
|
+// g_ulRSUM1 = 0;
|
|
|
+// g_uiUart1_No = 0;
|
|
|
+// g_ucHeaderFlag1 = 0;
|
|
|
+// g_BUSY1 = 1;
|
|
|
+// } else {
|
|
|
+// memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
|
|
|
+// g_BUSY1 = 0;
|
|
|
+// }
|
|
|
+// } else if (g_uiUart1_No > g_uiLth1) {
|
|
|
+// g_uiUart1_No = 0;
|
|
|
+// g_ucHeaderFlag1 = 0;
|
|
|
+// g_BUSY1 = 0;
|
|
|
+// }
|
|
|
+// }
|
|
|
+}
|
|
|
|
|
|
-
|
|
|
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U1RXInterrupt( void ){
|
|
|
- IFS0bits.U1RXIF = 0;
|
|
|
- g_ucU1RX_Data[g_uiUart1_No] = U1RXREG;
|
|
|
- if(g_BUSY1 == 1) return;
|
|
|
- if(g_ucHeaderFlag1 == 0){
|
|
|
- if(g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD){
|
|
|
- g_ucHeaderFlag1 = 1;
|
|
|
- g_ucU1RX_Data[0] = FRAME_HEAD;
|
|
|
- g_uiUart1_No = 1;
|
|
|
- }else{
|
|
|
- g_BUSY1 = 0;
|
|
|
- }
|
|
|
- }else if(g_ucHeaderFlag1 == 1){
|
|
|
- g_uiUart1_No++;
|
|
|
- }
|
|
|
- if(g_uiUart1_No > (FRAME_LTHH_INDEX+1)){
|
|
|
- g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
|
|
|
- if(g_uiUart1_No == g_uiLth1){
|
|
|
- g_ulRSUM1 = Check(g_ucU1RX_Data,g_uiLth1-1);
|
|
|
- g_ucCRC1 = (unsigned char)g_ulRSUM1;
|
|
|
- if(g_ucCRC1 == g_ucU1RX_Data[g_uiLth1-1]){
|
|
|
- g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
|
|
|
- g_ucUART1_flag = 1;
|
|
|
- g_ulRSUM1 = 0;
|
|
|
- g_uiUart1_No = 0;
|
|
|
- g_ucHeaderFlag1 = 0;
|
|
|
- g_BUSY1 = 1;
|
|
|
- }else{
|
|
|
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
|
|
|
- g_BUSY1 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart1_No > g_uiLth1){
|
|
|
- g_uiUart1_No = 0;
|
|
|
- g_ucHeaderFlag1 = 0;
|
|
|
- g_BUSY1 = 0;
|
|
|
- }
|
|
|
+void __attribute__((interrupt, no_auto_psv)) _U2RXInterrupt(void) {
|
|
|
+ IFS1bits.U2RXIF = 0;
|
|
|
+ g_ucU2RX_Data[g_uiUart2_No] = U2RXREG;
|
|
|
+ if (g_BUSY2 == 1)
|
|
|
+ return;
|
|
|
+ if (g_ucHeaderFlag2 == 0) {
|
|
|
+ if (g_ucU2RX_Data[g_uiUart2_No] == FRAME_HEAD) {
|
|
|
+ g_ucHeaderFlag2 = 1;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_uiUart2_No = 1;
|
|
|
+ } else {
|
|
|
+ g_BUSY2 = 0;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ } else if (g_ucHeaderFlag2 == 1) {
|
|
|
+ g_uiUart2_No++;
|
|
|
+ }
|
|
|
+ if (g_uiUart2_No > (FRAME_LTHH_INDEX + 1)) {
|
|
|
+ g_uiLth2 = g_ucU2RX_Data[FRAME_LTHH_INDEX];
|
|
|
+ if (g_uiUart2_No == g_uiLth2) {
|
|
|
+ g_ulRSUM2 = Check(g_ucU2RX_Data, g_uiLth2 - 1);
|
|
|
+ g_ucCRC2 = (unsigned char)g_ulRSUM2;
|
|
|
+ if (g_ucCRC2 == g_ucU2RX_Data[g_uiLth2 - 1]) {
|
|
|
+ g_ucCMD2 = g_ucU2RX_Data[FRAME_CMD_INDEX];
|
|
|
+ g_ucUART2_flag = 1;
|
|
|
+ g_ulRSUM2 = 0;
|
|
|
+ g_uiUart2_No = 0;
|
|
|
+ g_ucHeaderFlag2 = 0;
|
|
|
+ g_BUSY2 = 1;
|
|
|
+ } else {
|
|
|
+ memset(g_ucU2RX_Data, 0, g_uiLth2 * sizeof(unsigned char));
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ }
|
|
|
+ } else if (g_uiUart2_No > g_uiLth2) {
|
|
|
+ g_uiUart2_No = 0;
|
|
|
+ g_ucHeaderFlag2 = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U2RXInterrupt( void ){
|
|
|
- IFS1bits.U2RXIF = 0;
|
|
|
- g_ucU2RX_Data[g_uiUart2_No] = U2RXREG;
|
|
|
- if(g_BUSY2 == 1) return;
|
|
|
- if(g_ucHeaderFlag2 == 0){
|
|
|
- if(g_ucU2RX_Data[g_uiUart2_No] == FRAME_HEAD){
|
|
|
- g_ucHeaderFlag2 = 1;
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_uiUart2_No = 1;
|
|
|
- }else{
|
|
|
- g_BUSY2 = 0;
|
|
|
- }
|
|
|
- }else if(g_ucHeaderFlag2 == 1){
|
|
|
- g_uiUart2_No++;
|
|
|
- }
|
|
|
- if(g_uiUart2_No > (FRAME_LTHH_INDEX+1)){
|
|
|
- g_uiLth2 = g_ucU2RX_Data[FRAME_LTHH_INDEX];
|
|
|
- if(g_uiUart2_No == g_uiLth2){
|
|
|
- g_ulRSUM2 = Check(g_ucU2RX_Data,g_uiLth2-1);
|
|
|
- g_ucCRC2 = (unsigned char)g_ulRSUM2;
|
|
|
- if(g_ucCRC2 == g_ucU2RX_Data[g_uiLth2-1]){
|
|
|
- g_ucCMD2 = g_ucU2RX_Data[FRAME_CMD_INDEX];
|
|
|
- g_ucUART2_flag = 1;
|
|
|
- g_ulRSUM2 = 0;
|
|
|
- g_uiUart2_No = 0;
|
|
|
- g_ucHeaderFlag2 = 0;
|
|
|
- g_BUSY2 = 1;
|
|
|
- } else{
|
|
|
- memset(g_ucU2RX_Data,0,g_uiLth2*sizeof(unsigned char));
|
|
|
- g_BUSY2 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart2_No > g_uiLth2){
|
|
|
- g_uiUart2_No = 0;
|
|
|
- g_ucHeaderFlag2 = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- }
|
|
|
+
|
|
|
+void __attribute__((interrupt, no_auto_psv)) _U3RXInterrupt(void) {
|
|
|
+ IFS5bits.U3RXIF = 0;
|
|
|
+ g_ucU3RX_Data[g_uiUart3_No] = U3RXREG;
|
|
|
+ if (g_BUSY3 == 1)
|
|
|
+ return;
|
|
|
+ if (g_ucHeaderFlag3 == 0) {
|
|
|
+ if (g_ucU3RX_Data[g_uiUart3_No] == FRAME_HEAD1) {
|
|
|
+ g_ucHeaderFlag3 = 1;
|
|
|
+ g_ucU3RX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_uiUart3_No = 1;
|
|
|
+ } else {
|
|
|
+ g_BUSY3 = 0;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ } else if (g_ucHeaderFlag3 == 1) {
|
|
|
+ g_uiUart3_No++;
|
|
|
+ }
|
|
|
+ if (g_uiUart3_No > 5) {
|
|
|
+ g_uiLth3 = g_ucU3RX_Data[4];
|
|
|
+ if (g_uiUart3_No == g_uiLth3) {
|
|
|
+ g_ulRSUM3 = Check(g_ucU3RX_Data, g_uiLth3 - 1);
|
|
|
+ g_ucCRC3 = (unsigned char)g_ulRSUM3;
|
|
|
+ if (g_ucCRC3 == g_ucU3RX_Data[g_uiLth3 - 1]) {
|
|
|
+ g_ucUART3_flag = 1;
|
|
|
+ g_ulRSUM3 = 0;
|
|
|
+ g_uiUart3_No = 0;
|
|
|
+ g_ucHeaderFlag3 = 0;
|
|
|
+ g_BUSY3 = 1;
|
|
|
+ } else {
|
|
|
+ memset(g_ucU3RX_Data, 0, g_uiLth3 * sizeof(unsigned char));
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ }
|
|
|
+ } else if (g_uiUart3_No > g_uiLth3) {
|
|
|
+ g_uiUart3_No = 0;
|
|
|
+ g_ucHeaderFlag3 = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U3RXInterrupt( void ){
|
|
|
- IFS5bits.U3RXIF = 0;
|
|
|
- g_ucU3RX_Data[g_uiUart3_No] = U3RXREG;
|
|
|
- if(g_BUSY3 == 1) return;
|
|
|
- if(g_ucHeaderFlag3 == 0){
|
|
|
- if(g_ucU3RX_Data[g_uiUart3_No] == FRAME_HEAD1){
|
|
|
- g_ucHeaderFlag3 = 1;
|
|
|
- g_ucU3RX_Data[0] = FRAME_HEAD1;
|
|
|
- g_uiUart3_No = 1;
|
|
|
- }else{
|
|
|
- g_BUSY3 = 0;
|
|
|
- }
|
|
|
- }else if(g_ucHeaderFlag3 == 1){
|
|
|
- g_uiUart3_No++;
|
|
|
- }
|
|
|
- if(g_uiUart3_No > 5){
|
|
|
- g_uiLth3 = g_ucU3RX_Data[4];
|
|
|
- if(g_uiUart3_No == g_uiLth3){
|
|
|
- g_ulRSUM3 = Check(g_ucU3RX_Data,g_uiLth3-1);
|
|
|
- g_ucCRC3 = (unsigned char)g_ulRSUM3;
|
|
|
- if(g_ucCRC3 == g_ucU3RX_Data[g_uiLth3-1]){
|
|
|
- g_ucUART3_flag = 1;
|
|
|
- g_ulRSUM3 = 0;
|
|
|
- g_uiUart3_No = 0;
|
|
|
- g_ucHeaderFlag3 = 0;
|
|
|
- g_BUSY3 = 1;
|
|
|
- } else{
|
|
|
- memset(g_ucU3RX_Data,0,g_uiLth3*sizeof(unsigned char));
|
|
|
- g_BUSY3 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart3_No > g_uiLth3){
|
|
|
- g_uiUart3_No = 0;
|
|
|
- g_ucHeaderFlag3 = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- }
|
|
|
+void __attribute__((interrupt, no_auto_psv)) _U4RXInterrupt(void) {
|
|
|
+ IFS5bits.U4RXIF = 0;
|
|
|
+
|
|
|
+ g_ucU4RX_Buf[uart4_last++] = U4RXREG;
|
|
|
+ if(uart4_last == MAX_UART_BUFFER_SIZE){
|
|
|
+ uart4_last = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+//
|
|
|
+// g_ucU1RX_Data[g_uiUart1_No] = U4RXREG;
|
|
|
+// if (g_BUSY1 == 1)
|
|
|
+// return;
|
|
|
+// if (g_ucHeaderFlag1 == 0) {
|
|
|
+// if (g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD) {
|
|
|
+// g_ucHeaderFlag1 = 1;
|
|
|
+// g_ucU1RX_Data[0] = FRAME_HEAD;
|
|
|
+// g_uiUart1_No = 1;
|
|
|
+// } else {
|
|
|
+// g_BUSY1 = 0;
|
|
|
+// }
|
|
|
+// } else if (g_ucHeaderFlag1 == 1) {
|
|
|
+// g_uiUart1_No++;
|
|
|
+// }
|
|
|
+// if (g_uiUart1_No > (FRAME_LTHH_INDEX + 1)) {
|
|
|
+// g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
|
|
|
+// if (g_uiUart1_No == g_uiLth1) {
|
|
|
+// g_ulRSUM1 = Check(g_ucU1RX_Data, g_uiLth1 - 1);
|
|
|
+// g_ucCRC1 = (unsigned char)g_ulRSUM1;
|
|
|
+// if (g_ucCRC1 == g_ucU1RX_Data[g_uiLth1 - 1]) {
|
|
|
+// g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
|
|
|
+// g_ucUART1_flag = 1;
|
|
|
+// g_CmdFrom_UartNum = 4;
|
|
|
+// g_ulRSUM1 = 0;
|
|
|
+// g_uiUart1_No = 0;
|
|
|
+// g_ucHeaderFlag1 = 0;
|
|
|
+// g_BUSY1 = 1;
|
|
|
+// } else {
|
|
|
+// memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
|
|
|
+// g_BUSY1 = 0;
|
|
|
+// }
|
|
|
+// } else if (g_uiUart1_No > g_uiLth1) {
|
|
|
+// g_uiUart1_No = 0;
|
|
|
+// g_ucHeaderFlag1 = 0;
|
|
|
+// g_BUSY1 = 0;
|
|
|
+// }
|
|
|
+// }
|
|
|
+}
|
|
|
+
|
|
|
+void __attribute__((interrupt, no_auto_psv)) _U5RXInterrupt(void) { //√
|
|
|
+ IFS6bits.U5RXIF = 0;
|
|
|
+ g_ucU5RX_Data[g_uiUart5_No] = U5RXREG;
|
|
|
+ if (g_BUSY5 == 1)
|
|
|
+ return;
|
|
|
+ if (g_ucHeaderFlag5 == 0) {
|
|
|
+ if (g_ucU5RX_Data[g_uiUart5_No] == FRAME_HEAD) {
|
|
|
+ g_ucHeaderFlag5 = 1;
|
|
|
+ g_ucU5RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_uiUart5_No = 1;
|
|
|
+ } else {
|
|
|
+ g_BUSY5 = 0;
|
|
|
+ }
|
|
|
+ } else if (g_ucHeaderFlag5 == 1) {
|
|
|
+ g_uiUart5_No++;
|
|
|
+ }
|
|
|
+ if (g_uiUart5_No > (FRAME_LTHH_INDEX + 1)) {
|
|
|
+ g_uiLth5 = g_ucU5RX_Data[FRAME_LTHH_INDEX];
|
|
|
+ if (g_uiUart5_No == g_uiLth5) {
|
|
|
+ g_ulRSUM5 = Check(g_ucU5RX_Data, g_uiLth5 - 1);
|
|
|
+ g_ucCRC5 = (unsigned char)g_ulRSUM5;
|
|
|
+ if (g_ucCRC5 == g_ucU5RX_Data[g_uiLth5 - 1]) {
|
|
|
+ g_ucCMD5 = g_ucU5RX_Data[FRAME_CMD_INDEX];
|
|
|
+ g_ucUART5_flag = 1;
|
|
|
+ g_ulRSUM5 = 0;
|
|
|
+ g_uiUart5_No = 0;
|
|
|
+ g_ucHeaderFlag5 = 0;
|
|
|
+ g_BUSY5 = 1;
|
|
|
+ } else {
|
|
|
+ memset(g_ucU5RX_Data, 0, g_uiLth5 * sizeof(unsigned char));
|
|
|
+ g_BUSY5 = 0;
|
|
|
+ }
|
|
|
+ } else if (g_uiUart5_No > g_uiLth5) {
|
|
|
+ g_uiUart5_No = 0;
|
|
|
+ g_ucHeaderFlag5 = 0;
|
|
|
+ g_BUSY5 = 0;
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U4RXInterrupt( void ){
|
|
|
- IFS5bits.U4RXIF = 0;
|
|
|
- g_ucU4RX_Data[g_uiUart4_No] = U4RXREG;
|
|
|
- if(g_BUSY4 == 1) return;
|
|
|
- if(g_ucHeaderFlag4 == 0){
|
|
|
- if(g_ucU4RX_Data[g_uiUart4_No] == FRAME_HEAD){
|
|
|
- g_ucHeaderFlag4 = 1;
|
|
|
- g_ucU4RX_Data[0] = FRAME_HEAD;
|
|
|
- g_uiUart4_No = 1;
|
|
|
- }else{
|
|
|
- g_BUSY4 = 0;
|
|
|
- }
|
|
|
- }else if(g_ucHeaderFlag4 == 1){
|
|
|
- g_uiUart4_No++;
|
|
|
- }
|
|
|
- if(g_uiUart4_No > (FRAME_LTHH_INDEX+1)){
|
|
|
- g_uiLth4 = g_ucU4RX_Data[FRAME_LTHH_INDEX];
|
|
|
- if(g_uiUart4_No == g_uiLth4){
|
|
|
- g_ulRSUM4 = Check(g_ucU4RX_Data,g_uiLth4-1);
|
|
|
- g_ucCRC4 = (unsigned char)g_ulRSUM4;
|
|
|
- if(g_ucCRC4 == g_ucU4RX_Data[g_uiLth4-1]){
|
|
|
- g_ucCMD4 = g_ucU4RX_Data[FRAME_CMD_INDEX];
|
|
|
- g_ucUART4_flag = 1;
|
|
|
- g_ulRSUM4 = 0;
|
|
|
- g_uiUart4_No = 0;
|
|
|
- g_ucHeaderFlag4 = 0;
|
|
|
- g_BUSY4 = 1;
|
|
|
- }else{
|
|
|
- memset(g_ucU4RX_Data,0,g_uiLth4*sizeof(unsigned char));
|
|
|
- g_BUSY4 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart4_No > g_uiLth4){
|
|
|
- g_uiUart4_No = 0;
|
|
|
- g_ucHeaderFlag4 = 0;
|
|
|
- g_BUSY4 = 0;
|
|
|
- }
|
|
|
+void __attribute__((interrupt, no_auto_psv)) _U6RXInterrupt(void) {
|
|
|
+ IFS7bits.U6RXIF = 0;
|
|
|
+ g_ucU6RX_Data[g_uiUart6_No] = U6RXREG;
|
|
|
+ if (g_BUSY6 == 1)
|
|
|
+ return;
|
|
|
+ if (g_ucHeaderFlag6 == 0) {
|
|
|
+ if (g_ucU6RX_Data[g_uiUart6_No] == FRAME_HEAD) {
|
|
|
+ g_ucHeaderFlag6 = 1;
|
|
|
+ g_ucU6RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_uiUart6_No = 1;
|
|
|
+ } else {
|
|
|
+ g_BUSY6 = 0;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ } else if (g_ucHeaderFlag6 == 1) {
|
|
|
+ g_uiUart6_No++;
|
|
|
+ }
|
|
|
+ if (g_uiUart6_No > (FRAME_LTHH_INDEX + 1)) {
|
|
|
+ g_uiLth6 = g_ucU6RX_Data[FRAME_LTHH_INDEX];
|
|
|
+ if (g_uiUart6_No == g_uiLth6) {
|
|
|
+ g_ulRSUM6 = Check(g_ucU6RX_Data, g_uiLth6 - 1);
|
|
|
+ g_ucCRC6 = (unsigned char)g_ulRSUM6;
|
|
|
+ if (g_ucCRC6 == g_ucU6RX_Data[g_uiLth6 - 1]) {
|
|
|
+ g_ucCMD6 = g_ucU6RX_Data[FRAME_CMD_INDEX];
|
|
|
+ g_ucUART6_flag = 1;
|
|
|
+ g_ulRSUM6 = 0;
|
|
|
+ g_uiUart6_No = 0;
|
|
|
+ g_ucHeaderFlag6 = 0;
|
|
|
+ g_BUSY6 = 1;
|
|
|
+ } else {
|
|
|
+ memset(g_ucU6RX_Data, 0, g_uiLth6 * sizeof(unsigned char));
|
|
|
+ g_BUSY6 = 0;
|
|
|
+ }
|
|
|
+ } else if (g_uiUart6_No > g_uiLth6) {
|
|
|
+ g_uiUart6_No = 0;
|
|
|
+ g_ucHeaderFlag6 = 0;
|
|
|
+ g_BUSY6 = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U5RXInterrupt( void ){//√
|
|
|
- IFS6bits.U5RXIF = 0;
|
|
|
- g_ucU5RX_Data[g_uiUart5_No] = U5RXREG;
|
|
|
- if(g_BUSY5 == 1) return;
|
|
|
- if(g_ucHeaderFlag5 == 0){
|
|
|
- if(g_ucU5RX_Data[g_uiUart5_No] == FRAME_HEAD){
|
|
|
- g_ucHeaderFlag5 = 1;
|
|
|
- g_ucU5RX_Data[0] = FRAME_HEAD;
|
|
|
- g_uiUart5_No = 1;
|
|
|
- }else{
|
|
|
- g_BUSY5 = 0;
|
|
|
- }
|
|
|
- }else if(g_ucHeaderFlag5 == 1){
|
|
|
- g_uiUart5_No++;
|
|
|
- }
|
|
|
- if(g_uiUart5_No > (FRAME_LTHH_INDEX+1)){
|
|
|
- g_uiLth5 = g_ucU5RX_Data[FRAME_LTHH_INDEX];
|
|
|
- if(g_uiUart5_No == g_uiLth5){
|
|
|
- g_ulRSUM5 = Check(g_ucU5RX_Data,g_uiLth5-1);
|
|
|
- g_ucCRC5 = (unsigned char)g_ulRSUM5;
|
|
|
- if(g_ucCRC5 == g_ucU5RX_Data[g_uiLth5-1]){
|
|
|
- g_ucCMD5 = g_ucU5RX_Data[FRAME_CMD_INDEX];
|
|
|
- g_ucUART5_flag = 1;
|
|
|
- g_ulRSUM5 = 0;
|
|
|
- g_uiUart5_No = 0;
|
|
|
- g_ucHeaderFlag5 = 0;
|
|
|
- g_BUSY5 = 1;
|
|
|
- }else{
|
|
|
- memset(g_ucU5RX_Data,0,g_uiLth5*sizeof(unsigned char));
|
|
|
- g_BUSY5 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart5_No > g_uiLth5){
|
|
|
- g_uiUart5_No = 0;
|
|
|
- g_ucHeaderFlag5 = 0;
|
|
|
- g_BUSY5 = 0;
|
|
|
- }
|
|
|
+
|
|
|
+uint16_t checkSum(const uint8_t *pInBuffer, int uLen)
|
|
|
+{
|
|
|
+ uint32_t sum = 0;
|
|
|
+
|
|
|
+ for(int i = 0; i < uLen; i++)
|
|
|
+ {
|
|
|
+ sum += pInBuffer[i];
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ return (sum);
|
|
|
}
|
|
|
|
|
|
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U6RXInterrupt( void ){
|
|
|
- IFS7bits.U6RXIF = 0;
|
|
|
- g_ucU6RX_Data[g_uiUart6_No] = U6RXREG;
|
|
|
- if(g_BUSY6 == 1) return;
|
|
|
- if(g_ucHeaderFlag6 == 0){
|
|
|
- if(g_ucU6RX_Data[g_uiUart6_No] == FRAME_HEAD){
|
|
|
- g_ucHeaderFlag6 = 1;
|
|
|
- g_ucU6RX_Data[0] = FRAME_HEAD;
|
|
|
- g_uiUart6_No = 1;
|
|
|
+
|
|
|
+/********************************************************************
|
|
|
+ * int Decode(const char *pInBuffer, int uLen)
|
|
|
+ *
|
|
|
+ *描述:对串口数据进行解码成结构体
|
|
|
+ *参数:pInBuffer 接收缓冲区
|
|
|
+ *uheader 当前头位置
|
|
|
+ ulast 当前头尾位置
|
|
|
+ maxlen 缓冲区长度
|
|
|
+ pMessage 命令结构体
|
|
|
+ pdata 命令数据
|
|
|
+ *返回:1解码成功,0解码失败
|
|
|
+ *其他:无
|
|
|
+ *--------------------------------------------------------------------
|
|
|
+ *记录:
|
|
|
+ ********************************************************************/
|
|
|
+int DecodeNew(void* pMessage, uint8_t *pdata, const uint8_t *pInBuffer, uint32_t *pheader,uint32_t ulast,uint32_t maxlen)
|
|
|
+{
|
|
|
+ uint32_t bufRealLen;
|
|
|
+ uint32_t sizeofMessage = ALPS_MASSAGE_MIN_SIZE;
|
|
|
+ uint32_t header = *pheader;
|
|
|
+ uint32_t i = 0;
|
|
|
+// if (NULL == pInBuffer || NULL == pMessage || NULL == pdata || NULL == pheader)
|
|
|
+ if (NULL == pInBuffer || NULL == pdata || NULL == pheader)
|
|
|
+ {
|
|
|
+ /*空指针判断*/
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ /*缓冲区有效数据长度,缓冲区循环处理,会出现头大于未情况*/
|
|
|
+ bufRealLen = (ulast > header)?(ulast - header):(ulast + maxlen - header);
|
|
|
+ if(bufRealLen < sizeofMessage){
|
|
|
+ /*长度过段,跳过*/
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+// bufRealLen = sizeofMessage; /*最大有效数据长度*/
|
|
|
+ for(; i<=(bufRealLen - sizeofMessage);){
|
|
|
+ uint32_t headerflag = pInBuffer[(header + i)%maxlen];
|
|
|
+// headerflag += pInBuffer[(header + i + 1)%maxlen] <<8;
|
|
|
+ if(headerflag != ALPS_HEADER_FALG){
|
|
|
+ i += 1;
|
|
|
+// header = (header + 1)%maxlen;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ uint32_t messagelen = pInBuffer[(header + i + 3)%maxlen];
|
|
|
+// messagelen += pInBuffer[(header + i + 5)%maxlen] <<8;
|
|
|
+ if(messagelen > (maxlen)){
|
|
|
+ /*长度超长 跳过2个字节*/
|
|
|
+ i += 1;
|
|
|
+// header = (header + 1)%maxlen;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(messagelen >bufRealLen){
|
|
|
+ /*当前起始点可能存在数据,跳出循环,*/
|
|
|
+ i++; /*for采样小于等于判断,循环次数多1,此处加1便于后续处理*/
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ uint8_t checkesum = 0;
|
|
|
+ uint8_t recsum = 0;
|
|
|
+ if((header + i + messagelen) < maxlen){
|
|
|
+ checkesum = checkSum(pInBuffer + header + i , messagelen - 1);
|
|
|
+
|
|
|
}else{
|
|
|
- g_BUSY6 = 0;
|
|
|
+ checkesum = checkSum(pInBuffer + header + i , (maxlen - (header)));
|
|
|
+ checkesum += checkSum(pInBuffer, (header + i + messagelen - 1)%maxlen);
|
|
|
+ }
|
|
|
+ recsum = *(pInBuffer + (header + i + messagelen - 1)%maxlen ) ;
|
|
|
+// recsum += *(pInBuffer + (header + i + 7 + messagelen)%maxlen) << 8;
|
|
|
+ /*固定结尾预留做调试用*/
|
|
|
+ if(checkesum != recsum ){
|
|
|
+ i += 1;
|
|
|
+// header = (header + 1)%maxlen;
|
|
|
+ }else{
|
|
|
+ /*解析成功,拷贝消息结构体*/
|
|
|
+// uint8_t * pCharMessage = (uint8_t *)pMessage;
|
|
|
+// for(unsigned copyi=0;copyi<(sizeofMessage-2);copyi++){
|
|
|
+// *pCharMessage++ = pInBuffer[(header + i+ copyi)%maxlen];
|
|
|
+// }
|
|
|
+// (*pMessage).tail = MINI7_TAIL_FALG;
|
|
|
+
|
|
|
+ /*解析成功,拷贝数据结构体*/
|
|
|
+ for(unsigned copyi=0;copyi<messagelen;copyi++){
|
|
|
+ *pdata++ = pInBuffer[(header + i + copyi)%maxlen];
|
|
|
+ }
|
|
|
+ *pheader = (header + messagelen + i )%maxlen;
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ *pheader = (header + i - 1)%maxlen;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/*******************************************************************************
|
|
|
+ * 函数名称: unPack_Cmd 串口消息解码
|
|
|
+ *******************************************************************************/
|
|
|
+
|
|
|
+void unPack_Cmd(void){
|
|
|
+ if(((uart1_last + MAX_UART_BUFFER_SIZE - uart1_header) % MAX_UART_BUFFER_SIZE ) >= ALPS_MASSAGE_MIN_SIZE)
|
|
|
+ {
|
|
|
+ uart1_recOK = DecodeNew(NULL,g_ucU1RX_Data,g_ucU1RX_Buf, &uart1_header,uart1_last,MAX_UART_BUFFER_SIZE);
|
|
|
+ if(uart1_recOK){
|
|
|
+ if(g_BUSY1){
|
|
|
+ /*忙应答*/
|
|
|
+ }else{
|
|
|
+ g_BUSY1 = 1;
|
|
|
+ g_ucUART1_flag = 1;
|
|
|
+ g_CmdFrom_UartNum = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }else if(g_ucHeaderFlag6 == 1){
|
|
|
- g_uiUart6_No++;
|
|
|
- }
|
|
|
- if(g_uiUart6_No > (FRAME_LTHH_INDEX+1)){
|
|
|
- g_uiLth6 = g_ucU6RX_Data[FRAME_LTHH_INDEX];
|
|
|
- if(g_uiUart6_No == g_uiLth6){
|
|
|
- g_ulRSUM6 = Check(g_ucU6RX_Data,g_uiLth6-1);
|
|
|
- g_ucCRC6 = (unsigned char)g_ulRSUM6;
|
|
|
- if(g_ucCRC6 == g_ucU6RX_Data[g_uiLth6-1]){
|
|
|
- g_ucCMD6 = g_ucU6RX_Data[FRAME_CMD_INDEX];
|
|
|
- g_ucUART6_flag = 1;
|
|
|
- g_ulRSUM6 = 0;
|
|
|
- g_uiUart6_No = 0;
|
|
|
- g_ucHeaderFlag6 = 0;
|
|
|
- g_BUSY6 = 1;
|
|
|
- }else{
|
|
|
- memset(g_ucU6RX_Data,0,g_uiLth6*sizeof(unsigned char));
|
|
|
- g_BUSY6 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart6_No > g_uiLth6){
|
|
|
- g_uiUart6_No = 0;
|
|
|
- g_ucHeaderFlag6 = 0;
|
|
|
- g_BUSY6 = 0;
|
|
|
+ else if(((uart4_last + MAX_UART_BUFFER_SIZE - uart4_header) % MAX_UART_BUFFER_SIZE ) >= ALPS_MASSAGE_MIN_SIZE)
|
|
|
+ {
|
|
|
+ uart1_recOK = DecodeNew(NULL,g_ucU1RX_Data,g_ucU4RX_Buf, &uart4_header,uart4_last,MAX_UART_BUFFER_SIZE);
|
|
|
+ if(uart1_recOK){
|
|
|
+ if(g_BUSY1){
|
|
|
+ /*忙应答*/
|
|
|
+ }else{
|
|
|
+ g_BUSY1 = 1;
|
|
|
+ g_ucUART1_flag = 1;
|
|
|
+ g_CmdFrom_UartNum = 4;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/*******************************************************************************
|
|
|
+ * 函数名称:Uart1_Ack
|
|
|
+ *******************************************************************************/
|
|
|
+
|
|
|
+void Uart1_Ack_new(void) {
|
|
|
+ unsigned int g_uiFrmLth;
|
|
|
+ unsigned int sendTime;
|
|
|
+ unsigned int outTime = OUTTIME2S;
|
|
|
+ switch (g_ucCMD1) {
|
|
|
+ case READ_EEPROM:
|
|
|
+ case WRITE_EEPROM: {
|
|
|
+ if (g_ucU1RX_Data[2] == 0) {
|
|
|
+ if ((ulEE_address >= 0x0000) && (ulEE_address <= 0x1FFF)) {
|
|
|
+ g_ucU1RX_Data[2] = 1;
|
|
|
+ g_ucU1RX_Data[g_ucU1RX_Data[3] - 1] += 1;
|
|
|
+ } else if ((ulEE_address >= 0x2000) && (ulEE_address <= 0xFFFF)) {
|
|
|
+ g_ucU1RX_Data[2] = 2;
|
|
|
+ g_ucU1RX_Data[g_ucU1RX_Data[3] - 1] += 2;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ } break;
|
|
|
+ case PCR_RDTEMP:
|
|
|
+ case RD_PCRDATA:
|
|
|
+ case PCR_MOTOR:
|
|
|
+ outTime = OUTTIME60S;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 0: {
|
|
|
+ g_uiFrmLth = 6;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 0;
|
|
|
+ g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+// for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+// UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+// }
|
|
|
+ UART1SendDma(g_ucU1TX_Data,g_uiFrmLth);
|
|
|
+
|
|
|
+ } break;
|
|
|
+ case 1: {
|
|
|
+ for (unsigned int n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ sendTime = ms10_conter;
|
|
|
+ while (!g_ucUART2_flag && (ms10_conter - sendTime) < outTime)
|
|
|
+ ;
|
|
|
+ if (!g_ucUART2_flag) {
|
|
|
+ g_uiFrmLth = 6;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 1;
|
|
|
+ g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
+ g_ucU1TX_Data[4] = EnmErrCode_errTimeOut;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (unsigned int n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+
|
|
|
+ } break;
|
|
|
+ case 2: {
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1; // 6
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ for (unsigned int i = 4; i < g_ucU1RX_Data[3]; i++) {
|
|
|
+ g_ucU3TX_Data[i + 1] = g_ucU1RX_Data[i];
|
|
|
+ }
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (unsigned int n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ sendTime = ms10_conter;
|
|
|
+ while (!g_ucUART2_flag && (ms10_conter - sendTime) < outTime)
|
|
|
+ ;
|
|
|
+ if (!g_ucUART2_flag) {
|
|
|
+ g_uiFrmLth = 6;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 1;
|
|
|
+ g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
+ g_ucU1TX_Data[4] = EnmErrCode_errTimeOut;
|
|
|
+ } else {
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = g_ucU3RX_Data[4] - 1;
|
|
|
+ g_uiFrmLth = g_ucU1TX_Data[3];
|
|
|
+ for (unsigned int i = 4; i < g_ucU3RX_Data[4]; i++) {
|
|
|
+ g_ucU1TX_Data[i] = g_ucU4RX_Data[i + 1];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ g_ucU1TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+
|
|
|
+ } break;
|
|
|
+ default: {
|
|
|
+ g_uiFrmLth = 6;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 0;
|
|
|
+ g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
+ g_ucU1TX_Data[4] = EnmErrCode_errPara1;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+
|
|
|
+ } break;
|
|
|
+ }
|
|
|
+ g_ucUART1_flag = 0;
|
|
|
+ g_uiUart1_No = 0;
|
|
|
+ g_ucHeaderFlag1 = 0;
|
|
|
+ memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
|
|
|
+ g_BUSY1 = 0;
|
|
|
+ g_CmdFrom_UartNum = 0;
|
|
|
}
|
|
|
+
|
|
|
/*******************************************************************************
|
|
|
* 函数名称:Uart1_Ack
|
|
|
*******************************************************************************/
|
|
|
|
|
|
-void Uart1_Ack(void)
|
|
|
-{
|
|
|
- unsigned int g_uiFrmLth;
|
|
|
- unsigned int i=0;
|
|
|
- unsigned int j=0;
|
|
|
- unsigned int n=0;
|
|
|
- unsigned char k=0;
|
|
|
- unsigned int UARTAD_buff[8];
|
|
|
- unsigned char Flag_STATUS=0;
|
|
|
- unsigned char Sensor,ucPWMindex,ucCtrlMode;
|
|
|
- long lMPPCtemp = 0;
|
|
|
- long lPWMstate=0;
|
|
|
-
|
|
|
- unsigned long SoftVersion =230719,date;
|
|
|
-
|
|
|
- unsigned char u8_data1,u8_data2,u8_data3;
|
|
|
-
|
|
|
-
|
|
|
- switch(g_ucCMD1){
|
|
|
- /***************************(0x01)****************************/
|
|
|
- case HELLO:
|
|
|
- switch(g_ucU1RX_Data[2])
|
|
|
- {
|
|
|
- case 0:
|
|
|
- g_uiFrmLth = 6;
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 0;
|
|
|
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
- g_ucU1TX_Data[4] = Flag_STATUS;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case 1:
|
|
|
- for(n=0;n<g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
-
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1; //6
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 5;
|
|
|
- g_ucU1TX_Data[4] = (unsigned char)Check(g_ucU1TX_Data,4);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART4SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART4_flag);
|
|
|
- g_ucU4RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU4RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU4RX_Data[2] = 3;
|
|
|
- g_uiFrmLth = g_ucU4RX_Data[3] ;
|
|
|
- g_ucU4RX_Data[g_uiFrmLth-1]=(unsigned char)Check(g_ucU4RX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU4RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU4RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART4_flag = 0;
|
|
|
- g_BUSY4 = 0;
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- for(n=0;n<g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART5SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART5_flag);
|
|
|
- g_ucU5RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU5RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU5RX_Data[2]=4;
|
|
|
- g_uiFrmLth = g_ucU5RX_Data[3] ;
|
|
|
- g_ucU5RX_Data[g_uiFrmLth-1]=(unsigned char)Check(g_ucU5RX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU5RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU5RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART5_flag = 0;
|
|
|
- g_BUSY5 = 0;
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- for(n=0;n<g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART6SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART6_flag);
|
|
|
- g_ucU6RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU6RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU6RX_Data[2] = 5;
|
|
|
- g_uiFrmLth = g_ucU6RX_Data[3] ;
|
|
|
- g_ucU6RX_Data[g_uiFrmLth-1]=(unsigned char)Check(g_ucU6RX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU6RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU6RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART6_flag = 0;
|
|
|
- g_BUSY6 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x02)****************************/
|
|
|
- case PCR_SYSRST:
|
|
|
- switch(g_ucU1RX_Data[2])
|
|
|
- {
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = 0;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x03)****************************/
|
|
|
- case PCR_SELFTEST:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = 0;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x04)****************************/
|
|
|
- case PCR_DEV:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 7;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data,6);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x05)****************************/
|
|
|
- case PCR_STATUS:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 8;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = 0;
|
|
|
- g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data,7);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x06)****************************/
|
|
|
- case SET_Temperature:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 7;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = 0;
|
|
|
- g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data,6);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x78)****************************/
|
|
|
- case SET_ZLTemperature:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /*************************** (0x07)****************************/
|
|
|
- case PCR_MOTOR:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 10;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
- g_ucU1TX_Data[7] = g_ucU3RX_Data[8];
|
|
|
- g_ucU1TX_Data[8] = g_ucU3RX_Data[9];
|
|
|
- g_ucU1TX_Data[9] = (unsigned char)Check(g_ucU1TX_Data,9);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /*************************** (0x08)****************************/
|
|
|
- case PCR_LEDCTRL:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 9;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
- g_ucU1TX_Data[7] = g_ucU3RX_Data[8];
|
|
|
- g_ucU1TX_Data[8] = (unsigned char)Check(g_ucU1TX_Data,8);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /*************************** (0x09)****************************/
|
|
|
- case PCR_RDTEMP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************** (0x0A)****************************/
|
|
|
- case PCR_SETCAP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
- g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
- g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
- g_ucU3TX_Data[10] = g_ucU1RX_Data[9];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = 0;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x0B)****************************/
|
|
|
- case PCR_AUXER:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
- g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
- g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
- g_ucU3TX_Data[10] = g_ucU1RX_Data[9];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = 0;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /*************************** (0x0C)****************************/
|
|
|
- case RD_PCRDATA:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
- g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
- g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
- g_ucU3TX_Data[10] = g_ucU1RX_Data[9];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x0d)****************************/
|
|
|
- case PCR_PMT:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x0e)****************************/
|
|
|
- case PCR_GAIN:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x0f)****************************/
|
|
|
- case PCR_STALED:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************** (0x10)****************************/
|
|
|
- case PCR_RTPCREMP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x11)****************************/
|
|
|
- case READ_EEPROM:
|
|
|
- ulEE_address = g_ucU1RX_Data[4];//EEPROM的首地址
|
|
|
- ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[5];
|
|
|
- ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[6];
|
|
|
- if((ulEE_address >= 0x0000 )&&(ulEE_address <= 0x1FFF))
|
|
|
- {
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- }else if((ulEE_address >= 0x2000 )&&(ulEE_address <= 0xFFFF))
|
|
|
- {
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 0;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
- g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
- g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = g_ucU3RX_Data[4];
|
|
|
-// g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
-// g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
-// g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
-// g_ucU1TX_Data[7] = g_ucU3RX_Data[8];
|
|
|
-// g_ucU1TX_Data[8] = g_ucU3RX_Data[9];
|
|
|
- for(k = 4;k < g_ucU3RX_Data[4]-2;k++)
|
|
|
- {
|
|
|
- g_ucU1TX_Data[k] = g_ucU3RX_Data[k+1];
|
|
|
- }
|
|
|
- g_uiFrmLth = g_ucU1TX_Data[3] ;
|
|
|
- g_ucU1TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- }else
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
-//
|
|
|
-//
|
|
|
-//
|
|
|
-// switch(g_ucU1RX_Data[2]){
|
|
|
-// case 1:
|
|
|
-// for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
-// {
|
|
|
-// UART2SEND(g_ucU1RX_Data[n]);
|
|
|
-// }
|
|
|
-// while(!g_ucUART2_flag);
|
|
|
-// g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
-// g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
-// g_ucU2RX_Data[2] = 1;
|
|
|
-// g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
-// g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
-// for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
-// {
|
|
|
-// UART1SEND(g_ucU2RX_Data[n]);
|
|
|
-// }
|
|
|
-// g_ucUART2_flag = 0;
|
|
|
-// g_BUSY2 = 0;
|
|
|
-// break;
|
|
|
-// case 2:
|
|
|
-// g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
-// g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
-// g_ucU3TX_Data[2] = 2;
|
|
|
-// g_ucU3TX_Data[3] = 0;
|
|
|
-// g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
-// g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
-// g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
-// g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
-// g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
-// g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
-// g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
-// g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
-// for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
-// {
|
|
|
-// UART3SEND(g_ucU3TX_Data[n]);
|
|
|
-// }
|
|
|
-// while(!g_ucUART3_flag);
|
|
|
-//
|
|
|
-// g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
-// g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
-// g_ucU1TX_Data[2] = 2;
|
|
|
-// g_ucU1TX_Data[3] = g_ucU3RX_Data[4];
|
|
|
-// for(k = 4;k < g_ucU3RX_Data[4]-2;k++)
|
|
|
-// {
|
|
|
-// g_ucU1TX_Data[k] = g_ucU3RX_Data[k+1];
|
|
|
-// }
|
|
|
-// g_uiFrmLth = g_ucU1TX_Data[3] ;
|
|
|
-// g_ucU1TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
|
|
|
-// for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
-// {//传递给PC
|
|
|
-// UART1SEND(g_ucU1TX_Data[n]);
|
|
|
-// }
|
|
|
-// g_ucUART3_flag = 0;
|
|
|
-// g_BUSY3 = 0;
|
|
|
-// break;
|
|
|
-// }
|
|
|
-// break;
|
|
|
- /****************************写入EEPROM//移动到孔板位置(NE)(0x12)****************************/
|
|
|
- case WRITE_EEPROM:
|
|
|
- ulEE_address = g_ucU1RX_Data[4]; //首地址
|
|
|
- ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[5];
|
|
|
- ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[6];
|
|
|
- if((ulEE_address >= 0x0000 )&&(ulEE_address <= 0x1FFF))
|
|
|
- {
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- }else if((ulEE_address >= 0x2000 )&&(ulEE_address <= 0xFFFF))
|
|
|
- {
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 0;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- for(k = 5;k < g_ucU1RX_Data[3];k++)
|
|
|
- {
|
|
|
- g_ucU3TX_Data[k] = g_ucU1RX_Data[k-1];
|
|
|
- }
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {//传递给PC
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- }else
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
-//
|
|
|
-//
|
|
|
-//
|
|
|
-// switch(g_ucU1RX_Data[2]){
|
|
|
-// case 1:
|
|
|
-// for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
-// {
|
|
|
-// UART2SEND(g_ucU1RX_Data[n]);
|
|
|
-// }
|
|
|
-// while(!g_ucUART2_flag);
|
|
|
-// g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
-// g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
-// g_ucU2RX_Data[2] = 1;
|
|
|
-// g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
-// g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
-// for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
-// {
|
|
|
-// UART1SEND(g_ucU2RX_Data[n]);
|
|
|
-// }
|
|
|
-// g_ucUART2_flag = 0;
|
|
|
-// g_BUSY2 = 0;
|
|
|
-// break;
|
|
|
-// case 2:
|
|
|
-// g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
-// g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
-// g_ucU3TX_Data[2] = 2;
|
|
|
-// g_ucU3TX_Data[3] = 0;
|
|
|
-// g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
-// for(k = 5;k < g_ucU1RX_Data[3];k++)
|
|
|
-// {
|
|
|
-// g_ucU3TX_Data[k] = g_ucU1RX_Data[k-1];
|
|
|
-// }
|
|
|
-// g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
-// g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
-// for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
-// {
|
|
|
-// UART3SEND(g_ucU3TX_Data[n]);
|
|
|
-// }
|
|
|
-// while(!g_ucUART3_flag);
|
|
|
-//
|
|
|
-// g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
-// g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
-// g_ucU1TX_Data[2] = 2;
|
|
|
-// g_ucU1TX_Data[3] = 6;
|
|
|
-// g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
-// g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
-// for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
-// {
|
|
|
-// UART1SEND(g_ucU1TX_Data[n]);
|
|
|
-// }
|
|
|
-// g_ucUART3_flag = 0;
|
|
|
-// g_BUSY3 = 0;
|
|
|
-// break;
|
|
|
-// }
|
|
|
-// break;
|
|
|
- /***************************(0x13)****************************/
|
|
|
- case READ_FLASH:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /************************(0x14)****************************/
|
|
|
- case WRITE_FLISH:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************** (0x15)****************************/
|
|
|
- case PCR_RDSENSOR:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x17)****************************/
|
|
|
- case GET_MPPCAD:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x18)****************************/
|
|
|
- case PCR_RDADC:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x19)****************************/
|
|
|
- case PCR_GLDQ:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x1A)****************************/
|
|
|
- case PCR_START:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x1B)****************************/
|
|
|
- case PCR_STOP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x1C)****************************/
|
|
|
- case PCR_FAN:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x1E)****************************/
|
|
|
- case PCR_IO:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 0:
|
|
|
-
|
|
|
- g_uiFrmLth = 6;
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 0;
|
|
|
- g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
- g_ucU1TX_Data[4] = 0;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- Delay_ms(500);
|
|
|
- if(g_ucU1RX_Data[4] == 253){//屏幕连接
|
|
|
- _RP10R = 0;
|
|
|
- _RP1R= 3;
|
|
|
- RPINR18bits.U1RXR = 48; //串口输入映射 触摸屏连接
|
|
|
- InitUart1();
|
|
|
- }
|
|
|
- else if(g_ucU1RX_Data[4] == 252){// PC连接
|
|
|
- _RP1R= 0;
|
|
|
- _RP10R = 3;
|
|
|
- RPINR18bits.U1RXR = 17; //串口输入映射 PC机器连接
|
|
|
- InitUart1();
|
|
|
- }else{}
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /************************(0xE0)****************************/
|
|
|
- case GET_IO:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x25)****************************/
|
|
|
- case PCR_TUBEMODE:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x26)****************************/
|
|
|
- case PCR_INBOX:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************** (0x27)****************************/
|
|
|
- case PCR_OUTBOX:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x28)****************************/
|
|
|
- case PCR_STATEBIT:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x31)****************************/
|
|
|
- case SET_PWM:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x32)****************************/
|
|
|
- case GET_PWM:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x41)****************************/
|
|
|
- case PCR_CHIP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x42)****************************/
|
|
|
- case PCR_RDCURTEMP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x43)****************************/
|
|
|
- case PCR_TEMP:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x44)****************************/
|
|
|
- case QC_Data:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x66)****************************/
|
|
|
- case BT_Protocol:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x77)****************************/
|
|
|
- case ADGET:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0xFE)****************************/
|
|
|
- case RD_ALLDATAMAX:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0xFF)****************************/
|
|
|
- case RD_PCRALLDATA:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 1:
|
|
|
- for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART2SEND(g_ucU1RX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART2_flag);
|
|
|
- g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU2RX_Data[2] = 1;
|
|
|
- g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
- g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
- for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU2RX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART2_flag = 0;
|
|
|
- g_BUSY2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0xc0)****************************/
|
|
|
- case READ_EEPROM1:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /*************************(0xD0)****************************/
|
|
|
- case WRITE_EEPROM1:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x16)****************************/
|
|
|
- case cleaning:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x22)****************************/
|
|
|
- case READ_SET_Temperature:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 8;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = 0;
|
|
|
- g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data,7);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0xAB)****************************/
|
|
|
- case MCU_RESET:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0xAC)****************************/
|
|
|
- case SET_IO:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = 0;
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x21)****************************/
|
|
|
- case GET_TemperatureAD:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 8;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
- g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data,7);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /**************************(0x30)****************************/
|
|
|
- case qu_ci_zhu:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x3A)****************************/
|
|
|
- case pause:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x3B)****************************/
|
|
|
- case run_after_pause:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x3C)****************************/
|
|
|
- case set_time:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /****************************(0x3D)****************************/
|
|
|
- case real_time:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x3e)****************************/
|
|
|
- case CI_xici:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x3F)****************************/
|
|
|
- case Z_dibu:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 6;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data,5);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- /***************************(0x40)****************************/
|
|
|
- case Z_volume:
|
|
|
- switch(g_ucU1RX_Data[2]){
|
|
|
- case 2:
|
|
|
- g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
- g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
- g_ucU3TX_Data[2] = 2;
|
|
|
- g_ucU3TX_Data[3] = 0;
|
|
|
- g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
- g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
- g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
- g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
- g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
- for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
- {
|
|
|
- UART3SEND(g_ucU3TX_Data[n]);
|
|
|
- }
|
|
|
- while(!g_ucUART3_flag);
|
|
|
-
|
|
|
- g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
- g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
- g_ucU1TX_Data[2] = 2;
|
|
|
- g_ucU1TX_Data[3] = 7;
|
|
|
- g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
- g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
- g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data,6);
|
|
|
- for(n = 0;n < g_ucU1TX_Data[3];n++)
|
|
|
- {
|
|
|
- UART1SEND(g_ucU1TX_Data[n]);
|
|
|
- }
|
|
|
- g_ucUART3_flag = 0;
|
|
|
- g_BUSY3 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
- g_ucUART1_flag = 0;
|
|
|
- g_uiUart1_No = 0;
|
|
|
- g_ucHeaderFlag1 = 0;
|
|
|
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
|
|
|
- g_BUSY1 = 0;
|
|
|
+void Uart1_Ack(void) {
|
|
|
+ unsigned int g_uiFrmLth;
|
|
|
+
|
|
|
+ unsigned int n = 0;
|
|
|
+ unsigned char k = 0;
|
|
|
+
|
|
|
+ unsigned char Flag_STATUS = 0;
|
|
|
+
|
|
|
+ switch (g_ucCMD1) {
|
|
|
+ /***************************(0x01)****************************/
|
|
|
+ case HELLO:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 0:
|
|
|
+ g_uiFrmLth = 6;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 0;
|
|
|
+ g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
+ g_ucU1TX_Data[4] = Flag_STATUS;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1; // 6
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 5;
|
|
|
+ g_ucU1TX_Data[4] = (unsigned char)Check(g_ucU1TX_Data, 4);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART4SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART4_flag)
|
|
|
+ ;
|
|
|
+ g_ucU4RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU4RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU4RX_Data[2] = 3;
|
|
|
+ g_uiFrmLth = g_ucU4RX_Data[3];
|
|
|
+ g_ucU4RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU4RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU4RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU4RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART4_flag = 0;
|
|
|
+ g_BUSY4 = 0;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART5SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART5_flag)
|
|
|
+ ;
|
|
|
+ g_ucU5RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU5RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU5RX_Data[2] = 4;
|
|
|
+ g_uiFrmLth = g_ucU5RX_Data[3];
|
|
|
+ g_ucU5RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU5RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU5RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU5RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART5_flag = 0;
|
|
|
+ g_BUSY5 = 0;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART6SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART6_flag)
|
|
|
+ ;
|
|
|
+ g_ucU6RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU6RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU6RX_Data[2] = 5;
|
|
|
+ g_uiFrmLth = g_ucU6RX_Data[3];
|
|
|
+ g_ucU6RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU6RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU6RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU6RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART6_flag = 0;
|
|
|
+ g_BUSY6 = 0;
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
+ break;
|
|
|
+ /**************************(0x02)****************************/
|
|
|
+ case PCR_SYSRST:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************(0x03)****************************/
|
|
|
+ case PCR_SELFTEST:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x04)****************************/
|
|
|
+ case PCR_DEV:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 7;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data, 6);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x05)****************************/
|
|
|
+ case PCR_STATUS:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 8;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = 0;
|
|
|
+ g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data, 7);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x06)****************************/
|
|
|
+ case SET_Temperature:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 7;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = 0;
|
|
|
+ g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data, 6);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x78)****************************/
|
|
|
+ case SET_ZLTemperature:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /*************************** (0x07)****************************/
|
|
|
+ case PCR_MOTOR:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 10;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
+ g_ucU1TX_Data[7] = g_ucU3RX_Data[8];
|
|
|
+ g_ucU1TX_Data[8] = g_ucU3RX_Data[9];
|
|
|
+ g_ucU1TX_Data[9] = (unsigned char)Check(g_ucU1TX_Data, 9);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /*************************** (0x08)****************************/
|
|
|
+ case PCR_LEDCTRL:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 9;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
+ g_ucU1TX_Data[7] = g_ucU3RX_Data[8];
|
|
|
+ g_ucU1TX_Data[8] = (unsigned char)Check(g_ucU1TX_Data, 8);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /*************************** (0x09)****************************/
|
|
|
+ case PCR_RDTEMP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************** (0x0A)****************************/
|
|
|
+ case PCR_SETCAP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
+ g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
+ g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
+ g_ucU3TX_Data[10] = g_ucU1RX_Data[9];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x0B)****************************/
|
|
|
+ case PCR_AUXER:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
+ g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
+ g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
+ g_ucU3TX_Data[10] = g_ucU1RX_Data[9];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /*************************** (0x0C)****************************/
|
|
|
+ case RD_PCRDATA:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
+ g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
+ g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
+ g_ucU3TX_Data[10] = g_ucU1RX_Data[9];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************(0x0d)****************************/
|
|
|
+ case PCR_PMT:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x0e)****************************/
|
|
|
+ case PCR_GAIN:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x0f)****************************/
|
|
|
+ case PCR_STALED:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************** (0x10)****************************/
|
|
|
+ case PCR_RTPCREMP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************(0x11)****************************/
|
|
|
+ case READ_EEPROM:
|
|
|
+ ulEE_address = g_ucU1RX_Data[4]; // EEPROM的首地址
|
|
|
+ ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[5];
|
|
|
+ ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[6];
|
|
|
+ if ((ulEE_address >= 0x0000) && (ulEE_address <= 0x1FFF)) {
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ } else if ((ulEE_address >= 0x2000) && (ulEE_address <= 0xFFFF)) {
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 0;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
+ g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
+ g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = g_ucU3RX_Data[4];
|
|
|
+ // g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ // g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ // g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
+ // g_ucU1TX_Data[7] = g_ucU3RX_Data[8];
|
|
|
+ // g_ucU1TX_Data[8] = g_ucU3RX_Data[9];
|
|
|
+ for (k = 4; k < g_ucU3RX_Data[4] - 2; k++) {
|
|
|
+ g_ucU1TX_Data[k] = g_ucU3RX_Data[k + 1];
|
|
|
+ }
|
|
|
+ g_uiFrmLth = g_ucU1TX_Data[3];
|
|
|
+ g_ucU1TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ //
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // switch(g_ucU1RX_Data[2]){
|
|
|
+ // case 1:
|
|
|
+ // for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
+ // {
|
|
|
+ // UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ // }
|
|
|
+ // while(!g_ucUART2_flag);
|
|
|
+ // g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ // g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
+ // g_ucU2RX_Data[2] = 1;
|
|
|
+ // g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
+ // g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned
|
|
|
+ // char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
+ // for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
+ // {
|
|
|
+ // UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ // }
|
|
|
+ // g_ucUART2_flag = 0;
|
|
|
+ // g_BUSY2 = 0;
|
|
|
+ // break;
|
|
|
+ // case 2:
|
|
|
+ // g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ // g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ // g_ucU3TX_Data[2] = 2;
|
|
|
+ // g_ucU3TX_Data[3] = 0;
|
|
|
+ // g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
+ // g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ // g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ // g_ucU3TX_Data[7] = g_ucU1RX_Data[6];
|
|
|
+ // g_ucU3TX_Data[8] = g_ucU1RX_Data[7];
|
|
|
+ // g_ucU3TX_Data[9] = g_ucU1RX_Data[8];
|
|
|
+ // g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
+ // g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned
|
|
|
+ // char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
+ // for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
+ // {
|
|
|
+ // UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ // }
|
|
|
+ // while(!g_ucUART3_flag);
|
|
|
+ //
|
|
|
+ // g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ // g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
+ // g_ucU1TX_Data[2] = 2;
|
|
|
+ // g_ucU1TX_Data[3] = g_ucU3RX_Data[4];
|
|
|
+ // for(k = 4;k < g_ucU3RX_Data[4]-2;k++)
|
|
|
+ // {
|
|
|
+ // g_ucU1TX_Data[k] = g_ucU3RX_Data[k+1];
|
|
|
+ // }
|
|
|
+ // g_uiFrmLth = g_ucU1TX_Data[3] ;
|
|
|
+ // g_ucU1TX_Data[g_uiFrmLth-1] = (unsigned
|
|
|
+ // char)Check(g_ucU1TX_Data,g_uiFrmLth-1); for(n = 0;n <
|
|
|
+ // g_ucU1TX_Data[3];n++)
|
|
|
+ // {//传递给PC
|
|
|
+ // UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ // }
|
|
|
+ // g_ucUART3_flag = 0;
|
|
|
+ // g_BUSY3 = 0;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ /****************************写入EEPROM//移动到孔板位置(NE)(0x12)****************************/
|
|
|
+ case WRITE_EEPROM:
|
|
|
+ ulEE_address = g_ucU1RX_Data[4]; //首地址
|
|
|
+ ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[5];
|
|
|
+ ulEE_address = (ulEE_address << 8) + g_ucU1RX_Data[6];
|
|
|
+ if ((ulEE_address >= 0x0000) && (ulEE_address <= 0x1FFF)) {
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ } else if ((ulEE_address >= 0x2000) && (ulEE_address <= 0xFFFF)) {
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 0;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ for (k = 5; k < g_ucU1RX_Data[3]; k++) {
|
|
|
+ g_ucU3TX_Data[k] = g_ucU1RX_Data[k - 1];
|
|
|
+ }
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) { //传递给PC
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ //
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // switch(g_ucU1RX_Data[2]){
|
|
|
+ // case 1:
|
|
|
+ // for(n = 0;n < g_ucU1RX_Data[3];n++)
|
|
|
+ // {
|
|
|
+ // UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ // }
|
|
|
+ // while(!g_ucUART2_flag);
|
|
|
+ // g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ // g_ucU2RX_Data[1] = g_ucCMD1|0X80;
|
|
|
+ // g_ucU2RX_Data[2] = 1;
|
|
|
+ // g_uiFrmLth = g_ucU2RX_Data[3] ;
|
|
|
+ // g_ucU2RX_Data[g_uiFrmLth-1] = (unsigned
|
|
|
+ // char)Check(g_ucU2RX_Data,g_uiFrmLth-1);
|
|
|
+ // for(n = 0;n < g_ucU2RX_Data[3];n++)
|
|
|
+ // {
|
|
|
+ // UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ // }
|
|
|
+ // g_ucUART2_flag = 0;
|
|
|
+ // g_BUSY2 = 0;
|
|
|
+ // break;
|
|
|
+ // case 2:
|
|
|
+ // g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ // g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ // g_ucU3TX_Data[2] = 2;
|
|
|
+ // g_ucU3TX_Data[3] = 0;
|
|
|
+ // g_ucU3TX_Data[4] = g_ucU1RX_Data[3]+1;
|
|
|
+ // for(k = 5;k < g_ucU1RX_Data[3];k++)
|
|
|
+ // {
|
|
|
+ // g_ucU3TX_Data[k] = g_ucU1RX_Data[k-1];
|
|
|
+ // }
|
|
|
+ // g_uiFrmLth = g_ucU3TX_Data[4] ;
|
|
|
+ // g_ucU3TX_Data[g_uiFrmLth-1] = (unsigned
|
|
|
+ // char)Check(g_ucU3TX_Data,g_uiFrmLth-1);
|
|
|
+ // for(n=0;n<g_ucU3TX_Data[4];n++)
|
|
|
+ // {
|
|
|
+ // UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ // }
|
|
|
+ // while(!g_ucUART3_flag);
|
|
|
+ //
|
|
|
+ // g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ // g_ucU1TX_Data[1] = g_ucCMD1|0X80;
|
|
|
+ // g_ucU1TX_Data[2] = 2;
|
|
|
+ // g_ucU1TX_Data[3] = 6;
|
|
|
+ // g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ // g_ucU1TX_Data[5] = (unsigned
|
|
|
+ // char)Check(g_ucU1TX_Data,5); for(n = 0;n <
|
|
|
+ // g_ucU1TX_Data[3];n++)
|
|
|
+ // {
|
|
|
+ // UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ // }
|
|
|
+ // g_ucUART3_flag = 0;
|
|
|
+ // g_BUSY3 = 0;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ /***************************(0x13)****************************/
|
|
|
+ case READ_FLASH:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /************************(0x14)****************************/
|
|
|
+ case WRITE_FLISH:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************** (0x15)****************************/
|
|
|
+ case PCR_RDSENSOR:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x17)****************************/
|
|
|
+ case GET_MPPCAD:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x18)****************************/
|
|
|
+ case PCR_RDADC:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************(0x19)****************************/
|
|
|
+ case PCR_GLDQ:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x1A)****************************/
|
|
|
+ case PCR_START:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x1B)****************************/
|
|
|
+ case PCR_STOP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x1C)****************************/
|
|
|
+ case PCR_FAN:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x1E)****************************/
|
|
|
+ case PCR_IO:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 0:
|
|
|
+
|
|
|
+ g_uiFrmLth = 6;
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 0;
|
|
|
+ g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ Delay_ms(500);
|
|
|
+ if (g_ucU1RX_Data[4] == 253) { //屏幕连接
|
|
|
+ _RP10R = 0;
|
|
|
+ _RP1R = 3;
|
|
|
+ RPINR18bits.U1RXR = 48; //串口输入映射 触摸屏连接
|
|
|
+ InitUart1();
|
|
|
+ } else if (g_ucU1RX_Data[4] == 252) { // PC连接
|
|
|
+ _RP1R = 0;
|
|
|
+ _RP10R = 3;
|
|
|
+ RPINR18bits.U1RXR = 17; //串口输入映射 PC机器连接
|
|
|
+ InitUart1();
|
|
|
+ } else {
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /************************(0xE0)****************************/
|
|
|
+ case GET_IO:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x25)****************************/
|
|
|
+ case PCR_TUBEMODE:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x26)****************************/
|
|
|
+ case PCR_INBOX:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************** (0x27)****************************/
|
|
|
+ case PCR_OUTBOX:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x28)****************************/
|
|
|
+ case PCR_STATEBIT:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x31)****************************/
|
|
|
+ case SET_PWM:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x32)****************************/
|
|
|
+ case GET_PWM:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x41)****************************/
|
|
|
+ case PCR_CHIP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x42)****************************/
|
|
|
+ case PCR_RDCURTEMP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x43)****************************/
|
|
|
+ case PCR_TEMP:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x44)****************************/
|
|
|
+ case QC_Data:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x66)****************************/
|
|
|
+ case BT_Protocol:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x77)****************************/
|
|
|
+ case ADGET:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0xFE)****************************/
|
|
|
+ case RD_ALLDATAMAX:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0xFF)****************************/
|
|
|
+ case RD_PCRALLDATA:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < g_ucU1RX_Data[3]; n++) {
|
|
|
+ UART2SEND(g_ucU1RX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART2_flag)
|
|
|
+ ;
|
|
|
+ g_ucU2RX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU2RX_Data[2] = 1;
|
|
|
+ g_uiFrmLth = g_ucU2RX_Data[3];
|
|
|
+ g_ucU2RX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU2RX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU2RX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART2_flag = 0;
|
|
|
+ g_BUSY2 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0xc0)****************************/
|
|
|
+ case READ_EEPROM1:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /*************************(0xD0)****************************/
|
|
|
+ case WRITE_EEPROM1:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x16)****************************/
|
|
|
+ case cleaning:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x22)****************************/
|
|
|
+ case READ_SET_Temperature:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 8;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = 0;
|
|
|
+ g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data, 7);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0xAB)****************************/
|
|
|
+ case MCU_RESET:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0xAC)****************************/
|
|
|
+ case SET_IO:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = 0;
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************(0x21)****************************/
|
|
|
+ case GET_TemperatureAD:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 8;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = g_ucU3RX_Data[7];
|
|
|
+ g_ucU1TX_Data[7] = (unsigned char)Check(g_ucU1TX_Data, 7);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /**************************(0x30)****************************/
|
|
|
+ case qu_ci_zhu:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x3A)****************************/
|
|
|
+ case pause:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x3B)****************************/
|
|
|
+ case run_after_pause:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x3C)****************************/
|
|
|
+ case set_time:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /****************************(0x3D)****************************/
|
|
|
+ case real_time:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x3e)****************************/
|
|
|
+ case CI_xici:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x3F)****************************/
|
|
|
+ case Z_dibu:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 6;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, 5);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ /***************************(0x40)****************************/
|
|
|
+ case Z_volume:
|
|
|
+ switch (g_ucU1RX_Data[2]) {
|
|
|
+ case 2:
|
|
|
+ g_ucU3TX_Data[0] = FRAME_HEAD1;
|
|
|
+ g_ucU3TX_Data[1] = g_ucCMD1;
|
|
|
+ g_ucU3TX_Data[2] = 2;
|
|
|
+ g_ucU3TX_Data[3] = 0;
|
|
|
+ g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1;
|
|
|
+ g_ucU3TX_Data[5] = g_ucU1RX_Data[4];
|
|
|
+ g_ucU3TX_Data[6] = g_ucU1RX_Data[5];
|
|
|
+ g_uiFrmLth = g_ucU3TX_Data[4];
|
|
|
+ g_ucU3TX_Data[g_uiFrmLth - 1] =
|
|
|
+ (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
|
|
|
+ for (n = 0; n < g_ucU3TX_Data[4]; n++) {
|
|
|
+ UART3SEND(g_ucU3TX_Data[n]);
|
|
|
+ }
|
|
|
+ while (!g_ucUART3_flag)
|
|
|
+ ;
|
|
|
+
|
|
|
+ g_ucU1TX_Data[0] = FRAME_HEAD;
|
|
|
+ g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
|
|
|
+ g_ucU1TX_Data[2] = 2;
|
|
|
+ g_ucU1TX_Data[3] = 7;
|
|
|
+ g_ucU1TX_Data[4] = g_ucU3RX_Data[5];
|
|
|
+ g_ucU1TX_Data[5] = g_ucU3RX_Data[6];
|
|
|
+ g_ucU1TX_Data[6] = (unsigned char)Check(g_ucU1TX_Data, 6);
|
|
|
+ for (n = 0; n < g_ucU1TX_Data[3]; n++) {
|
|
|
+ UART1SEND(g_ucU1TX_Data[n]);
|
|
|
+ }
|
|
|
+ g_ucUART3_flag = 0;
|
|
|
+ g_BUSY3 = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ g_ucUART1_flag = 0;
|
|
|
+ g_uiUart1_No = 0;
|
|
|
+ g_ucHeaderFlag1 = 0;
|
|
|
+ memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
|
|
|
+ g_BUSY1 = 0;
|
|
|
+}
|