📄 cbcx.c
字号:
}
void SetPowerddC(ULLONG devID) //电表断电通知清楚功能
{
OS_WIN *w0,*w1,*w2;
UBYTE k,s[20];
UBYTE m[8];
UBYTE d[6];
UBYTE f[6];
ULLONG nID,cPswd,ncon,ncon1;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
nID = DLT645_InputID();
if (nID==0x1000000000000){CloseSubWindow(w0);return;}
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
w2 =OSCreatSubWindow(15,34,90,44,1,1,"输入密码");
m[0]=0;
k = OSEntryInWin(w2,1,2,6,m,0,0,1);
cPswd = (inpswd(m)<<8);
if(k==K_ESC) {CloseSubWindow(w2);CloseSubWindow(w1);CloseSubWindow(w0);return;}
else if(k==K_ENTER){
if (DLT645_Write485tdd(4,nID,0xC03B,cPswd,0x04,3000,3)==0){
OSMessageBox("电表断电","电表断电通知清除成功!","任意键返回...");
}
}
CloseSubWindow(w1);
CloseSubWindow(w0);
}
void SethzPowersz485(ULLONG devID)//设置电量
{
OS_WIN *w0,*w1,*w2;
UBYTE k,s[20];
ULONG a;
UBYTE m[8];
UBYTE m1[8];
UBYTE n1[8];
ULLONG nID,cPswd;
nID=0;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
//nID = DLT645_InputID();
nID=devID;
if (nID==0x1000000000000){CloseSubWindow(w0);return;}
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
// w2 =OSCreatSubWindow(15,34,90,44,1,1,"输入密码");
m[0]=0;
m[1]=0;
m[2]=0;
m[3]=0;
m[4]=0;
m[5]=0;
m[6]=0;
m[7]=0;
// k = OSEntryInWin(w2,1,2,6,m,0,0,1);
cPswd = (inpswd(m)<<8);
// if(k==K_ESC) {CloseSubWindow(w2);CloseSubWindow(w1);CloseSubWindow(w0);return;}
// else if(k==K_ENTER){
w2 = OSCreatSubWindow(15,34,90,44,1,1,"输入电量");
m1[0]=0;
k = OSEntryInWin(w2,1,2,8,m1,0,0,1); //总;
if(k==K_ESC) {CloseSubWindow(w1);CloseSubWindow(w2);CloseSubWindow(w0);return;}
else if(k==K_ENTER){
a2bcd2(m1,n1);
while(1){
if(DLT645_Write(4,nID,0xC119,cPswd,n1,0x0A,3000,3)==0){
OSMessageBox("设置电量","设置电量成功!","任意键返回...");
}
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
void SetPowersz485(ULLONG devID)//设置电量
{
OS_WIN *w0,*w1,*w2,*w3;
UBYTE k,s[20];
ULONG a;
UBYTE m[8];
UBYTE m1[8];
UBYTE n1[8];
ULLONG nID,cPswd;
nID=0;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
nID = DLT645_InputID();
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
if(nID<0x1000000000000){
while(1){
w2 =OSCreatSubWindow(15,34,90,44,1,1,"输入密码");
m[0]=0;
k = OSEntryInWin(w2,1,2,6,m,0,0,1);
cPswd = (inpswd(m)<<8);
if(k==K_ESC) break;
else if(k==K_ENTER){
while(1){
w3 = OSCreatSubWindow(15,34,90,44,1,1,"输入电量");
m1[0]=0;
k = OSEntryInWin(w3,1,2,8,m1,0,0,1); //总;
if(k==K_ESC) break;
else if(k==K_ENTER){
a2bcd2(m1,n1);
while(1){
if(DLT645_Write(4,nID,0xC119,cPswd,n1,0x0A,3000,3)==0){
OSMessageBox("设置电量","设置电量成功!","任意键返回...");
}
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w3);
CloseSubWindow(w0);
return;
}
}
}
}
}
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w3);
CloseSubWindow(w0);
}
CloseSubWindow(w1);
// CloseSubWindow(w2);
// CloseSubWindow(w3);
CloseSubWindow(w0);
}
void SetPowercx485(ULLONG devID)//设置初校电量
{
OS_WIN *w0,*w1;
UBYTE s[20];
UBYTE m[8];
UBYTE m1[8];
ULLONG nID,cPswd;
nID=0;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
nID = DLT645_InputID();
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
if(nID<0x1000000000000){
m[0]='0';
m[1]='0';
m[2]='0';
m[3]='0';
m[4]='0';
m[5]='0';
cPswd = (inpswd(m)<<8);
m1[0]=0;
m1[1]=128;
m1[2]=153;
m1[3]=153;
m1[4]=1;
m1[5]=16;
m1[6]=80;
m1[7]=229;
if(DLT645_Write(4,nID,0xC119,cPswd,m1,0x0A,3000,3)==0){
OSMessageBox("设置电量","设置电量成功!","任意键返回...");
CloseSubWindow(w1);
CloseSubWindow(w0);
return;
}
CloseSubWindow(w1);
CloseSubWindow(w0);
}
CloseSubWindow(w1);
CloseSubWindow(w0);
}
void SetPowercx485hz(ULLONG devID)//设置初校电量
{
OS_WIN *w0,*w1;
UBYTE s[20];
UBYTE m[8];
UBYTE m1[8];
ULLONG nID,cPswd;
nID=0;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
nID = DLT645_InputID();
if (nID==0xAAAAAAAAAAAA){OSMessageBox("信息","表号错误!","任意键返回...");CloseSubWindow(w0); return; }
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
if(nID<0x1000000000000){
m[0]='0';
m[1]='0';
m[2]='0';
m[3]='0';
m[4]='0';
m[5]='0';
cPswd = (inpswd(m)<<8);
m1[0]=0;
m1[1]=153;
m1[2]=153;
m1[3]=153;
m1[4]=1;
m1[5]=16;
m1[6]=80;
m1[7]=229;
if(DLT645_Write(4,nID,0xC119,cPswd,m1,0x0A,4000,3)==0){
OSMessageBox("设置电量","设置电量成功!","任意键返回...");
CloseSubWindow(w1);
CloseSubWindow(w0);
return;
}
CloseSubWindow(w1);
CloseSubWindow(w0);
}
CloseSubWindow(w1);
CloseSubWindow(w0);
}
void SetMtID485(ULLONG devID) //写电表表号
{
OS_WIN *w0,*w1;
OS_CALENDAR p;
UBYTE s[20];
ULLONG nID;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
nID = DLT645_InputID();
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
if(nID<0x1000000000000){
ID2bcd(nID,s);
if(DLT645_Write485(4,devID,0xC032,s,6,1000,3)==0) {
OSMessageBox("修改出厂编号","修改成功!","任意键返回...");
}
}
CloseSubWindow(w1);
CloseSubWindow(w0);
}
void setcolock(ULLONG devID)//写时钟频率
{
OS_WIN *w0,*w1,*w2;
UBYTE k,s[20];
UBYTE m[8];
UBYTE U[1];
ULLONG nID;
double x1,x2,x3,x4,x5;
int c1;
nID=0;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
nID = DLT645_InputID();
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
if(nID<0x1000000000000){
while(1){
w2 =OSCreatSubWindow(15,34,90,44,1,1,"输入时钟频率");
m[0]=0;
k = OSEntryInWin(w2,1,2,8,m,0,0,1);
if(k==K_ESC) break;
else if(k==K_ENTER){
x1=atof(m);
x2=32768;
x3=(x1-x2)/x2*1000000000;
if (x3<0)
{x4=-x3/1000;
x5=jinwu(x4);
x5=x5/3.05;
x5=jinwu(x5);
x5=-x5+128;
if (x5<-64){
OSMessageBox("电表时钟频率","数据超过最小值!","任意键返回...");
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
}
if (x3>0)
{x4=x3/1000;
x5=jinwu(x4);
x5=x5/3.05;
x5=jinwu(x5);
x5=x5+1;
if (x5>62){
OSMessageBox("电表时钟频率","数据超过最大值!","任意键返回...");
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
}
// a2bcd((UBYTE)x5,z)
c1=x5;
c1=(int)x5;
U[0]=0;
U[1]=0;
U[2]=0;
inttohex(c1,U);
if (DLT645_Writeclock(4,nID,0xE010,U,3,1000,3)==0){
//if(DLT645_Write485(4,devID,0xC032,s,6,1000,3)==0) {
OSMessageBox("时钟频率设置","设置时钟频率成功!","任意键返回...");
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
}
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
} //else if(k==K_ENTER){
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
// while(1){
}
void setcolockau(ULLONG devID)//写时钟频率
{
OS_WIN *w0,*w1,*w2;
UBYTE k,s[20];
UBYTE m[8];
UBYTE U[1];
ULLONG nID;
double x1,x2,x3,x4,x5;
int c1;
nID=0;
sprintf(s," ID [%04X%08X]",(ULONG)(devID>>32),(ULONG)devID);
w0 = OSCreatSubWindow(0,0,128,128,1,1,s);
//nID = DLT645_InputID();
nID=devID;
sprintf(s," ID [%04X%08X]",(ULONG)(nID>>32),(ULONG)nID);
w1 = OSCreatSubWindow(0,0,128,128,1,1,s);
if(nID<0x1000000000000){
while(1){
w2 =OSCreatSubWindow(15,34,90,44,1,1,"输入时钟频率");
m[0]=0;
k = OSEntryInWin(w2,1,2,8,m,0,0,1);
if(k==K_ESC) break;
else if(k==K_ENTER){
x1=atof(m);
x2=32768;
x3=(x1-x2)/x2*1000000000;
if (x3<0)
{x4=-x3/1000;
x5=jinwu(x4);
x5=x5/3.05;
x5=jinwu(x5);
x5=-x5+128;
if (x5<-64){
OSMessageBox("电表时钟频率","数据超过最小值!","任意键返回...");
CloseSubWindow(w1);
CloseSubWindow(w2);
CloseSubWindow(w0);
return;
}
}
if (x3>0)
{x4=x3/1000;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -