更改电脑时间后,用GETJULIANDATE函数获取时间出错。

k163x 2009-12-14 03:32:20
我无意中把电脑系统的时间调小了几分钟,结果编写的brew程序时间不能正确显示了。
显示的时间为0:0(本来应该是xx(时):xx(分)的),如果我把电脑的时间调大一点,它又能正确显示了,不知道什么原因。
代码如下:
/*===========================================================================

FILE: showtime.c
===========================================================================*/


/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEEStdLib.h"


#include "showtime.bid"


/*-------------------------------------------------------------------
Applet structure. All variables in here are reference via "pMe->"
-------------------------------------------------------------------*/
typedef struct _showtime {
AEEApplet a ; // First element of this structure must be AEEApplet
AEEDeviceInfo DeviceInfo; // always have access to the hardware device information

// add your own variables here...
uint32 count;


} showtime;

/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/
static boolean showtime_HandleEvent(showtime* pMe, AEEEvent eCode,
uint16 wParam, uint32 dwParam);
boolean showtime_InitAppData(showtime* pMe);
void showtime_FreeAppData(showtime* pMe);

static void callBack1(showtime *pMe);

/*===============================================================================
FUNCTION DEFINITIONS
=============================================================================== */

/*===========================================================================
FUNCTION: AEEClsCreateInstance
===========================================================================*/


static void callBack1 (showtime *pMe)
{



AECHAR szText[6] = {0};
JulianType date;

GETJULIANDATE(0,&date);

WSPRINTF(szText,sizeof(szText),(AECHAR*)L"%d:%d",date.wHour,date.wMinute);



IDISPLAY_DrawText(pMe->a.m_pIDisplay,AEE_FONT_BOLD,szText,-1,0,0,NULL,IDF_ALIGN_CENTER|IDF_ALIGN_MIDDLE);
IDISPLAY_Update(pMe->a.m_pIDisplay);
}

int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;

if( ClsId == AEECLSID_SHOWTIME )
{
// Create the applet and make room for the applet structure
if( AEEApplet_New(sizeof(showtime),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)showtime_HandleEvent,
(PFNFREEAPPDATA)showtime_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function

{
//Initialize applet data, this is called before sending EVT_APP_START
// to the HandleEvent function
if(showtime_InitAppData((showtime*)*ppObj))
{
//Data initialized successfully
return(AEE_SUCCESS);
}
else
{
//Release the applet. This will free the memory allocated for the applet when
// AEEApplet_New was called.
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}

} // end AEEApplet_New

}

return(EFAILED);
}


/*===========================================================================
FUNCTION SampleAppWizard_HandleEvent
===========================================================================*/
static boolean showtime_HandleEvent(showtime* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{


switch (eCode)
{
// App is told it is starting up
case EVT_APP_START:
ISHELL_SetTimer(pMe->a.m_pIShell,
3000,
(PFNNOTIFY)callBack1,
(void*)pMe);


return(TRUE);


// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...

return(TRUE);


// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...

return(TRUE);


// App is being resumed
case EVT_APP_RESUME:
// Add your code here...

return(TRUE);


// An SMS message has arrived for this app. Message is in the dwParam above as (char *)
// sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
case EVT_APP_MESSAGE:
// Add your code here...

return(TRUE);

// A key was pressed. Look at the wParam above to see which key was pressed. The key
// codes are in AEEVCodes.h. Example "AVK_1" means that the "1" key was pressed.
case EVT_KEY:
// Add your code here...

return(TRUE);
// Flip event. Look at the wParam above to know flip state.
case EVT_FLIP:
// wParam = FALSE, when flip is closed.
if(wParam == FALSE)
{
// Add your code here...
}
else
{
// Add your code here...
}

return(TRUE);

// Key-guard event. Look at the wParam above to know key-guard state.
case EVT_KEYGUARD:

// wParam = TRUE, when key-guard is enabled.
if(wParam == TRUE)
{
// Add your code here...
}
else
{
// Add your code here...
}

return(TRUE);

// If nothing fits up to this point then we'll just break out
default:
break;
}

return FALSE;
}


// this function is called when your application is starting up
boolean showtime_InitAppData(showtime* pMe)
{
// Get the device information for this handset.
// Reference all the data by looking at the pMe->DeviceInfo structure
// Check the API reference guide for all the handy device info you can get
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);

// Insert your code here for initializing or allocating resources...

pMe->count = 0;

// if there have been no failures up to this point then return success
return TRUE;
}

