|
发表于 2019-12-25 11:26:08
|
显示全部楼层
记录下RL-FLASHFS出现的问题,
写数据部分代码:
void CAN_Write_CSV_File(const char* path, CAN_SAVE_MSG_T* can_save_msg)
{
fsTime timedate;
sys_time_t* sys_time;
const uint8_t WriteText[] = {"序号,帧 类 型,ID,帧 数 据,时间\r\n"};
char frame_type[10]; // 帧类型:1:扩展数据帧,2:标准数据帧,3:标准远程帧,4:扩展远程帧
sys_time = get_sys_time();
/*
1. 打开文件,如果没有此文件会自动创建。
2. 第二个参数表示向此文件写数据都从尾部开始添加。
*/
/* 写数据,如果是第一次写数据 */
if ((FILE_SAVE_CLOSE == can_save_msg->file_state) || (0 == (can_save_msg->frame_idx%CAN_SAVE_PER)))
{
for (;;)
{
can_save_msg->fout = fopen (path, "a+");
if (NULL != can_save_msg->fout)
{
can_save_msg->file_state = FILE_SAVE_OPEN;
/* 设置文件或目录时间戳 */
timedate.year = (sys_time->year<1980)?1980:sys_time->year;;
timedate.mon = sys_time->month;
timedate.day = sys_time->day;
timedate.hr = sys_time->hour;
timedate.min = sys_time->min;
timedate.sec = sys_time->sec;
ftime_set (path, &timedate, &timedate, &timedate);
break;
}
osDelay(2);
}
}
if (NULL != can_save_msg->fout)
{
/* 写数据,如果是第一次写数据,先写CSV文件的表项的题目,以后写数据不再需要写此表项 */
if (0 == (can_save_msg->frame_idx%CAN_SAVE_NWE_FILE))
{
fprintf(can_save_msg->fout, (char *)WriteText);
fflush(can_save_msg->fout);
}
/* 帧类型:0:扩展数据帧,1:扩展远程帧,2:标准数据帧,3:标准远程帧 */
memcpy(frame_type, fram_type_table[can_save_msg->frame_type], sizeof(frame_type));
if (2 > can_save_msg->frame_type)
{
/* 扩展帧 */
fprintf(can_save_msg->fout, "%-d,%-s,%02X %02X %02X %02X,%02X %02X %02X %02X %02X %02X %02X %02X,%4d-%02d-%02d %02d:%02d:%02d:%03d\r\n", \
can_save_msg->frame_idx, \
frame_type, \
(unsigned char)(can_save_msg->ID>>24), \
(unsigned char)(can_save_msg->ID>>16), \
(unsigned char)(can_save_msg->ID>>8), \
(unsigned char)can_save_msg->ID, \
can_save_msg->Data[0], \
can_save_msg->Data[1], \
can_save_msg->Data[2], \
can_save_msg->Data[3], \
can_save_msg->Data[4], \
can_save_msg->Data[5], \
can_save_msg->Data[6], \
can_save_msg->Data[7], \
sys_time->year, \
sys_time->month, \
sys_time->day, \
sys_time->hour, \
sys_time->min, \
sys_time->sec, \
sys_time->msec);
}
else
{
/* 标准帧 */
fprintf(can_save_msg->fout, "%-d,%-s,%02X %02X,%02X %02X %02X %02X %02X %02X %02X %02X,%4d-%02d-%02d %02d:%02d:%02d:%03d\r\n", \
can_save_msg->frame_idx, \
frame_type, \
(unsigned char)(can_save_msg->ID>>8), \
(unsigned char)can_save_msg->ID, \
can_save_msg->Data[0], \
can_save_msg->Data[1], \
can_save_msg->Data[2], \
can_save_msg->Data[3], \
can_save_msg->Data[4], \
can_save_msg->Data[5], \
can_save_msg->Data[6], \
can_save_msg->Data[7], \
sys_time->year, \
sys_time->month, \
sys_time->day, \
sys_time->hour, \
sys_time->min, \
sys_time->sec, \
sys_time->msec);
}
fflush(can_save_msg->fout);
if (NULL != ferror(can_save_msg->fout))
{
printf("写入内容失败\r\n");
}
if ((CAN_SAVE_PER-1) == (can_save_msg->frame_idx%CAN_SAVE_PER))
{
/* 关闭文件 */
for (;;)
{
if (0 == fclose (can_save_msg->fout))
{
can_save_msg->file_state = FILE_SAVE_CLOSE;
can_save_msg->fout = NULL;
break;
}
osDelay(2);
}
}
}
else
{
printf("打开文件失败\r\n");
}
}
|
-
-
can2_3.csv是我把另一个can2_2.csv重命名来的
|