Example #1
0
void Flash_Read_Code(void)
{
	U8_T i;
	U16_T loop;
	U16_T temp = 0;
	U32_T base_addr = 0;
	Code_total_length = 0;
	Test[29]++;
	for(i = 0;i < MAX_PRGS;i++)
	{	
		IntFlashReadInt(BASE_CODE_INDEX + i * 2, &temp);
		if(temp > CODE_ELEMENT)
			temp = 0;
		programs[i].bytes = mGetPointWord2(temp); 
		Code_total_length += mGetPointWord2(programs[i].bytes);
		if(mGetPointWord2(programs[i].bytes) > 0 && mGetPointWord2(programs[i].bytes) < CODE_ELEMENT)	
		{
			for(loop = 0;loop < mGetPointWord2(programs[i].bytes) + USER_DATA_HEADER_LEN;loop++)
			{
				IntFlashReadByte(BASE_CODE + base_addr + loop,&prg_code[i][loop]);
			}
			base_addr += (mGetPointWord2(programs[i].bytes) + USER_DATA_HEADER_LEN);
			//return;
		}
		else
			memcpy(&prg_code[i] ,0, CODE_ELEMENT);
	}
	//IntFlashReadInt(BASE_CODE_LEN, &Code_total_length);
	//if(Code_total_length == 0xffff)		Code_total_length = 0;
}
Example #2
0
void Flash_Read_Mass(void)
{
	STR_flag_flash ptr_flash;
	U16_T base_addr;
	U8_T loop;
	U16_T loop2,loop1;
//	U8_T far tempbuf[500];

	ptr_flash.index = 0;
	for(loop = 0;loop < T_END;loop++)
	{
		ptr_flash.table = loop;	
		
		ptr_flash.len = Flash_Position[loop].len;
		base_addr = Flash_Position[loop].addr;
		switch(loop)
		{			
			case T_WEEK_DES:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				for(loop1 = 0;loop1 < MAX_WR1;loop1++)
				{
					memcpy(WR_Roution[loop1].UN.all,&tempbuf[WR_DESCRIPTION_SIZE * loop1],WR_DESCRIPTION_SIZE);					
				}
				break;
			case T_WEEK_ONTIME:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				
				for(loop1 = 0;loop1 < MAX_WR1;loop1++)
				{
					memcpy(&WR_Roution[loop1].OnTime,&tempbuf[WR_TIME_SIZE * loop1],WR_TIME_SIZE);					
				}
				break;
			case T_WEEK_OFFTIME:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				for(loop1 = 0;loop1 < MAX_WR1;loop1++)
				{
					memcpy(WR_Roution[loop1].OffTime,&tempbuf[WR_TIME_SIZE * loop1],WR_TIME_SIZE);					
				}
				break;
			case T_ANNUAL_DES:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				for(loop1 = 0;loop1 < MAX_AR1;loop1++)
				{
					memcpy(AR_Roution[loop1].UN.all,&tempbuf[AR_DESCRIPTION_SIZE * loop1],AR_DESCRIPTION_SIZE);					
				}
				break;
			case T_ANNUAL_TIME:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				for(loop1 = 0;loop1 < MAX_AR1;loop1++)
				{
					memcpy(AR_Roution[loop1].Time,&tempbuf[AR_TIME_SIZE * loop1],AR_TIME_SIZE);					
				}
				break;
			case T_ID:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				for(loop1 = 0;loop1 < MAX_ID;loop1++)
				{
					memcpy(ID_Config[loop1].all,&tempbuf[ID_SIZE * loop1],ID_SIZE);					
				}
				break;	

			case T_NAME:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				for(loop1 = 0;loop1 < MAX_NAME;loop1++)
				{
					memcpy(menu_name[loop1],&tempbuf[NAME_SIZE * loop1],NAME_SIZE);					
				}
				break;
			default:
				break;
		}
	}								   
}
Example #3
0
void Flash_Read_Mass(void)
{
	STR_flag_flash ptr_flash;
	U16_T base_addr;
	U8_T loop;
	U16_T loop2,loop1;
	U8_T T_END = 0;

	ptr_flash.index = 0;

	for(loop = 0;loop < MAX_POINT_TYPE;loop++)
	{
		ptr_flash.table = loop;	
		
		ptr_flash.len = Flash_Position[loop].len;
		base_addr = Flash_Position[loop].addr;

			switch(loop)
			{
			case OUT:	 				
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(outputs , tempbuf, ptr_flash.len); 
				break;
			case IN:   	
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(inputs ,tempbuf, ptr_flash.len);
				break;
			case VAR:   	
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(vars ,tempbuf, ptr_flash.len);
				break;
		/*	case CON:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(controllers ,tempbuf, ptr_flash.len);
				break;*/
			case WRT: 
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(weekly_routines ,tempbuf, ptr_flash.len);
				break;
			case AR:   	
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(annual_routines ,tempbuf, ptr_flash.len);
				break;
			case PRG:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(programs ,tempbuf, ptr_flash.len);
				break;
		/*	case TBL:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(custom_tab ,tempbuf, ptr_flash.len);
				break;
			case TZ:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(totalizers ,tempbuf, ptr_flash.len);
				break;
			case AMON:	 
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(monitors ,tempbuf, ptr_flash.len);
				break;
			case GRP:	
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(control_groups ,tempbuf, ptr_flash.len);	
				break;
			case ARRAY:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(arrays ,tempbuf, ptr_flash.len);
				break;	*/
//			case ALARMM:  
//				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
//					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
//				memcpy(alarms ,tempbuf, ptr_flash.len);
//				break;
			case ALARM_SET:  
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(alarms_set ,tempbuf, ptr_flash.len); 
				break;
		/*	case UNIT:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(units ,tempbuf, ptr_flash.len);
				break;
			case USER_NAME:
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				memcpy(passwords ,tempbuf, ptr_flash.len);
				break; */
			case WR_TIME:  	
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
				{	
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				}
				memcpy(wr_times ,tempbuf, ptr_flash.len);
				break; 
			case AR_DATA: 
				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
				{		
					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
				}
				memcpy(ar_dates ,tempbuf, ptr_flash.len);
				break;
//			case TSTAT:
//				for(loop2 = 0;loop2 < ptr_flash.len;loop2++)
//				{		
//					IntFlashReadByte(0x70000 + base_addr + loop2,&tempbuf[loop2]);
//				}
//				memcpy(tst_info ,tempbuf, ptr_flash.len);
				break;
				break;		 
			default:
				break;

			}
	
	} 	
	Flash_Read_Code();	
}
void Flash_Read_Schedule(void)
{
	STR_flag_flash ptr_flash;
	U16_T base_addr;
	U8_T loop;
	U16_T loop2, loop1;

	ptr_flash.index = 0;
	for(loop = 0; loop < T_TOTAL; loop++)
	{
		ptr_flash.table = loop;	
		
		ptr_flash.len = Flash_Position[loop].len;
		base_addr = Flash_Position[loop].addr;
		switch(loop)
		{			
			case T_WEEK_DES:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < MAX_WR; loop1++)
				{
					memcpy(WR_Roution[loop1].UN.all, &tempbuf[WR_DESCRIPTION_SIZE * loop1], WR_DESCRIPTION_SIZE);					
				}
				break;
			case T_WEEK_ONTIME:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				
				for(loop1 = 0; loop1 < MAX_WR; loop1++)
				{
					memcpy(&WR_Roution[loop1].OnTime, &tempbuf[WR_TIME_SIZE * loop1], WR_TIME_SIZE);					
				}
				break;
			case T_WEEK_OFFTIME:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < MAX_WR; loop1++)
				{
					memcpy(WR_Roution[loop1].OffTime, &tempbuf[WR_TIME_SIZE * loop1], WR_TIME_SIZE);					
				}
				break;
			case T_ANNUAL_DES:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < MAX_AR; loop1++)
				{
					memcpy(AR_Roution[loop1].UN.all, &tempbuf[AR_DESCRIPTION_SIZE * loop1], AR_DESCRIPTION_SIZE);					
				}
				break;
			case T_ANNUAL_TIME:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < MAX_AR; loop1++)
				{
					memcpy(AR_Roution[loop1].Time, &tempbuf[AR_TIME_SIZE * loop1], AR_TIME_SIZE);					
				}
				break;
			case T_ID:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < MAX_ID; loop1++)
				{
					memcpy(ID_Config[loop1].all, &tempbuf[ID_SIZE * loop1], ID_SIZE);					
				}
				break;
			case T_SCAN:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < MAX_ID; loop1++)
				{
					memcpy((U8_T *)&scan_db[loop1], &tempbuf[SCAN_DB_SIZE * loop1], SCAN_DB_SIZE);					
				}
				break;

			case T_GSM:
				for(loop2 = 0; loop2 < ptr_flash.len; loop2++)
					IntFlashReadByte(0x70000 + base_addr + loop2, &tempbuf[loop2]);
				for(loop1 = 0; loop1 < PHONE_NUM_SIZE; loop1++)
				{
					memcpy(&phoneNumber[loop1], &tempbuf[ loop1], 1);					
				}
				break;


			default:
				break;
		}
	}
}