// this function is called when your application is exiting
void showtime_FreeAppData(showtime* pMe)
{
// insert your code here for freeing any resources you have allocated...

// example to use for releasing each interface:
// if ( pMe->pIMenuCtl != NULL ) // check for NULL first
// {
// IMENUCTL_Release(pMe->pIMenuCtl) // release the interface
// pMe->pIMenuCtl = NULL; // set to NULL so no problems trying to free later
// }
//

}

...全文
1832 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在真机上应该是没有问题的
k163x 2009-12-14
  • 打赏
  • 举报
回复
跪求达人解决,不然我只有重装系统这条路了。。
内容概要:本文探讨了将ChatGPT与工业领域结合的应用路径,提出通过将个人工作记录持续输入ChatGPT,将其培养成具备个体经验的工业AI助手。作者结合自身作为设备工程师的实际工作场景,开展实验验证:通过多次录入电机、轴承等设备的振动分析数据与诊断结论,测试ChatGPT在不同数据相似度下的响应表现。实验表明,当输入数据与历史记录高度一致时,ChatGPT能准确复现原有判断;随着工作记录积累越完整,其推理和关联能力越强,未来有望复制个人专业经验。文章强调,工业场景缺乏基础数据,难以直接用新技术解决老问题,因此“人即AI,AI即人”的渐进式融合路径更具可行性。 适合人群:从事工业设备管理、状态监测、故障诊断的工程师,以及关注AIGC在垂直行业落地的技术研究人员。 使用场景及目标:①构建基于个人经验的工业AI助手,辅助设备故障诊断决策;②探索大模型在数据稀缺工业场景下的可持续训练路径;③实现经验知识的数字化沉淀与智能复用。 阅读建议:此资源侧重于理念创新与实验验证,读者可借鉴其方法论,结合自身工作流持续输入专业数据,逐步训练专属工业AI助手,并在实践中评估其准确性与演化能力。
内容概要:本文围绕超导磁能储存系统的建模与仿真展开研究,重点基于Simulink平台构建系统动态模型,涵盖超导线圈的电磁特性、能量转换接口、冷却系统及其与电网的交互机制等关键环节。通过设置不同工况进行仿真分析,深入探究系统在电力网络中的动态响应行为、稳定性表现及能量存储效率,评估其在提升电网动态响应能力和运行稳定性方面的应用潜力。研究还结合先进控制策略(如模糊PID、遗传算法优化等),优化系统控制性能,进一步提升储能系统的调节精度与响应速度,为超导储能技术的实际工程应用提供理论依据与仿真验证支持。; 适合人群:具备电力系统、电气工程、自动化或相关专业背景,熟悉Simulink仿真环境与基本电力电子拓扑结构,从事科研、教学或工程开发的高年级本科生、研究生及科研技术人员。; 使用场景及目标:①用于高校科研教学中深入理解超导储能系统的工作原理与动态建模方法;②为电力系统仿真项目提供高保真度的储能单元建模参考;③支撑新型大容量储能系统的设计、控制策略开发与并网性能评估,目标是掌握超导磁能储存系统的全流程建模、仿真分析与控制优化方法。; 阅读建议:建议读者结合Simulink软件动手搭建系统模型,分模块实现超导线圈、变流器、冷却与控制单元,并逐步集成调试;重点关注系统在故障或负荷突变下的动态响应特性,尝试引入不同优化算法进行控制器参数整定,以深化对系统控制机理与性能边界的理解。

7,646

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