feat(srcData):Use rand data for cluster display change

This commit is contained in:
2026-04-30 19:11:11 +08:00
parent d5b56baefc
commit fc2ab01548
5 changed files with 46 additions and 18 deletions

Binary file not shown.

View File

@@ -358,16 +358,17 @@ MbIicApi Un08 Indicator[8]; /*指示灯状态*/
#define IND_TURN_RIGHT Indicator[6].sbit.b7 /*右转向灯指示灯*/
#define IND_AUTO_PILOT Indicator[7].sbit02.b01 /*自动驾驶指示灯*/
#define IND_READY Indicator[7].sbit.b2 /*READY指示灯*/
#define IND_READY 1 //Indicator[7].sbit.b2 /*READY指示灯*/
#define IND_AC_HIGH_COST Indicator[7].sbit.b3 /*空调能耗高*/
#define IND_BAT_COLD Indicator[7].sbit.b4 /*电池温度低*/
#define IND_OTA_SILENT_MODE Indicator[7].sbit.b5 /*OTA静默模式*/
#define IND_CHARGE_CONN Indicator[7].sbit.b6 /*充电枪已连接指示灯*/
#define IND_OTA_SILENT_MODE 0 // Indicator[7].sbit.b5 /*OTA静默模式*/
#define IND_CHARGE_CONN 0 //Indicator[7].sbit.b6 /*充电枪已连接指示灯*/
#define IND_TIRED_DRIVING Indicator[7].sbit.b7 /*分神提醒二级边框闪烁标志*/
/*档位*/
enum
{
{
GEAR_INVISIBLE = 0,
GEAR_D = 1,
GEAR_N = 2,
@@ -431,7 +432,8 @@ enum
/*工作模式*/
enum
enum
{
WORK_MODE_OFF = 1,
WORK_MODE_ON = 2,
};

View File

@@ -7,12 +7,12 @@
MbIicApi Un08 srcDataBuf[ID_FRAME_R_NUM][I2C_FRAMELEN-1];
MbIicApi Un08 dstDataBuf[ID_FRAME_W_NUM][I2C_FRAMELEN-1];
#define DATA_SPEED srcDataBuf[ID_FRAME_R_0x00][0].value /*车速*/
#define DATA_SPEED 100// srcDataBuf[ID_FRAME_R_0x00][0].value /*车速*/
#define DATA_BATTERY srcDataBuf[ID_FRAME_R_0x00][1].sbit07.b06 /*电量*/
#define DATA_IND_MUTE srcDataBuf[ID_FRAME_R_0x00][1].sbit07.b7 /*静音*/
#define DATA_SPEED_WARN srcDataBuf[ID_FRAME_R_0x00][2].value /*报警车速*/
#define DATA_POWER srcDataBuf[ID_FRAME_R_0x00][3].value /*功率*/
#define DATA_GEAR srcDataBuf[ID_FRAME_R_0x00][4].sbit03.b02 /*档位*/
#define DATA_GEAR GEAR_D // srcDataBuf[ID_FRAME_R_0x00][4].sbit03.b02 /*档位*/
#define DATA_FONT_COLLOSION srcDataBuf[ID_FRAME_R_0x00][4].sbit.b3 /*前向碰撞预防系统故障灯*/
#define DATA_LANE_WARNING srcDataBuf[ID_FRAME_R_0x00][4].sbit.b4 /*车道偏离预警功能故障灯*/
#define DATA_BLIND_AUXILIARY srcDataBuf[ID_FRAME_R_0x00][4].sbit.b5 /*盲区安全辅助系统故障灯*/
@@ -20,8 +20,8 @@ MbIicApi Un08 dstDataBuf[ID_FRAME_W_NUM][I2C_FRAMELEN-1];
#define DATA_ACC_FAILURE srcDataBuf[ID_FRAME_R_0x00][4].sbit.b7 /*自适应巡航功能故障灯*/
#define DATA_TRIP_RANGE (srcDataBuf[ID_FRAME_R_0x00][5].value\
+(srcDataBuf[ID_FRAME_R_0x00][6].sbit02.b01<<8)) /*续航里程*/
#define DATA_WORK_MODE srcDataBuf[ID_FRAME_R_0x00][6].sbit02.b23 /*工作模式*/
#define DATA_CHARGING_STATE srcDataBuf[ID_FRAME_R_0x00][6].sbit04.b47 /*充电状态*/
#define DATA_WORK_MODE WORK_MODE_ON // srcDataBuf[ID_FRAME_R_0x00][6].sbit02.b23 /*工作模式*/
#define DATA_CHARGING_STATE CHARGE_DISCONNECTED // srcDataBuf[ID_FRAME_R_0x00][6].sbit04.b47 /*充电状态*/
#define DATA_SPEED_LIMIT srcDataBuf[ID_FRAME_R_0x00][7].value /*限速*/
#define DATA_DATE_DAY srcDataBuf[ID_FRAME_R_0x02][0].sbit05.b04 /*日份*/
@@ -47,12 +47,12 @@ MbIicApi Un08 dstDataBuf[ID_FRAME_W_NUM][I2C_FRAMELEN-1];
+srcDataBuf[ID_FRAME_R_0x03][4].value) /*行驶里程*/
#define DATA_TRIP_TIME ((srcDataBuf[ID_FRAME_R_0x03][6].sbit05.b04<<8)\
+srcDataBuf[ID_FRAME_R_0x03][5].value) /*行驶时间*/
#define DATA_SCREENCOLORTEST srcDataBuf[ID_FRAME_R_0x03][6].sbit14.b57 /*平均能耗*/
#define DATA_SCREENCOLORTEST 0 //srcDataBuf[ID_FRAME_R_0x03][6].sbit14.b57 /*平均能耗*/
#define DATA_AVG_ENGCOST srcDataBuf[ID_FRAME_R_0x03][7].value /*平均能耗*/
#define DATA_MODULE_L_ID srcDataBuf[ID_FRAME_R_0x04][0].sbit04.b03 /*左模块ID*/
#define DATA_LIST_CURSOR_L srcDataBuf[ID_FRAME_R_0x04][1].value /*左列表光标值*/
#define DATA_MODULE_R_ID srcDataBuf[ID_FRAME_R_0x04][4].sbit04.b03 /*右模块ID*/
#define DATA_MODULE_R_ID MODULE_R_NAVIGATION // srcDataBuf[ID_FRAME_R_0x04][4].sbit04.b03 /*右模块ID*/
#define DATA_LIST_CURSOR_R srcDataBuf[ID_FRAME_R_0x04][5].value /*右列表光标值*/
#define DATA_RADAR_SPACING_F0 srcDataBuf[ID_FRAME_R_0x0C][0].value /*雷达探测间距 前0*/
@@ -186,7 +186,7 @@ MbIicApi Un08 dstDataBuf[ID_FRAME_W_NUM][I2C_FRAMELEN-1];
#define DATA_MENU_LEFT_ID srcDataBuf[ID_FRAME_R_0x0B][0].sbit35.b02 /*左侧菜单ID*/
#define DATA_MENU_LEFT_VALUE srcDataBuf[ID_FRAME_R_0x0B][0].sbit35.b37 /*左侧菜单数值*/
#define DATA_MCU_BLT_OP_STATE srcDataBuf[ID_FRAME_R_0x0B][1].sbit02.b01 /*蓝牙电话MCU处理状态*/
#define DATA_MCU_BLT_OP_STATE 0 // srcDataBuf[ID_FRAME_R_0x0B][1].sbit02.b01 /*蓝牙电话MCU处理状态*/
#define DATA_MCU_BLT_OP_CURSOR srcDataBuf[ID_FRAME_R_0x0B][1].sbit35.b37 /*蓝牙电话MCU操作光标*/
#define DATA_MCU_BLT_OP_CLICK srcDataBuf[ID_FRAME_R_0x0B][1].sbit.b2 /*蓝牙电话MCU点击状态*/
//#define DATA_LANE_LL_LENGTH srcDataBuf[ID_FRAME_R_0x0B][3].sbit06.b05 /*左左车道线长度*/

