Преглед изворни кода

Merge branch 'master' of https://gowone.dy.takin.cc/liyuezong/SmartPDCode

chenyuanjie пре 1 година
родитељ
комит
84c11895a4

+ 0 - 1
f427/applications/cascade.c

@@ -671,7 +671,6 @@ void cascade_reset(uint8_t mode,uint8_t addr)
 	}else if(p_d->cas.mode == MB_MODE_SLAVE)
 	{
 		mb_set_addr(MB_ID_CASCADE,p_d->cas.addr);
-			
 	}else
 	{
 		return ;

+ 2 - 2
f427/applications/rtconfig.h

@@ -13,7 +13,7 @@
 //#define DBG_LEVEL DBG_LOG
 
 // RT-Thread Kernel
-#define RT_NAME_MAX 8
+#define RT_NAME_MAX 20
 #define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 8
 #define RT_THREAD_PRIORITY_32
@@ -115,7 +115,7 @@
 #define RT_SERIAL_RB_BUFSZ 64
 #define RT_USING_SDIO
 #define SDIO_MAX_FREQ 40*1000000
-#define RT_MMCSD_STACK_SIZE (1024*2)
+#define RT_MMCSD_STACK_SIZE (1024*4)
 #define RT_MMCSD_THREAD_PREORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
 #define RT_USING_SPI

+ 10 - 12
f427/applications/ui/menu.c

@@ -259,21 +259,21 @@ static void menu_input_paint(menu_handle_t *h, int font1, int font2, int item_h,
     sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_FACTOR), pttl->total[0].factor);
     lcd_draw_string(LCD_WIDTH/2, item_h*2, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #else
-    sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_VOLTAGE), pttl->voltage);
+    sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_VOLTAGE), pttl->voltage);
     lcd_draw_string(5, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
-		sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CURRENT), pttl->current);
+		sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_CURRENT), pttl->current);
     lcd_draw_string(5, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
 
-    sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pttl->power);
+    sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_POWER), pttl->power);
     lcd_draw_string(5, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
-    sprintf(tmp, "%s:%0.2f",lang_get_str(h->lang, STR_ID_FACTOR), pttl->factor);
+    sprintf(tmp, "%s:    %0.2f",lang_get_str(h->lang, STR_ID_FACTOR), pttl->factor);
     lcd_draw_string(5, item_h*4, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #endif
-    sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pttl->consump);
+    sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pttl->consump);
     lcd_draw_string(5, item_h*5, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
     //lcd_refresh();
@@ -325,20 +325,18 @@ static void menu_output_paint(menu_handle_t *h, int font1, int font2, int item_h
     sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_FACTOR), pwr->factor);
     lcd_draw_string(LCD_WIDTH/2, item_h*2, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #else
-    sprintf(tmp, "%s:%s", lang_get_str(h->lang, STR_ID_SWITCH), pon);
+    sprintf(tmp, "%s:    %s", lang_get_str(h->lang, STR_ID_SWITCH), pon);
     lcd_draw_string(5, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
-		sprintf(tmp, "%s:%0.2f",lang_get_str(h->lang, STR_ID_CURRENT), ((float)all->pch[h->ch_out+1].power[0].current/10.0));
+		sprintf(tmp, "%s:    %0.2f",lang_get_str(h->lang, STR_ID_CURRENT), ((float)all->pch[h->ch_out+1].power[0].current/10.0));
     lcd_draw_string(5, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
-
-
-    sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), (((float)all->pch[h->ch_out+1].power[0].power)/1000.0));
+    sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_POWER), (((float)all->pch[h->ch_out+1].power[0].power)/1000.0));
     lcd_draw_string(5, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
-    sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_FACTOR),(all->pch[h->ch_out+1].power[0].factor)/100.0);
+    sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_FACTOR),(all->pch[h->ch_out+1].power[0].factor)/100.0);
     lcd_draw_string(5, item_h*4, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #endif
-    sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), (all->pch[h->ch_out+1].power[0].consump)/1000.0);
+    sprintf(tmp, "%s:    %0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), (all->pch[h->ch_out+1].power[0].consump)/1000.0);
     lcd_draw_string(5, item_h*5, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
     //lcd_refresh();

+ 141 - 12
f427/applications/web.c

@@ -155,7 +155,7 @@ static void send_powerc(web_handle_t *h, mg_conn_t *c, uint8_t addr)
 	
 		do{
 			bag ++;
-			if(count < ONCE_SEND_CNT)
+			if(count <= ONCE_SEND_CNT)
 			{
 				for(j=0;j<count;j++)
 				{
@@ -278,6 +278,100 @@ static void send_breaker(web_handle_t *h, mg_conn_t *c, uint8_t addr)
     breaker_data_free(&all);
 }
 
+static void send_net(web_handle_t *h, mg_conn_t *c)
+{
+	paras_data_t* para=paras_get();
+	pkt_hdr_t *hdr=NULL;
+	hdr = (pkt_hdr_t*)h->buf;
+	hdr->magic = PKT_MAGIC;
+  hdr->addr  = 0;
+  hdr->type  = PKT_TYPE_PARAS;
+  hdr->nack  = 0;
+	hdr->subtype = SUB_TYPE_PARAS_NETWORK;	
+
+	network_data_t data = {0};
+	
+	data = para->netwk;
+	hdr->dlen  = sizeof(network_data_t);
+	memcpy(hdr->data,&data,hdr->dlen);
+	
+	uint32_t xlen = sizeof(pkt_hdr_t) + sizeof(network_data_t);
+	ws_send(c, h->buf, xlen, 1);
+	//ws_send(c, h->buf, hdr->dlen, 1);	
+}
+
+
+static void send_misc(web_handle_t *h, mg_conn_t *c)
+{
+	paras_data_t* para=paras_get();
+	pkt_hdr_t *hdr=NULL;
+	hdr = (pkt_hdr_t*)h->buf;
+	hdr->magic = PKT_MAGIC;
+  hdr->addr  = 0;
+  hdr->type  = PKT_TYPE_PARAS;
+  hdr->nack  = 0;
+	hdr->subtype = SUB_TYPE_PARAS_MISC;	
+	
+	
+	misc_data_t data = {0};
+	
+	data = para->misc;
+	hdr->dlen  = sizeof(misc_data_t);
+	
+	
+	ws_send(c, h->buf, hdr->dlen, 1);
+	
+}
+
+
+static void send_smnp(web_handle_t *h, mg_conn_t *c)
+{
+	paras_data_t* para=paras_get();
+	pkt_hdr_t *hdr=NULL;
+	hdr = (pkt_hdr_t*)h->buf;
+	
+	hdr->magic = PKT_MAGIC;
+  hdr->addr  = 0;
+  hdr->type  = PKT_TYPE_PARAS;
+  hdr->nack  = 0;
+	hdr->subtype = SUB_TYPE_PARAS_SNMP;	
+	hdr->flag = 0;
+	hdr->dlen = 0;
+	
+	snmp_data_t data = {0};
+	
+	
+	data = para->snmp;
+	hdr->dlen  = sizeof(snmp_data_t);
+	memcpy(hdr->data,&data,hdr->dlen);
+	uint32_t xlen = sizeof(pkt_hdr_t) + sizeof(snmp_data_t);
+	ws_send(c, h->buf, xlen, 1);
+}
+
+static void send_modbus(web_handle_t *h, mg_conn_t *c)
+{
+	paras_data_t* para=paras_get();
+	pkt_hdr_t *hdr=NULL;
+	hdr = (pkt_hdr_t*)h->buf;
+	
+	hdr->magic = PKT_MAGIC;
+  hdr->addr  = 0;
+  hdr->type  = PKT_TYPE_PARAS;
+  hdr->nack  = 0;
+	hdr->subtype = SUB_TYPE_PARAS_MODBUS;	
+	hdr->flag = 0;
+	hdr->dlen = 0;
+	
+	modbus_data_t data = {0};
+	
+	data = para->cas;
+	hdr->dlen  = sizeof(modbus_data_t);
+	memcpy(hdr->data,&data,hdr->dlen);
+	uint32_t xlen = sizeof(pkt_hdr_t) + sizeof(modbus_data_t);
+	ws_send(c, h->buf, xlen, 1);
+}
+
+
 static void sendntp(web_handle_t *h, mg_conn_t *c)
 {
 	time_t t=time(NULL);
@@ -288,11 +382,13 @@ static void sendntp(web_handle_t *h, mg_conn_t *c)
 	snprintf(_time, 40, "%04d%:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
 	paras_data_t* para=paras_get();
 	pkt_hdr_t *hdr=NULL;
+	hdr = (pkt_hdr_t*)h->buf;
+	
 	hdr->magic = PKT_MAGIC;
   hdr->addr  = 0;
   hdr->type  = PKT_TYPE_PARAS;
   hdr->nack  = 0;
-	hdr->subtype = SUB_TYPE_PARAS_SYS;
+	hdr->subtype = SUB_TYPE_PARAS_NTP;
 	
 	system_data_t data = {0};
 	data.lang = para->sys.lang;
@@ -385,16 +481,22 @@ static int ws_handle(web_handle_t *h, pkt_hdr_t *hdr, mg_conn_t *c)
                 
                 case SUB_TYPE_PARAS_MODBUS:
                 {
+									if(hdr->dlen>0) {
                     modbus_data_t *p=(modbus_data_t*)hdr->data;
 //                    cascade_reinit(p->mode, p->addr, p->baud);
-//                    para->cas = *p;
+                    para->cas = *p;
 //                    paras_save();
 									cascade_reset(p->mode,p->addr);
+									}else
+									{
+										send_modbus(h, c);
+									}
                 }
                 break;
                 
                 case SUB_TYPE_PARAS_MISC:
                 {
+									if(hdr->dlen>0) {
                     misc_data_t *p=(misc_data_t*)hdr->data;
                     
                     if(p->rotate!=para->misc.rotate) {
@@ -403,28 +505,47 @@ static int ws_handle(web_handle_t *h, pkt_hdr_t *hdr, mg_conn_t *c)
                     
                     para->misc = *p;
                     paras_save();
+									}else
+									{
+										send_misc(h, c);
+									}
                 }
                 break;
                 
                 case SUB_TYPE_PARAS_PROD:
                 {
-                    product_data_t *p=(product_data_t*)hdr->data;
+									if(hdr->dlen>0) {
+                    //product_data_t *p=(product_data_t*)hdr->data;
+									}else
+									{
+										
+									}
                 }
                 break;
                 
                 case SUB_TYPE_PARAS_SERV:
                 {
-                    service_data_t *p=(service_data_t*)hdr->data;
+									if(hdr->dlen>0) {
+									}else
+									{
+									}
+                  //  service_data_t *p=(service_data_t*)hdr->data;
                 }
                 break;
                 
                 case SUB_TYPE_PARAS_NETWORK:
                 {
+									if(hdr->dlen>0) {
+										
                     network_data_t *p=(network_data_t*)hdr->data;
 										paras_data_t *para = paras_get();
 										net_ipaddr_set(p);
 										para->netwk = *p;
 										paras_save();
+									}else
+									{
+										send_net(h, c);
+									}
 //                    extern void set_dns(uint8_t dns_num, char* dns_server);
 //                    extern void set_if(char* netif_name, char* ip_addr, char* gw_addr, char* nm_addr);
 //                    set_if("e0", p->ipaddr, p->gateway, p->mask);
@@ -435,12 +556,20 @@ static int ws_handle(web_handle_t *h, pkt_hdr_t *hdr, mg_conn_t *c)
                 break;
 								case SUB_TYPE_PARAS_SNMP:
 								{
-									snmp_data_t *p=(snmp_data_t*)hdr->data;
 									
-									paras_data_t *para = paras_get();
-									para->snmp = *p;
-									snmp_strap_set();
-									paras_save();
+									if(hdr->dlen>0) {
+										snmp_data_t *p=(snmp_data_t*)hdr->data;
+										
+										paras_data_t *para = paras_get();
+										strcpy(para->snmp.publics,p->publics);
+										strcpy(para->snmp.nms_ip,p->nms_ip);
+										//para->snmp = *p;
+										snmp_strap_set();
+										paras_save();
+									}else
+									{
+										send_smnp(h, c);
+									}
 									
 								}
 								break;
@@ -664,7 +793,7 @@ static void web_thread(void *arg)
     thread_handle_t *th=(thread_handle_t*)arg;
     web_handle_t *h=(web_handle_t*)th->attr->arg;
 
-    strcpy(h->rootDir, "/web");
+    strcpy(h->rootDir, "/sd");
 
 #ifdef USE_MG716
     mg_log_set(MG_LL_VERBOSE);
@@ -686,7 +815,7 @@ static void web_thread(void *arg)
     mg_mgr_init(&h->mgr, NULL);
     nc = mg_bind(&h->mgr, "80", http_fn);
 
-    strcpy(h->rootDir, "/web");
+    strcpy(h->rootDir, "/sd");
     
     mg_set_protocol_http_websocket(nc);
     h->opts.document_root = h->rootDir;

+ 4 - 3
f427/rt-thread/components/drivers/sdio/sd.c

@@ -499,9 +499,10 @@ rt_int32_t mmcsd_get_scr(struct rt_mmcsd_card *card, rt_uint32_t *scr)
     mmcsd_set_data_timeout(&data, card);
 
     mmcsd_send_request(card->host, &req);
-
-    if (cmd.err)
-        return cmd.err;
+		
+		
+//    if (cmd.err)
+//        return cmd.err;
     if (data.err)
         return data.err;
 

+ 5 - 0
truing_control/PDU-AC_ADA_NEW_6/common/common.c

@@ -60,13 +60,18 @@ void read_config_from_eeprom(void)
 			{
 				for(int i =0 ;i < RelaySlaveChaNum;i++)
 				{
+#ifndef SUPPORT_MON
 					if(board->relay_staging_staus[i])
 					{
 						SET_RL_ON_DELAY_FLAG(board->relay_staging_staus[i]);
 						CLEAR_RL_OFF_DELAY_FLAG(board->relay_staging_staus[i]);
 						SET_RL_ORDER_FLAG(board->relay_staging_staus[i]);
 					}
+#else
+					board->md_data.r_data.state.state[i].state = 1;
+#endif
 				}
+
 			}
 			board->read_eeprom_page(EEPROM_OTHER_ADDR,(uint8_t *)&board->md_data.rw_data.open.delay_open[0],sizeof(ac_rw_data_t));
 

+ 3 - 0
truing_control/PDU-AC_ADA_NEW_6/common/common.h

@@ -511,6 +511,9 @@ typedef struct {
 
 
 
+
+
+
 typedef struct{
 	elect_info_t info[3];
 }elect_3_info_t;

+ 6 - 1
truing_control/PDU-AC_ADA_NEW_6/modbus/BARE/port/port.c

@@ -239,6 +239,7 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 							w_eeprom_data_t data = {0};
 							if((usAddress >= SET_STATE) && (usAddress <=(SET_STATE +SET_STATE_LEN)))
 							{
+#ifndef SUPPORT_MON
 								start = usAddress - SET_STATE;
 								async_data da = {0};
 								da.fire_or_zero = _FIRE;
@@ -344,9 +345,10 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 										}										
 									}
 #endif								
-								
+#endif	
 							}else if((usAddress >= OPEN_DELAY) && (usAddress <=(OPEN_DELAY+OPEN_DELAY_LEN)))
 							{
+#ifndef SUPPORT_MON
 								start = usAddress - OPEN_DELAY;
 								base = (uint16_t*)(&board->md_data.rw_data.open.delay_open[0]);
 								base += start;
@@ -356,8 +358,10 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 								memcpy(&data.data,&usRegHoldBuf[WiRegIndex],2*WusNRegs);		
 								data.start_addr = (EEPROM_OTHER_ADDR+(start*2));
 								board->q_cache.en_queue(&data);
+#endif
 							}else if((usAddress >= CLOSE_DELAY) && (usAddress <=(CLOSE_DELAY+CLOSE_DELAY_LEN)))
 							{
+#ifndef SUPPORT_MON
 								start = usAddress - CLOSE_DELAY;
 								base = (uint16_t*)(&board->md_data.rw_data.close.delay_close[0]);
 								base += start;
@@ -366,6 +370,7 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 								memcpy(&data.data,&usRegHoldBuf[WiRegIndex],2*WusNRegs);
 								data.start_addr = (EEPROM_OTHER_ADDR+(sizeof(ac_delay_open_t))+(start*2));
 								board->q_cache.en_queue(&data);
+#endif
 							}else if((usAddress >= VALUE_THR) && (usAddress <=(VALUE_THR+VALUE_THR_LEN)))				//yu zhi she zhi
 							{
 								start = usAddress - VALUE_THR;

+ 8 - 0
truing_control/PDU-AC_ADA_NEW_6/modbus/BARE/port/portserial.c

@@ -40,6 +40,14 @@ vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable )
     /* If xRXEnable enable serial receive interrupts. If xTxENable enable
      * transmitter empty interrupts.
      */
+		if(FALSE == xRxEnable && xTxEnable == FALSE)
+		{
+			usart_interrupt_disable(USART0,USART_INT_RBNE);
+			usart_interrupt_disable(USART0,USART_INT_TC);
+			gpio_bit_reset(GPIOA, GPIO_PIN_8);
+			return;
+		}
+	
 	  if(TRUE == xRxEnable)
     {
         usart_interrupt_enable(USART0,USART_INT_RBNE);//ʹÄܽÓÊÕÖжÏ

+ 4 - 0
truing_control/PDU-AC_ADA_NEW_6/modbus/include/mb.h

@@ -409,6 +409,10 @@ eMBErrorCode    eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress,
  */
 eMBErrorCode    eMBRegDiscreteCB( UCHAR * pucRegBuffer, USHORT usAddress,
                                   USHORT usNDiscrete );
+																	
+																	
+																	
+uint8_t eMBCheck(void);
 
 #ifdef __cplusplus
 PR_END_EXTERN_C

+ 14 - 0
truing_control/PDU-AC_ADA_NEW_6/modbus/mb.c

@@ -327,6 +327,20 @@ eMBDisable( void )
     return eStatus;
 }
 
+
+uint8_t eMBCheck(void)
+{
+	if( eMBState != STATE_ENABLED)
+	{
+		return 1;
+	}else
+	{
+		return 0;
+	}
+}
+
+
+
 eMBErrorCode
 eMBPoll( void )
 {

+ 33 - 7
truing_control/PDU-AC_ADA_NEW_6/modbus/rtu/mbrtu.c

@@ -153,8 +153,14 @@ eMBRTUReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength )
     eMBErrorCode    eStatus = MB_ENOERR;
 
     ENTER_CRITICAL_SECTION(  );
-    assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
-
+		
+    //assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
+		if(usRcvBufferPos >= MB_SER_PDU_SIZE_MAX)
+		{
+			eMBDisable();
+			EXIT_CRITICAL_SECTION(  );
+			return eStatus;
+		}
     /* Length and CRC check */
     if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
         && ( usMBCRC16( ( UCHAR * ) ucRTUBuf, usRcvBufferPos ) == 0 ) )
@@ -237,7 +243,12 @@ xMBRTUReceiveFSM( void )
     BOOL            xTaskNeedSwitch = FALSE;
     UCHAR           ucByte;
 
-    assert( eSndState == STATE_TX_IDLE );
+    //assert( eSndState == STATE_TX_IDLE );
+		if(eSndState != STATE_TX_IDLE)
+		{
+			eMBDisable();
+			return xTaskNeedSwitch;
+		}
 
     /* Always read the character. */
     ( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
@@ -296,8 +307,18 @@ xMBRTUTransmitFSM( void )
 {
     BOOL            xNeedPoll = FALSE;
 
-    assert( eRcvState == STATE_RX_IDLE );
-
+    //assert( eRcvState == STATE_RX_IDLE );
+		if(eRcvState != STATE_RX_IDLE)
+		{
+			eMBDisable();
+			return xNeedPoll;
+		}
+//		if(eRcvState != STATE_RX_IDLE)
+//		{
+//			eMBDisable();
+//			eMBRTUStart();
+//			return xNeedPoll;
+//		}
     switch ( eSndState )
     {
         /* We should not get a transmitter event if the transmitter is in
@@ -355,8 +376,13 @@ xMBRTUTimerT35Expired( void )
 
         /* Function called in an illegal state. */
     default:
-        assert( ( eRcvState == STATE_RX_INIT ) ||
-                ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_ERROR ) );
+			{
+				eMBDisable();
+				eRcvState = STATE_RX_IDLE;
+				return xNeedPoll;
+				//  assert( ( eRcvState == STATE_RX_INIT ) ||
+				//          ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_ERROR ) );
+			}
     }
 
     vMBPortTimersDisable(  );

+ 10 - 1
truing_control/PDU-AC_ADA_NEW_6/user/board_cfg.h

@@ -65,7 +65,9 @@
 #define 	PRJ_4_SELF_LOCK       	  0
 #define   PRJ_4_BASE                0
 #define   PRJ_1_BASE                0
-#define 	PRJ_1_SELF_LOCK       	  1
+#define 	PRJ_1_SELF_LOCK       	  0
+
+#define   PRJ_1_ALL_MON             1
 
 #if PRJ_8					
 	#define   POWER_TYPE                (POWER_AC)
@@ -141,6 +143,13 @@
 	#define   SUPPORT_DETECTION         1
 	#define   SUPPORT_RELAY_REMENBER		1
 	#define   SUPPORT_SELF_LOCK         1
+	
+#elif PRJ_1_ALL_MON         
+	#define 	RelaySlaveChaNum 					1
+	#define 	ACSingCurrid 							2 
+	#define   SURPPORT_2_PT             0
+	#define   PT_SUB_COUNT              (RelaySlaveChaNum)
+	#define   SUPPORT_MON               1
 #endif
 
 

+ 12 - 1
truing_control/PDU-AC_ADA_NEW_6/user/main.c

@@ -74,7 +74,7 @@ int main(){
 	strcpy((char*)&(ac_board.md_data.r_data.info.ver),VERSION);
 	
 	flash_get_infomation(&ac_board.md_data.r_data.info);
-	
+#if SUPPORT_RELAY_REMENBER
 	ac_board.handle_input_pt[0] = 1;
 	#if SURPPORT_2_PT
 		ac_board.handle_input_pt[1] = 1;
@@ -126,9 +126,14 @@ int main(){
 		}
 #endif
 	
+#endif
 	
 	while(1)
 	{
+		if(eMBCheck())
+		{
+			eMBEnable();
+		}
 		ac_board.feed_dog();
 		task_query();
 		task_100ms();
@@ -138,8 +143,10 @@ int main(){
 #if SUPPORT_SELF_LOCK
 		ac_board.opt_lock_key();
 #endif
+#ifndef SUPPORT_MON
 		ac_board.opt_detection();
 		relay_ctrl();
+#endif
 	}
 	return 0;
 }
@@ -160,7 +167,9 @@ static void task_1s(void)
 			ac_board.flag_1s = 0;
 			ac_board.md_data.r_data.info.runing_time++;
 			ac_board.led_flash();
+#ifndef SUPPORT_MON
 			ac_board.detection();
+#endif
 #if SUPPORT_SELF_LOCK
 			ac_board.get_lock_key();
 #endif
@@ -176,7 +185,9 @@ static void task_100ms(void)
 			ac_board.flag_100ms = 0;
 			ac_board.read_ele(channel);
 			ac_board.check_wanning(ELE_OUTPUT,channel);
+#ifndef SUPPORT_MON
 			ac_board.opt_overfunc(channel);		
+#endif
 			channel++;
 			if(channel == RelaySlaveChaNum)
 			{