|
static const GUI_WIDGET_CREATE_INFO _aDialogCreate1[] =
{
{ WINDOW_CreateIndirect, "Window_DzPage1", ID_WINDOW_1, 1, 9, 577, 380, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text_Id11", ID_TEXT_100, 12, 17, 233, 32, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id11", ID_EDIT_100, 255, 15, 139, 33, 0, 0x05, 0 }, //0x05编辑的字符长度
{ TEXT_CreateIndirect, "Text_Id12", ID_TEXT_101, 12, 56, 233, 31, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id12", ID_EDIT_101, 255, 54, 139, 33, 0, 0x05, 0 },
{ TEXT_CreateIndirect, "Text_Id13", ID_TEXT_102, 12, 95, 233, 31, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id13", ID_EDIT_102, 255, 93, 139, 33, 0, 0x05, 0 },
{ TEXT_CreateIndirect, "Text_Id14", ID_TEXT_103, 12, 137, 233, 30, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id14", ID_EDIT_103, 255, 133, 139, 33, 0, 0x05, 0 },
{ TEXT_CreateIndirect, "Text_Id15", ID_TEXT_104, 42, 176, 203, 31, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id15", ID_EDIT_104, 255, 173, 139, 33, 0, 0x05, 0 },
{ TEXT_CreateIndirect, "Text_Id16", ID_TEXT_105, 34, 217, 210, 30, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id16", ID_EDIT_105, 255, 213, 139, 33, 0, 0x03, 0 },
{ TEXT_CreateIndirect, "Text_Id17", ID_TEXT_106, 34, 257, 210, 31, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id17", ID_EDIT_106, 255, 253, 139, 33, 0, 0x03, 0 },
{ TEXT_CreateIndirect, "Text_Id18", ID_TEXT_107, 37, 297, 207, 32, 0, 0x0, 0 },
{ EDIT_CreateIndirect, "Edit_Id18", ID_EDIT_107, 255, 293, 139, 33, 0, 0x03, 0 },
};
/*********************************************************************
*
* _cbDialog
*/
static void _cbDialog1(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
int NCode;
int Id;
char nDataStr[10];
// USER START (Optionally insert additional variables)
// USER END
switch (pMsg->MsgId)
{
case WM_PAINT: //重绘事件
/*
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_100);
sprintf(nDataStr, "%f\0", fltRatioVoltageHigh);
EDIT_SetText(hItem, nDataStr1);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_101);
sprintf(nDataStr, "%f\0", fltRatioCurrentHigh);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_102);
sprintf(nDataStr, "%f\0", fltRatioVoltagelow);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_103);
sprintf(nDataStr, "%f\0", fltRatioCurrentlow);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
*/
//@wxh 如果在一个窗口里面,直接在回调函数里面两个一起改。如果在其它窗口里面,需要发自定义消息
break;
case WM_INIT_DIALOG:
// Initialization of 'Text_Id11'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_100);
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetText(hItem, mId11_text);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
//
// Initialization of 'Edit_Id11'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_100);
// sprintf(nDataStr, "%f\0", mDz_Area1[0].nData_f);
sprintf(nDataStr, "%f\0", fltEmptyExternalVoltageCouplerCoef); //空载使用外部电压互感器后的变比
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
//
// Initialization of 'Text_Id12'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_101);
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetText(hItem, mId12_text);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
//
// Initialization of 'Edit_Id12'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_101);
// sprintf(nDataStr, "%f\0", mDz_Area1[1].nData_f);
sprintf(nDataStr, "%f\0", fltEmptyExternalCurrentCouplerCoef); //空载fltEmptyExternalCurrentCouplerCoef
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
//
// Initialization of 'Text_Id13'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_102);
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
TEXT_SetText(hItem, mId13_text);
//
// Initialization of 'Edit_Id13'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_102);
// sprintf(nDataStr, "%f\0", mDz_Area1[2].nData_f);
sprintf(nDataStr, "%f\0", fltLoadExternalVoltageCouplerCoef); //负载使用外部电压互感器后的变比
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
//
// Initialization of 'Text_Id14'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_103);
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
TEXT_SetText(hItem, mId14_text);
//
// Initialization of 'Edit_Id14'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_103);
// sprintf(nDataStr, "%f\0", mDz_Area1[3].nData_f);
sprintf(nDataStr, "%f\0", fltLoadExternalCurrentCouplerCoef); //负载使用外部电流互感器后的变比
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
// Initialization of 'Text_Id15'
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_104); //"线路电阻(mΩ)";
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
TEXT_SetText(hItem, mId15_text);
// Initialization of 'Edit_Id15'
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_104);
sprintf(nDataStr, "%f\0", fltLineResistance);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
// Initialization of 'Text_Id16'
//例如printf("%d",printf("%d\t",32));则输出32 3.原因是里面的printf打印32 (\t的输出),返回值是打印字符的个数,打印出来的是32 ,共3个字符(带转义的字符),
//因此输出外面的printf输出3.
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_105); //测电阻时的温度
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
TEXT_SetText(hItem, mId16_text);
// Initialization of 'Edit_Id16'
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_105); //nTempWhenMeasureResitance
sprintf(nDataStr, "%03d", nTempWhenMeasureResitance);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
// Initialization of 'Text_Id17'
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_106); //当前变压器的温度值
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
TEXT_SetText(hItem, mId17_text);
// Initialization of 'Edit_Id17'
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_106); //nCurTransferTemp当前变压器的温度值
sprintf(nDataStr, "%03d", nCurTransferTemp);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
// Initialization of 'Text_Id18'
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_107); //用户设定的校正目标温度
TEXT_SetFont(hItem, &GUI_FontHeiTiX26);
TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
TEXT_SetText(hItem, mId18_text);
// Initialization of 'Edit_Id18'
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_107);
// sprintf(nDataStr, "%03d\0", nAdjustTemp);
sprintf(nDataStr, "%03d", nAdjustTemp);
EDIT_SetText(hItem, nDataStr);
EDIT_SetFont(hItem, GUI_FONT_8X16X2X2);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id)
{
case ID_EDIT_100: // Notifications sent by 'Edit_Id11'
case ID_EDIT_101: // Notifications sent by 'Edit_Id12'
case ID_EDIT_102: // Notifications sent by 'Edit_Id13'
case ID_EDIT_103: // Notifications sent by 'Edit_Id14'
case ID_EDIT_104: // Notifications sent by 'Edit_Id15'
case ID_EDIT_105: // Notifications sent by 'Edit_Id16'
case ID_EDIT_106: // Notifications sent by 'Edit_Id17'
case ID_EDIT_107: // Notifications sent by 'Edit_Id18'
// case ID_EDIT_108: // Notifications sent by 'Edit_Id19'
// case ID_EDIT_109: // Notifications sent by 'Edit_Id19'
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
void SaveTransSettingTo24c256(unsigned char iArea, WM_HWIN hWin) //保存用户的设置SaveTransSettingToRtc
{
U8 i, nSel;
UINT16 temp;
char nDataStr[10];
unsigned char nData[2];
WM_HWIN hItem[10];
if (1 == iArea) //定值区1
{
hItem[0] = WM_GetDialogItem(hWin, ID_EDIT_100);
hItem[1] = WM_GetDialogItem(hWin, ID_EDIT_101);
hItem[2] = WM_GetDialogItem(hWin, ID_EDIT_102);
hItem[3] = WM_GetDialogItem(hWin, ID_EDIT_103);
hItem[4] = WM_GetDialogItem(hWin, ID_EDIT_104);
hItem[5] = WM_GetDialogItem(hWin, ID_EDIT_105);
hItem[6] = WM_GetDialogItem(hWin, ID_EDIT_106);
hItem[7] = WM_GetDialogItem(hWin, ID_EDIT_107);
// hItem[8] = WM_GetDialogItem(hWin, ID_EDIT_108);
// hItem[9] = WM_GetDialogItem(hWin, ID_EDIT_109);
for(i=0;i<5;i++) //5*4 = 20 字节
{
EDIT_GetText(hItem, nDataStr, 7);
mDz_Area1.nData_f = myatof(nDataStr);
AT24CXX_Write(4*i+DzArea1_ADDR, mDz_Area1.nByte_D, 4); // 保存到外部IIC AT24CXX
}
EDIT_GetText(hItem[5], nDataStr, 3); //测电阻时的温度
temp = myatoi(nDataStr);
nData[0]=(unsigned char)(temp>>8 & 0xFF);
nData[1]=(unsigned char)(temp & 0xFF);
AT24CXX_Write(DzArea1_ADDR+20, nData, 2); // 保存到外部IIC AT24CXX
memset(nDataStr,0x00,7); //功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
EDIT_GetText(hItem[6], nDataStr, 3); //当前变压器的温度值
temp = myatoi(nDataStr);
nData[0]=(unsigned char)(temp>>8 & 0xFF);
nData[1]=(unsigned char)(temp & 0xFF);
AT24CXX_Write(DzArea1_ADDR+22, nData, 2); // 保存到外部IIC AT24CXX
memset(nDataStr,0x00,7); //功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
EDIT_GetText(hItem[7], nDataStr, 3); //用户设定的校正目标温度
temp = myatoi(nDataStr);
nData[0]=(unsigned char)(temp>>8 & 0xFF);
nData[1]=(unsigned char)(temp & 0xFF);
AT24CXX_Write(DzArea1_ADDR+24, nData, 2); // 保存到外部IIC AT24CXX
memset(nDataStr,0x00,7); //功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
}
if (2 == iArea) //变压器容量定值区2
{
hItem[0] = WM_GetDialogItem(hWin, ID_EDIT_200);
hItem[1] = WM_GetDialogItem(hWin, ID_EDIT_201);
hItem[2] = WM_GetDialogItem(hWin, ID_EDIT_202);
hItem[3] = WM_GetDialogItem(hWin, ID_EDIT_203);
hItem[4] = WM_GetDialogItem(hWin, ID_EDIT_204);
hItem[5] = WM_GetDialogItem(hWin, ID_EDIT_205);
hItem[6] = WM_GetDialogItem(hWin, ID_EDIT_206);
for(i=0;i<7;i++)
{
EDIT_GetText(hItem, nDataStr, 7);
mDz_Area2.nData_f = myatof(nDataStr);
AT24CXX_Write(4*i+DzArea2_ADDR, mDz_Area2.nByte_D, 4); // 保存到外部IIC AT24CXX
}
if (mDz_Area2[0].nData_f != fltCap) //容量值改变
{
fltCap = mDz_Area2[0].nData_f;
unRatioCap = TRANS_CAP(fltCap);
AT24CXX_Write(DzArea2_ADDR, mDz_Area2[0].nByte_D, 4); // 保存到外部IIC AT24CXX
// 3、根据容量,自动生成电压电流
//变压器低压侧的电压/电流输入完成后,根据容量值,自动计算出电流/电压值
CBAutoCalculateVI();
}
}
if (3 == iArea) // 定值区3
{
hItem[0] = WM_GetDialogItem(hWin, ID_DROPDOWN_300);
hItem[1] = WM_GetDialogItem(hWin, ID_DROPDOWN_301);
hItem[2] = WM_GetDialogItem(hWin, ID_DROPDOWN_302);
hItem[3] = WM_GetDialogItem(hWin, ID_DROPDOWN_303);
hItem[4] = WM_GetDialogItem(hWin, ID_DROPDOWN_304);
for(i=0;i<5;i++)
{
nSel = DROPDOWN_GetSel(hItem);
if (nSel == 0) // 投入
{
mDz_Area3 |= 1<<i;
}
else if (nSel == 1) // 退出
{
mDz_Area3 &= ~(1<<i);
}
}
nData[0]=(unsigned char)(mDz_Area3>>8 & 0xFF);
nData[1]=(unsigned char)(mDz_Area3 & 0xFF);
AT24CXX_Write(DzArea3_ADDR+0, nData, 2); // 保存到外部IIC AT24CXX
}
}
编辑前面5个浮点数没有影响,后面三个温度值是整型数,有问题
编辑其中一个整型数在获取值的时候例外两个原来设的值变化了
下面三个互相影响
硬汉(Eric2013)(512464265) 13:11:03
@wxh 方便的话,论坛直接发个帖子,晚上我详细回复你file:///C:\Users\Unytech\AppData\Local\Temp\UG9`@AH2%L{}S0N6}3E~FO2.gif,你内容有点多,看着有点吃力
|
-
编辑后面三个数据整型数对例外两个有影响
|