/******************** Copyright @ SuZhou Inovance CO.,LTD ********************
* File Name          : f_user_main.c
* Version            : v0.1
* Date               : 2017-12
* Description        : 用户自定义程序接口函数

* History            :
   
1. Date: 2017-12  Version: v0.1
   Author:        
   ID:
   Modification: 
   
*******************************************************************************/

#include "f_user_main.h"


void userInitProc(void);
void userMainProc(void);

PARAM_CODE_DEF ParaCode;
PDO_DATA_DEF PdoData;

// 厂家提供接口函数
extern void ModuleLed3RedDispSet(Uint16 onMs, Uint16 offMs);        // 设置用户指示灯 红
extern void ModuleLed3GreenDispSet(Uint16 onMs, Uint16 offMs);      // 设置用户指示灯 绿
extern void ModuleLed3OrangeDispSet(Uint16 onMs, Uint16 offMs);     // 设置用户指示灯 橙
extern Uint16 GetSysLoadMax(void);                                  // 获取系统负载最大值
extern Uint16 GetSysLoadRealTime(void);                             // 获取系统实时负载率

extern Uint16 CanTimeOutTicker;

/******************* 测试 start***********************/

void UserLedCtrlTest(void);
Uint16 TestLoad = 0;
Uint16 TestLoadMax = 0;

/******************* 测试 end**************************/




extern void CanMainProcess(void);



// 用户程序 主循环调度之前 注意:函数名称不可更改
void userInitProc(void)
{
	
}

// 用户main函数入口 1ms调度周期 注意:函数名称不可更改
void userMainProc(void)
{
	// 全部 示例程序
	CanMainProcess();
    UserLedCtrlTest();
    
    TestLoad = GetSysLoadRealTime();                    // CPU实时负载率
    TestLoadMax = GetSysLoadMax();                      // CPU最大负载率
    
    //PdoData.SendBuff[14] = TestLoad;
    //PdoData.SendBuff[15] = TestLoadMax;
}

// 指示灯示例
void UserLedCtrlTest(void)
{
    // 接收到数据 绿灯常亮 超过1000ms未接收到数据则绿灯闪烁
	if (CanTimeOutTicker < 65535)
	{
		CanTimeOutTicker ++;
	}
    
    if (CanTimeOutTicker < 1000)
    {
    	ModuleLed3GreenDispSet(1,0);                    // 绿灯 on
    }
    else
    {
    	ModuleLed3GreenDispSet(150,150);                // 绿灯 闪烁
    }
}

/********************************* END OF FILE *********************************/
