263 lines
No EOL
5.3 KiB
Text
263 lines
No EOL
5.3 KiB
Text
/*@!Encoding:1252*/
|
|
|
|
variables
|
|
{
|
|
enum DebugLvl {
|
|
Debug = 0x00,
|
|
AlgoDebug = 0x02,
|
|
ConnDebug = 0x04,
|
|
MbDebug = 0x07,
|
|
|
|
Info = 0x10,
|
|
AlgoInfo = 0x12,
|
|
ConnInfo = 0x14,
|
|
MbInfo = 0x17,
|
|
|
|
Warning = 0x20,
|
|
AlgoWarning = 0x22,
|
|
ConnWarning = 0x24,
|
|
MbWarning = 0x27,
|
|
|
|
Error = 0x30,
|
|
AlgoError = 0x32,
|
|
ConnError = 0x34,
|
|
MbError = 0x37
|
|
};
|
|
char DebugLvlStr[4][8] = {"Debug", "Info", "Warning", "Error"};
|
|
enum DebugLvl OutputDebugLevel = Debug;
|
|
}
|
|
|
|
/// <writeDbg>
|
|
void writeDbgFormat(byte lVl, char msg[], char format[])
|
|
{
|
|
strncpy(msg, "<%NODE_NAME%> ", elCount(msg));
|
|
strncat(msg, DebugLvlStr[lVl], elCount(msg));
|
|
strncat(msg, ": ", elCount(msg));
|
|
strncat(msg, format, elCount(msg)-strlen(msg));
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[])
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], char string[])
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, string);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], char string1[], char string2[])
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, string1, string2);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num, char string[])
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num, string);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], char string[], long num)
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, string, num);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num1)
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num1);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, char string[])
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num1, num2, string);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2)
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num1, num2);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3)
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num1, num2, num3);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3, long num4)
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num1, num2, num3, num4);
|
|
}
|
|
/// <writeDbg>
|
|
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3, long num4, long num5, long num6)
|
|
{
|
|
char msg[500];
|
|
byte lVl;
|
|
|
|
if (lvl < OutputDebugLevel)
|
|
return;
|
|
lVl = (byte)lvl >> 4;
|
|
|
|
writeDbgFormat(lVl, msg, format);
|
|
writeLineEx(1, lVl, msg, num1, num2, num3, num4, num5, num6);
|
|
}
|
|
|
|
|
|
|
|
|
|
void bin_to_strhex(byte bin[], char result[])
|
|
{
|
|
char hex_str[17] = "0123456789ABCDEF";
|
|
word i;
|
|
word binsz;
|
|
|
|
binsz = elCount(bin);
|
|
if (binsz > 20)
|
|
binsz = 20;
|
|
|
|
for (i = 0; i < binsz; i++)
|
|
{
|
|
result[i * 3 + 0] = hex_str[bin[i] >> 4 ];
|
|
result[i * 3 + 1] = hex_str[bin[i] & 0x0F];
|
|
result[i * 3 + 2] = ' ';
|
|
}
|
|
|
|
if (elCount(bin) > 20) // trailing "..."
|
|
{
|
|
result[56] = '.';
|
|
result[57] = '.';
|
|
result[58] = '.';
|
|
}
|
|
result[binsz * 3 - 1] = 0;
|
|
}
|
|
|
|
void hbin_to_strhex(byte bin[], char result[])
|
|
{
|
|
char hex_str[17] = "0123456789ABCDEF";
|
|
word i;
|
|
word binsz;
|
|
|
|
binsz = elCount(bin);
|
|
if (binsz > 20)
|
|
binsz = 20;
|
|
|
|
for (i = 0; i < binsz; i++)
|
|
{
|
|
result[i * 2 + 0] = hex_str[bin[i] & 0x0F];
|
|
result[i * 2 + 1] = ' ';
|
|
}
|
|
|
|
if (elCount(bin) > 20) // trailing "..."
|
|
{
|
|
result[36] = '.';
|
|
result[37] = '.';
|
|
result[38] = '.';
|
|
}
|
|
result[binsz * 2 - 1] = 0;
|
|
}
|
|
|
|
void dbin_to_strhex(word bin[], char result[])
|
|
{
|
|
char hex_str[17] = "0123456789ABCDEF";
|
|
word i;
|
|
word binsz;
|
|
byte offset;
|
|
|
|
binsz = elCount(bin);
|
|
if (binsz > 20)
|
|
binsz = 20;
|
|
|
|
for (i = 0; i < binsz; i++)
|
|
{
|
|
result[i * 5 + 0] = hex_str[(bin[i] >> 12) & 0x0F];
|
|
result[i * 5 + 1] = hex_str[(bin[i] >> 8) & 0x0F];
|
|
result[i * 5 + 2] = hex_str[(bin[i] >> 4) & 0x0F];
|
|
result[i * 5 + 3] = hex_str[(bin[i] ) & 0x0F];
|
|
result[i * 5 + 4] = ' ';
|
|
}
|
|
|
|
if (elCount(bin) > 20) // trailing "..."
|
|
{
|
|
result[96] = '.';
|
|
result[97] = '.';
|
|
result[98] = '.';
|
|
}
|
|
result[(byte)(binsz * 2.5) - 1] = 0;
|
|
} |