随着经济的发展,我国的物流运输已建成由铁路运输、公路运输、水路运输、航空运输和管道运输的综合物流体系,物流行业的发展也带动了货物生产产业链的升级。但物流运输行业还存在着缺乏智能化管理的弊端,因此引入物联网资产跟踪设备有助于物流运输企业在管理中找到新的方向。
资产跟踪设备是通过物联网技术对企业的资产进行实时追踪,包括该资产的具体位置、环境状态以及运动路径等。专业从事物联网资产跟踪设备研发的通信公司,还能够根据企业用户的业务模式,提供不同功能的设备,为资产提供定制化的保障服务。其中包括了人员定位、车辆跟踪、运输状态跟踪、环境监测等功能。 指示灯作为设备是否正常运转的重要标志,在开发过程中,相关工作人员总结了设备指示灯的驱动设计。 设备指示灯简介:
设备指示灯主要用于指示设备状态,通过指示灯的不同状态可以了解设备处于什么样的一个工作状态。 两种指示灯的实现方式:
硬件电路:
指示灯的硬件驱动比较简单,一般通过一个IO直接驱动指示灯或者通过三极管间接驱动指示灯,这里不多做介绍。
软件实现: (1)RTOS方式 typedef enum { Led_OFF = 0, Led_Normal, Led_Debug }LedMode_t;
void LedTask(void*param) { LedMode_t ledmode = Led_Normal; Q_Handle_LedMode = xQueueCreate(1,sizeof(LedMode_t)); while(1) { if(Q_Handle_LedMode != NULL) xQueueReceive(Q_Handle_LedMode,&ledmode,0);
switch((uint16_t)ledmode)
{
default:
case Led_OFF:
SysLED_OFF;
osDelay(1000);
break;
case Led_Normal:
SysLED_ON;
osDelay(100);
SysLED_OFF;
osDelay(100);
break;
case Led_Debug:
SysLED_ON;
osDelay(500);
SysLED_OFF;
osDelay(500);
break;
}
} } (2)裸机方式 裸机是通过定时器来实现。以下代码主要放在定时器中断内实现,不会影响其他任务有影响。 typedef enum SysLedMode { OFF=1, Normal, Debug, }SysLedMode_t; void LEDTsak(void) { static uint32_t time = 0; time++; switch (LedMode) { default: case OFF: LED_OFF; time = 0; break; case Normal: if(time < 100) LED_ON; else LED_OFF; if(time > 1000) time = 0; break; case Debug: if(time < 100) LED_ON; else LED_OFF; if(time > 200) time = 0; break; } }
从事该设备开发的工作人员或企业使用的用户,在遇到类似问题时,可参考以上思路进行尝试。
|