Canoe之CAPL编程--控制HSPY-36-03程控电源
作者:互联网
variables
{
int i;
byte UART_Port = 1;
dword Power_baudrate = 9600;
int my_RS232Flag;
}
int RS232Init(dword port,dword baudrate,dword numberOfDataBits,dword numberOfStopBits,dword parity)
{
dword ConfigureFlag;
dword RS232OpenFlag;
int flag=0;
RS232OpenFlag=RS232Open(port);
if(RS232OpenFlag!=1)
{
flag=1;
}
else
{
ConfigureFlag = RS232Configure(port,baudrate,numberOfDataBits,numberOfStopBits,parity);
if(ConfigureFlag==0)
{
flag=2;
}
}
return flag;
}
void RS232SetVoltage(float import_voltage)
{
byte VoltageSet[8];
byte C1;
byte C2;
word tmp=0xFFFF;
int n;
int i;
byte V1;
byte V2;
int Input;
tmp=0xFFFF;
if(my_RS232Flag==0)
{
if(import_voltage>30)
{
import_voltage=30;
write("Voltage too hign,we change it to 30V for protect the ECU!");
}
Input=100*import_voltage;
write("Input=%d",Input);
V1=(Input)>>8;
V2=(Input)&0xFF;
VoltageSet[0]=0x00;
VoltageSet[1]=0x06;
VoltageSet[2]=0x00;
VoltageSet[3]=0x00;
VoltageSet[4]=V1;
VoltageSet[5]=V2;
for(n=0;n<6;n++)
{
tmp=VoltageSet[n]^tmp;
for(i=0;i<8;i++)
{
if(tmp&0x01)
{
tmp=tmp>>1;
tmp=(tmp^0xA001);
}
else
{
tmp=tmp>>1;
}
}
write("tmp=%x",tmp);
}
C1=tmp&0xFF;
C2=tmp>>8;
VoltageSet[6]=C1;
VoltageSet[7]=C2;
RS232Send(UART_Port,VoltageSet,8);
testStepPass("Volt","Set Voltage Succeed: %2.2fV",import_voltage);
}
else
{
testStepFail("Volt","Set Voltage Fail - PORT %dCANNOT OPEN",UART_Port);
}
}
void maintest()
{
my_RS232Flag=RS232Init(UART_Port,Power_baudrate,8,1,0);
if(my_RS232Flag==0) /* Jugde if the Power connect and UART connect OK */
{
for(i=0;i<15;i++)
{
RS232SetVoltage(i*1.00);
testWaitForTimeout(2000);
}
}
else
{
testStepFail("Volt","Power Supply - PORT %dCANNOT OPEN",UART_Port);
}
CloseRS232(UART_Port);/* Close Port */
标签:VoltageSet,03,Canoe,--,int,Input,dword,byte,tmp 来源: https://blog.csdn.net/weixin_42453001/article/details/122510793