#include "usmart.h" #include "usmart_str.h" ////////////////////////////Óû§ÅäÖÃÇø/////////////////////////////////////////////// // ÕâÏÂÃæÒª°üº¬ËùÓõ½µÄº¯ÊýËùÉêÃ÷µÄÍ·Îļþ(Óû§×Ô¼ºÌí¼Ó) #include "uart.h" #include "gpio.h" #include "extern_rtc.h" #include "rtc.h" #include "stdlib.h" #include "mbcrc.h" #include "sundry.h" #include "e2p.h" #include "system_log.h" #include "system_parameter.h" #include "upper_computer_read_log_temp.h" u8 get_rtc_time(void) { // Get_Extern_Rtc_Time(&calendar_g); Get_Sys_Rtc_Time(&calendar_g); printf("RTC_TIME = %X-%02X-%02X-%02X-%02X-%02X \r\n", calendar_g.Year, calendar_g.Month, calendar_g.Date, calendar_g.Hour, calendar_g.Minute, calendar_g.Second); return calendar_g.Second; } /*´´Ôì´Ó»úÁ÷Á¿Êý¾ÝÖ¡*/ // instant_wc_num´óÓÚ1СÓÚ10 void Create_Slave_FlowDataFrame(uint8_t instant_wc_num) { uint8_t i, byte_size = 2 + 2 * 4 + 2; uint16_t crc_check = 0; uint8_t *pfar = NULL; float random = rand() % 4 + 2.14786f; if (instant_wc_num > 10) byte_size += 2 * 4; else byte_size += instant_wc_num * 4; if ((pfar = malloc(byte_size)) != NULL) { pfar[0] = 0x42; pfar[1] = 0x3B; Float_To_Byte4(5.817f * random, &pfar[2]); // ÎÂ¶È Float_To_Byte4(34.157f * random, &pfar[6]); // ѹÁ¦ for (i = 10; i < byte_size; i += 4) Float_To_Byte4(rand() % 10 + random, &pfar[i]); crc_check = usMBCRC16(0xFFFF,pfar, byte_size - 2); pfar[byte_size - 2] = crc_check; pfar[byte_size - 1] = crc_check >> 8; } for (i = 0; i < byte_size; i++) printf("%02X ", pfar[i]); free(pfar); pfar = NULL; } /*²âÊÔ²ÎÊý´æ´¢Ð´£¨Õý³££º230407£©*/ void Test_ParaWrite(uint8_t table_num,uint8_t cnt) { Sys_Log_E2pParaMultipleWrite(&sys_store_para_table[table_num],cnt); } /*²âÊÔ²ÎÊý´æ´¢¶Á£¨Õý³££º230407£©*/ void Test_ParaRead(uint8_t table_num) { E2P_PWR_ON; // ¿ªÆôE2pµçÔ´ Sys_Log_E2pParaRead_1_Data(&sys_store_para_table[table_num]); E2P_PWR_OFF; // ¹Ø±ÕE2pµçÔ´ } /*²âÊÔÀúÊ·¼Ç¼´æ´¢£¨Õý³££º230407£©*/ void Test_CyclicWrite(uint8_t sc,uint8_t cnt) { para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_sc_before = para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_sc_after; para_amend_log_g.para_amend_union.gas_cumulate_amend_s.cumulate_sc_after = sc; Sys_Log_E2pCyclicMultipleWrite(&sys_log_cyclic_table[CYCL_GAS_CUMULATE_AMEND],(uint8_t *)¶_amend_log_g,cnt); } /*²âÊÔÀúÊ·¼Ç¼µ¹Ðò¶ÁÈ¡£¨Õý³££º230407£©*/ void Test_CyclicMultipleReverseRead(uint8_t cnt) { Sys_Log_E2pCyclicMultipleReverseRead(&sys_log_cyclic_table[CYCL_GAS_CUMULATE_AMEND],(uint8_t *)¶_amend_log_g,cnt); } /*²âÊÔÀúÊ·¼Ç¼ÕýÐò¶ÁÈ¡£¨Õý³££º230407£©*/ void Test_CyclicMultiplePositiveRead(uint8_t cnt) { Sys_Log_E2pCyclicMultiplePositiveRead(&sys_log_cyclic_table[CYCL_GAS_CUMULATE_AMEND],(uint8_t *)¶_amend_log_g,cnt,cnt); } /*²âÊÔÔ¶´«Á÷Á¿¼ÇÂ¼ÌØÊâд£¨Õý³££º230407£©*/ void Test_SendFlowDataWrite(uint8_t write_cnt) { SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T send_data_buffer; SendFlowData_LogRecordCreated(&send_data_buffer, &sys_realtime_data_g, &billing_real_para_g, &calendar_g); /*¼ÆËãУÑéºÍ*/ send_data_buffer.check_sum = CalcCheckSum(&send_data_buffer.record_time[0],SEND_FLOW_DATA_LOG_FORMAT_SIZE - 1); /*´¢´æ*/ SendFlowData_SpecialWrite((uint8_t *)&send_data_buffer,write_cnt); } /*²âÊÔÔ¶´«Á÷Á¿¼ÇÂ¼ÌØÊâ¶Á£¨Õý³££º230407£©*/ void Test_SendFlowDataRead(uint8_t read_cnt,uint8_t back_or_forward) { SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T buffer[5]; SendFlowData_SpecialRead((uint8_t *)&buffer,read_cnt,back_or_forward); } // º¯ÊýÃûÁбí³õʼ»¯(Óû§×Ô¼ºÌí¼Ó) // Óû§Ö±½ÓÔÚÕâÀïÊäÈëÒªÖ´Ðеĺ¯ÊýÃû¼°Æä²éÕÒ´® struct _m_usmart_nametab usmart_nametab[] = { #if USMART_USE_WRFUNS == 1 // Èç¹ûʹÄÜÁ˶Áд²Ù×÷ (void *)read_addr,"u32 read_addr(u32 addr)", (void *)write_addr,"void write_addr(u32 addr,u32 val)", #endif (void *)Set_Extern_Rtc_Time,"void Set_Extern_Rtc_Time(uint16_t year,uint8_t month,uint8_t day,uint8_t week,uint8_t hour,uint8_t min,uint8_t sec)", (ErrorStatus_STM32 *)Set_Sys_Rtc_Time,"HAL_StatusTypeDef Set_Sys_Rtc_Time(uint8_t year,uint8_t month,uint8_t day,uint8_t hour,uint8_t min,uint8_t sec,uint8_t week)", (u8 *)get_rtc_time,"u8 get_rtc_time(void)", (void *)Create_Slave_FlowDataFrame,"void Create_Slave_FlowDataFrame(uint8_t instant_wc_num)", (u8 *)FM25V02_data_read,"uint8_t FM25V02_data_read(uint32_t addr16)", (void *)FM25V02_data_write,"void FM25V02_data_write(uint32_t addr16,uint8_t data)", (u16 *)FM25V02_data_read_uint16,"u16 FM25V02_data_read_uint16(uint32_t addr16)", (void *)E2p_Write_Test,"void E2p_Write_Test(uint8_t data_8,uint16_t data_16,uint32_t data_32,float data_f,double data_d)", (void *)E2p_Read_Test,"void E2p_Read_Test(void)", (void *)Test_ParaWrite,"void Test_ParaWrite(uint8_t table_num,uint8_t cnt)", (void *)Test_ParaRead,"void Test_ParaRead(uint8_t table_num)", (void *)Test_CyclicWrite,"void Test_CyclicWrite(uint8_t sc,uint8_t cnt)", (void *)Test_CyclicMultipleReverseRead,"void Test_CyclicMultipleReverseRead(uint8_t cnt)", (void *)Test_CyclicMultiplePositiveRead,"void Test_CyclicMultiplePositiveRead(uint8_t cnt)", (void *)Test_SendFlowDataWrite,"void Test_SendFlowDataWrite(uint8_t write_cnt)", (void *)Test_SendFlowDataRead,"void Test_SendFlowDataRead(uint8_t read_cnt,uint8_t back_or_forward)", }; ///////////////////////////////////END/////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// // º¯Êý¿ØÖƹÜÀíÆ÷³õʼ»¯ // µÃµ½¸÷¸öÊܿغ¯ÊýµÄÃû×Ö // µÃµ½º¯Êý×ÜÊýÁ¿ struct _m_usmart_dev usmart_dev = { usmart_nametab, usmart_init, usmart_cmd_rec, usmart_exe, usmart_scan, sizeof(usmart_nametab) / sizeof(struct _m_usmart_nametab), // º¯ÊýÊýÁ¿ 0, // ²ÎÊýÊýÁ¿ 0, // º¯ÊýID 1, // ²ÎÊýÏÔʾÀàÐÍ,0,10½øÖÆ;1,16½øÖÆ 0, // ²ÎÊýÀàÐÍ.bitx:,0,Êý×Ö;1,×Ö·û´® 0, // ÿ¸ö²ÎÊýµÄ³¤¶ÈÔÝ´æ±í,ÐèÒªMAX_PARM¸ö0³õʼ»¯ 0, // º¯ÊýµÄ²ÎÊý,ÐèÒªPARM_LEN¸ö0³õʼ»¯ };