View File

@@ -7286,12 +7286,14 @@ static Bool ShowFaceRecognition(UInt08 state)
{
GLenum err;
glBindTexture(GL_TEXTURE_2D, texPool[poolTxtFaceIdx[i]]);
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "glBindTexture failed, gl error:0x%x\n", err);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
err = glGetError();
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "hint txt before glTexImage2D, gl error:0x%x\n", err);
DBG_Log(DBG_WARN, "1.hint txt before glTexImage2D, gl error:0x%x\n", err);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, txtWidth[i], txtHeight[i], 0, GL_ALPHA, GL_UNSIGNED_BYTE, bmpPool[poolTxtFaceIdx[i]]);
err = glGetError();
if(err != GL_NO_ERROR)
@@ -9592,12 +9594,14 @@ static Bool ShowHintInfo(UInt08 hintID)
{
GLenum err;
glBindTexture(GL_TEXTURE_2D, texPool[poolTxtIdx[i]]);
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "glBindTexture failed, gl error:0x%x\n", err);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
err = glGetError();
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "hint txt before glTexImage2D, gl error:0x%x\n", err);
DBG_Log(DBG_WARN, "2.hint txt before glTexImage2D, gl error:0x%x\n", err);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, txtWidth[i], txtHeight[i], 0, GL_ALPHA, GL_UNSIGNED_BYTE, bmpPool[poolTxtIdx[i]]);
err = glGetError();
if(err != GL_NO_ERROR)
@@ -10228,12 +10232,18 @@ static Bool ShowAlarmInfo(UInt08 alarmID)
{
GLenum err;
glBindTexture(GL_TEXTURE_2D, texPool[poolTxtIdx]);
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "glBindTexture failed, gl error:0x%x\n", err);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "glPixelStorei failed, gl error:0x%x\n", err);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "glTexParameteri failed, gl error:0x%x\n", err);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
err = glGetError();
if(err != GL_NO_ERROR)
DBG_Log(DBG_WARN, "hint txt before glTexImage2D, gl error:0x%x\n", err);
DBG_Log(DBG_WARN, "3.hint txt before glTexImage2D, gl error:0x%x\n", err);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, txtWidth, txtHeight, 0, GL_ALPHA, GL_UNSIGNED_BYTE, bmpPool[poolTxtIdx]);
err = glGetError();
if(err != GL_NO_ERROR)
@@ -16006,7 +16016,8 @@ static void Render_PwrOnState()
if(chargingUI == INS_TRUE)
{
ShowChargineUI(INS_TRUE, Battery, TripRange);
//TODO:Thread 3 "clusterApp" received signal SIGSEGV, Segmentation fault.
//ShowChargineUI(INS_TRUE, Battery, TripRange);
glUseProgram(shader[Prgm_Simple_Font]);
glUniformMatrix4fv(Prgm_Simple_Font_UNFM_Prj, 1, GL_FALSE, StackMat(mPrjMatStack));
@@ -16063,6 +16074,7 @@ static void Render_PwrOnState()
{
selfTestDuration += mFrameTimeMs;
ShowSelfTest(selfTestDuration);
printf("selfTestDuration %d, mFrameTimeMs %d\r\n", selfTestDuration, mFrameTimeMs);
goto _End_Render_PwrOnState_0;
}
@@ -16774,7 +16786,10 @@ void *Render(void *argv)
preUsec = curTick.tv_usec;
#endif // COMPILE_IN_WINDOWS
if(mFrameTimeMs > 100)
{
printf("Elapsed time: %llu ms\n", mFrameTimeMs);
mFrameTimeMs = 100;
}
if(baseInit != INS_TRUE)
{
@@ -16970,7 +16985,7 @@ void *Render(void *argv)
if(mRender_RenderState == POWER_ON_STATE) // ready to switch
{
mRender_WorkMode = WORK_MODE_OFF;
//DBG_Log(DBG_INFO, "switching to work mode OFF, power_off_bmp_playing...\n");
DBG_Log(DBG_INFO, "switching to work mode OFF, power_off_bmp_playing...\n");
//mRender_RenderState = POWER_OFF_BMP_PLAYING;
/*ÎÞoff_bmp_playing¶¯»­,Ö±½ÓÇÐoff_state*/
mRender_RenderState = POWER_OFF_STATE;

View File

@@ -560,7 +560,7 @@ static void MBC_Task_ReadFrame(UInt08 frameId, UInt08 *errCnt)
// }
// if(errCnt)*errCnt = 0;
// MB_IIC_DecodeData(frameId);
MB_IIC_DecodeData(frameId);
}
static void MBC_Task_WriteFrame(UInt08 frameId, UInt08 *errCnt)
@@ -888,6 +888,17 @@ static void* MBC_Task_I2cDispatch(void* argv)
srcDataBuf[i][7].sbit04.b47, srcDataBuf[i][7].sbit04.b03);
}
}
/* TODO : tmp Add rand data for srcDataBuf */
//uint8_t srcDataBuf[15][8];
srand((unsigned)time(NULL));
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 8; j++) {
srcDataBuf[i][j].value = (UInt08)(rand() % 256);
}
}
#define I2C_REQ_MIN_PERIOD 50
gettimeofday(&cur_tick, 0);
time_gap_microsecond = (cur_tick.tv_sec - pre_tick.tv_sec) * 1000 * 1000;