我正在使用 windows mobile 6.0 和 Motorola symbol.dll 开发 MC67。
我需要点亮设备中的红灯。我查看了摩托罗拉的示例,但他们没有给出方法,这让我认为没有办法用 symbol.dll 来做到这一点。
有不同的方法吗?或者您知道点亮 MC67 中红色 LED 的一般方法吗?我说红灯是因为我已经使用 Motorola Symbol.dll 成功点亮了所有其他灯
我正在使用 windows mobile 6.0 和 Motorola symbol.dll 开发 MC67。
我需要点亮设备中的红灯。我查看了摩托罗拉的示例,但他们没有给出方法,这让我认为没有办法用 symbol.dll 来做到这一点。
有不同的方法吗?或者您知道点亮 MC67 中红色 LED 的一般方法吗?我说红灯是因为我已经使用 Motorola Symbol.dll 成功点亮了所有其他灯
Symbol.Notification 命名空间中有一个类 LED(摩托罗拉的 EMDK .Net)。
我没有尝试过,但我认为它可以帮助您解决问题。
WM 上的所有 LED 通常都可以使用 NLED API 访问。问题是您必须自己找到红色 LED 的 ID:
首先获取 LED 的数量:
NLED_COUNT_INFO cInfo;
memset(&cInfo, 0, sizeof(cInfo));
NLedGetDeviceInfo(NLED_COUNT_INFO_ID, &cInfo);
然后使用 LED ON/OFF 检查每个 LED ID(有些支持 BLINK):
/*
struct NLED_SETTINGS_INFO
{
UINT LedNum; // @FIELD LED number, 0 is first LED
INT OffOnBlink; // @FIELD 0 == off, 1 == on, 2 == blink
LONG TotalCycleTime; // @FIELD total cycle time of a blink in microseconds
LONG OnTime; // @FIELD on time of a cycle in microseconds
LONG OffTime; // @FIELD off time of a cycle in microseconds
INT MetaCycleOn; // @FIELD number of on blink cycles
INT MetaCycleOff; // @FIELD number of off blink cycles
};
*/
NLED_SETTINGS_INFO settings;
memset(&settings, 0, sizeof(settings));
settings.LedNum= id;
/* 0 Off
1 On
2 Blink */
settings.OffOnBlink= onoff;
settings.TotalCycleTime=1000;
settings.OnTime = 500;
settings.OffTime=500;
settings.MetaCycleOn=5;
settings.MetaCycleOff=5;
if (!NLedSetDevice(NLED_SETTINGS_INFO_ID, &settings))
{
DEBUGMSG(true,(L"NLedSetDevice(NLED_SETTINGS_INFO_ID) failed"));
}
else
{
DEBUGMSG(true,(L"NLedSetDevice(NLED_SETTINGS_INFO_ID) success"));
}
PhoneGap对上述C API有一个CS接口:https ://github.com/hemisphire/phonegap-winmo/blob/master/NotificationCommand.cs
以上适用于所有 WM 设备,不仅是摩托罗拉。这是一种比在其他设备上无法使用的 OEM SDK 更通用的方法。