#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³õʼ»¯
|
};
|