|
@@ -40,13 +40,13 @@ struct Current_cmd_Proc Psu_cmd={
|
|
|
0x0E001C00,
|
|
|
};
|
|
|
|
|
|
-#define DEBUG 1
|
|
|
+#define DEBUG_LIB 0
|
|
|
|
|
|
-void PRINTF_FUNC(char *string, ...);
|
|
|
+void PRINTF_LIB_FUNC(char *string, ...);
|
|
|
|
|
|
-void PRINTF_FUNC(char *string, ...)
|
|
|
+void PRINTF_LIB_FUNC(char *string, ...)
|
|
|
{
|
|
|
- if (DEBUG)
|
|
|
+ if (DEBUG_LIB)
|
|
|
{
|
|
|
va_list args;
|
|
|
char buffer[4096];
|
|
@@ -121,7 +121,7 @@ int InitCanBus()
|
|
|
struct sockaddr_can addr0;
|
|
|
|
|
|
system("/sbin/ip link set can1 down");
|
|
|
- system("/sbin/ip link set can1 type can bitrate 125000 restart-ms 100");
|
|
|
+ system("/sbin/ip link set can1 type can bitrate 500000 restart-ms 100");
|
|
|
system("/sbin/ip link set can1 up");
|
|
|
|
|
|
s0 = socket(PF_CAN, SOCK_RAW, CAN_RAW);
|
|
@@ -131,21 +131,21 @@ int InitCanBus()
|
|
|
if (setsockopt(s0, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(struct timeval)) < 0)
|
|
|
{
|
|
|
#ifdef SystemLogMessage
|
|
|
- PRINTF_FUNC("Set SO_RCVTIMEO NG");
|
|
|
+ PRINTF_LIB_FUNC("Set SO_RCVTIMEO NG");
|
|
|
#endif
|
|
|
}
|
|
|
nbytes=40960;
|
|
|
if (setsockopt(s0, SOL_SOCKET, SO_RCVBUF, &nbytes, sizeof(int)) < 0)
|
|
|
{
|
|
|
#ifdef SystemLogMessage
|
|
|
- PRINTF_FUNC("Set SO_RCVBUF NG");
|
|
|
+ PRINTF_LIB_FUNC("Set SO_RCVBUF NG");
|
|
|
#endif
|
|
|
}
|
|
|
nbytes=40960;
|
|
|
if (setsockopt(s0, SOL_SOCKET, SO_SNDBUF, &nbytes, sizeof(int)) < 0)
|
|
|
{
|
|
|
#ifdef SystemLogMessage
|
|
|
- PRINTF_FUNC("Set SO_SNDBUF NG");
|
|
|
+ PRINTF_LIB_FUNC("Set SO_SNDBUF NG");
|
|
|
#endif
|
|
|
}
|
|
|
|
|
@@ -184,8 +184,8 @@ void ReceiveDataFromCanBus()
|
|
|
//if master id
|
|
|
if(target == 0xF0)
|
|
|
{
|
|
|
- //PRINTF_FUNC("Get-INFYPWR-Msg : %08x - %02x%02x%02x%02x%02x%02x%02x%02x\n", frame.can_id,frame.data[0], frame.data[1], frame.data[2], frame.data[3],frame.data[4], frame.data[5], frame.data[6], frame.data[7]);
|
|
|
- //PRINTF_FUNC("Get-INFYPWR-Msg : %08x cmd:%08x target:%02x group:%02x address:%02x\n", frame.can_id, intCmd, target, group, address);
|
|
|
+ //PRINTF_LIB_FUNC("Get-INFYPWR-Msg : %08x - %02x%02x%02x%02x%02x%02x%02x%02x\n", frame.can_id,frame.data[0], frame.data[1], frame.data[2], frame.data[3],frame.data[4], frame.data[5], frame.data[6], frame.data[7]);
|
|
|
+ //PRINTF_LIB_FUNC("Get-INFYPWR-Msg : %08x cmd:%08x target:%02x group:%02x address:%02x\n", frame.can_id, intCmd, target, group, address);
|
|
|
|
|
|
switch (intCmd)
|
|
|
{
|
|
@@ -239,7 +239,7 @@ void ReceiveDataFromCanBus()
|
|
|
((word) frame.data[0] * 256 ) + (word) frame.data[1],
|
|
|
((word) frame.data[2] * 256 ) + (word) frame.data[3]);
|
|
|
}
|
|
|
- //PRINTF_FUNC("INFYPWR_GET_VEXT_IAVAIL_MSG \n");
|
|
|
+ //PRINTF_LIB_FUNC("INFYPWR_GET_VEXT_IAVAIL_MSG \n");
|
|
|
break;
|
|
|
|
|
|
case INFYPWR_GET_MISC_INFO_MSG:
|
|
@@ -250,7 +250,7 @@ void ReceiveDataFromCanBus()
|
|
|
((word) frame.data[0] * 256 ) + (word) frame.data[1],
|
|
|
(((int) frame.data[4] << 24) + ((int) frame.data[5] << 16) + ((int) frame.data[6] << 8) + (int) frame.data[7]) & 0x00ffffff);
|
|
|
}
|
|
|
- //PRINTF_FUNC("INFYPWR_GET_MISC_INFO_MSG \n");
|
|
|
+ //PRINTF_LIB_FUNC("INFYPWR_GET_MISC_INFO_MSG \n");
|
|
|
break;
|
|
|
|
|
|
|
|
@@ -350,7 +350,7 @@ bool InitialCommunication()
|
|
|
|
|
|
if(CanFd < 0)
|
|
|
{
|
|
|
- PRINTF_FUNC("Init can bus fail.\n");
|
|
|
+ PRINTF_LIB_FUNC("Init can bus fail.\n");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -361,7 +361,7 @@ bool InitialCommunication()
|
|
|
}
|
|
|
else if(recFork > 0)
|
|
|
{
|
|
|
- PRINTF_FUNC("fork fail\n");
|
|
|
+ PRINTF_LIB_FUNC("fork fail\n");
|
|
|
}
|
|
|
|
|
|
return true;
|
|
@@ -380,7 +380,7 @@ void RequestModuleTotalMumbert(void)
|
|
|
//void PsuAddressAssignment(byte phy_addr, char *serial_number, byte real_addr, byte group)
|
|
|
void PsuAddressAssignment(byte phy_addr, byte group)
|
|
|
{
|
|
|
- PRINTF_FUNC("phy_addr = %d, group = %d \n", phy_addr, group);
|
|
|
+ PRINTF_LIB_FUNC("phy_addr = %d, group = %d \n", phy_addr, group);
|
|
|
uint cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_GROUP_ASSINGMENT_MSG | (phy_addr << 8) | INFYPWR_MASTER_TXID;
|
|
|
|
|
|
byte data[8];
|
|
@@ -393,7 +393,7 @@ void PsuAddressAssignment(byte phy_addr, byte group)
|
|
|
void GetStatus(byte group, byte address)
|
|
|
{
|
|
|
//如果用 group 發送 (該 group 內的模組會自動依序回應)
|
|
|
- //PRINTF_FUNC("PSU_C_DLL : GetStatus. group = %x, address = %x \n", group, address);
|
|
|
+ //PRINTF_LIB_FUNC("PSU_C_DLL : GetStatus. group = %x, address = %x \n", group, address);
|
|
|
uint cmd;
|
|
|
byte data[8];
|
|
|
|
|
@@ -491,7 +491,7 @@ void SetMiscInfo(byte group, byte address, unsigned short CmdType, unsigned int
|
|
|
int cmd;
|
|
|
byte data[8];
|
|
|
|
|
|
- //PRINTF_FUNC("cmd = %x \n", cmd);
|
|
|
+ //PRINTF_LIB_FUNC("cmd = %x \n", cmd);
|
|
|
|
|
|
memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
|
|
@@ -513,13 +513,13 @@ void SetMiscInfo(byte group, byte address, unsigned short CmdType, unsigned int
|
|
|
if(group == SET_GROUP_CMD)
|
|
|
{
|
|
|
cmd = INFYPWR_GROUP_CMD | INFYPWR_SET_MISC_INFO_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
- //PRINTF_FUNC("Module-onoff(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+ //PRINTF_LIB_FUNC("Module-onoff(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
}
|
|
|
//如果是模組命令則找出模組對應到 (英飛源的ID)
|
|
|
else
|
|
|
{
|
|
|
cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_MISC_INFO_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
- // PRINTF_FUNC("Modele-onoff(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+ // PRINTF_LIB_FUNC("Modele-onoff(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
}
|
|
|
|
|
|
SendCmdToPsu(cmd, data, sizeof(data));
|
|
@@ -527,7 +527,7 @@ void SetMiscInfo(byte group, byte address, unsigned short CmdType, unsigned int
|
|
|
|
|
|
void GetPresentInputVol(byte group, byte address)
|
|
|
{
|
|
|
- //PRINTF_FUNC("PSU_C_DLL : GetPresentInputVol. group = %x, address = %x \n", group, address);
|
|
|
+ //PRINTF_LIB_FUNC("PSU_C_DLL : GetPresentInputVol. group = %x, address = %x \n", group, address);
|
|
|
//如果用 group 發送 (該 group 內的模組會自動依序回應)
|
|
|
uint cmd;
|
|
|
byte data[8];
|
|
@@ -570,7 +570,7 @@ void GetAvailableCap(byte group, byte address, short _outputVol)
|
|
|
|
|
|
void GetPresentOutput(byte group, byte address)
|
|
|
{
|
|
|
- //PRINTF_FUNC("PSU_C_DLL : GetPresentOutput. group = %x, address = %x \n", group, address);
|
|
|
+ //PRINTF_LIB_FUNC("PSU_C_DLL : GetPresentOutput. group = %x, address = %x \n", group, address);
|
|
|
int cmd;
|
|
|
byte data[8];
|
|
|
|
|
@@ -597,13 +597,13 @@ void SetPresentOutput(byte group, byte address, float vol, float cur, float Avai
|
|
|
//if (cur >= AvailableCur)
|
|
|
//cur = AvailableCur;
|
|
|
|
|
|
- //if(vol == 0 && cur == 0)PRINTF_FUNC("output v=0 a =0 \n");
|
|
|
- //PRINTF_FUNC("group = %d, address = %d, vol = %f, cur = %f \n", group, address, vol, cur);
|
|
|
+ //if(vol == 0 && cur == 0)PRINTF_LIB_FUNC("output v=0 a =0 \n");
|
|
|
+ //PRINTF_LIB_FUNC("group = %d, address = %d, vol = %f, cur = %f \n", group, address, vol, cur);
|
|
|
//英飛源使用 0.001 精度
|
|
|
uint vol2 = vol * 100;
|
|
|
uint cur2 = cur * 100;
|
|
|
|
|
|
- //PRINTF_FUNC("vol = %f, cur = %f, vol2 = %d, cur2 = %d \n", vol, cur, vol2, cur2);
|
|
|
+ //PRINTF_LIB_FUNC("vol = %f, cur = %f, vol2 = %d, cur2 = %d \n", vol, cur, vol2, cur2);
|
|
|
|
|
|
// 電壓
|
|
|
data[0] = (vol2 >> 24) & 0xff;
|
|
@@ -621,7 +621,7 @@ void SetPresentOutput(byte group, byte address, float vol, float cur, float Avai
|
|
|
// if(group == SET_GROUP_CMD)
|
|
|
// {
|
|
|
// cmd = INFYPWR_GROUP_CMD | INFYPWR_SET_GROUP_PERSENT_OUTPUT_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
-// //PRINTF_FUNC("setout(G) :%08x /n",cmd);
|
|
|
+// //PRINTF_LIB_FUNC("setout(G) :%08x /n",cmd);
|
|
|
// }
|
|
|
// //如果是模組命令則找出模組對應到 (英飛源的ID)
|
|
|
// else
|
|
@@ -646,10 +646,10 @@ void SetPresentOutput(byte group, byte address, float vol, float cur, float Avai
|
|
|
// }
|
|
|
// */
|
|
|
// cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_MODULE_PERSENT_OUTPUT_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
-// //PRINTF_FUNC("setout(M) :%08x /n",cmd);
|
|
|
+// //PRINTF_LIB_FUNC("setout(M) :%08x /n",cmd);
|
|
|
// }
|
|
|
|
|
|
- PRINTF_FUNC("typecmd = %02x, addr = %02x ,vol = %d, tot_Amp = %f, need_cur = %d, \n",
|
|
|
+ PRINTF_LIB_FUNC("typecmd = %02x, addr = %02x ,vol = %d, tot_Amp = %f, need_cur = %d, \n",
|
|
|
group, address, vol2, AvailableCur, cur2);
|
|
|
SendCmdToPsu(cmd, data, sizeof(data));
|
|
|
}
|
|
@@ -671,13 +671,13 @@ void EnableGreenLedFlash(byte group, byte address, byte value)
|
|
|
// if(group == SET_GROUP_CMD)
|
|
|
// {
|
|
|
// cmd = INFYPWR_GROUP_CMD | INFYPWR_SET_GREEN_KED_FLASH_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
-// //PRINTF_FUNC("Green Led Flash(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+// //PRINTF_LIB_FUNC("Green Led Flash(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
// }
|
|
|
// //如果是模組命令則找出模組對應到 (英飛源的ID)
|
|
|
// else
|
|
|
// {
|
|
|
// cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_GREEN_KED_FLASH_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
-// //PRINTF_FUNC("Green Led Flash(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+// //PRINTF_LIB_FUNC("Green Led Flash(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
// }
|
|
|
|
|
|
SendCmdToPsu(cmd, data, sizeof(data));
|
|
@@ -700,13 +700,13 @@ void EnableWalkInMode(byte group, byte address, byte value)
|
|
|
if(group == SET_GROUP_CMD)
|
|
|
{
|
|
|
cmd = INFYPWR_GROUP_CMD | INFYPWR_SET_WALKIN_MODE_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
- //PRINTF_FUNC("WalkIn(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+ //PRINTF_LIB_FUNC("WalkIn(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
}
|
|
|
//如果是模組命令則找出模組對應到 (英飛源的ID)
|
|
|
else
|
|
|
{
|
|
|
cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_WALKIN_MODE_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
- // PRINTF_FUNC("WalkIn(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+ // PRINTF_LIB_FUNC("WalkIn(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
}
|
|
|
|
|
|
SendCmdToPsu(cmd, data, sizeof(data));
|
|
@@ -729,13 +729,13 @@ void EnableSleepMode(byte group, byte address, byte value)
|
|
|
if(group == SET_GROUP_CMD)
|
|
|
{
|
|
|
cmd = INFYPWR_GROUP_CMD | INFYPWR_SET_SLEEP_MODE_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
- //PRINTF_FUNC("SleepMode(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+ //PRINTF_LIB_FUNC("SleepMode(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
}
|
|
|
//如果是模組命令則找出模組對應到 (英飛源的ID)
|
|
|
else
|
|
|
{
|
|
|
cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_SLEEP_MODE_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
- //PRINTF_FUNC("SleepMode(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+ //PRINTF_LIB_FUNC("SleepMode(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
}
|
|
|
|
|
|
SendCmdToPsu(cmd, data, sizeof(data));
|
|
@@ -770,7 +770,7 @@ void EnableOutputPower(byte group, byte address, byte value)
|
|
|
int cmd;
|
|
|
byte data[8];
|
|
|
|
|
|
- //PRINTF_FUNC("cmd = %x \n", cmd);
|
|
|
+ //PRINTF_LIB_FUNC("cmd = %x \n", cmd);
|
|
|
|
|
|
memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
|
|
@@ -786,13 +786,13 @@ void EnableOutputPower(byte group, byte address, byte value)
|
|
|
// if(group == SET_GROUP_CMD)
|
|
|
// {
|
|
|
// cmd = INFYPWR_GROUP_CMD | INFYPWR_SET_POWER_SWITCH_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
-// //PRINTF_FUNC("Module-onoff(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+// //PRINTF_LIB_FUNC("Module-onoff(g) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
// }
|
|
|
// //如果是模組命令則找出模組對應到 (英飛源的ID)
|
|
|
// else
|
|
|
// {
|
|
|
// cmd = INFYPWR_MODULE_CMD | INFYPWR_SET_POWER_SWITCH_MSG | (address << 8) | INFYPWR_MASTER_TXID;
|
|
|
-// // PRINTF_FUNC("Modele-onoff(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
+// // PRINTF_LIB_FUNC("Modele-onoff(M) :%08x - %d - %d \n",cmd, data[0],address);
|
|
|
// }
|
|
|
|
|
|
SendCmdToPsu(cmd, data, sizeof(data));
|