1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
//////////////////////////////////////////////////////////////////////
// Calculate the transfert time needed for inverter to interpret
// request (DIN66019-II only)
DWORD CDIN66019::TransTime(int lg, int write, int BaudRate)
{
// Reading
if(write == 0)
{
if (BaudRate == 1200) return DWORD(((lg+13)*10*5)/6)+7;
if (BaudRate == 2400) return DWORD(((lg+13)*10*5)/12)+7;
if (BaudRate == 4800) return DWORD(((lg+13)*10*5)/24)+7;
if (BaudRate == 9600) return DWORD(((lg+13)*10*5)/48)+7;
if (BaudRate == 19200) return DWORD(((lg+13)*10*5)/96)+7;
if (BaudRate == 38400) return DWORD(((lg+13)*10*5)/192)+7;
if (BaudRate == 57600) return DWORD(((lg+13)*10*5)/288)+7;
}
// Writing
else {
if (BaudRate == 1200) return DWORD(((lg+3)*10*5)/6)+7;
if (BaudRate == 2400) return DWORD(((lg+3)*10*5)/12)+7;
if (BaudRate == 4800) return DWORD(((lg+3)*10*5)/24)+7;
if (BaudRate == 9600) return DWORD(((lg+3)*10*5)/48)+7;
if (BaudRate == 19200) return DWORD(((lg+3)*10*5)/96)+7;
if (BaudRate == 38400) return DWORD(((lg+3)*10*5)/192)+7;
if (BaudRate == 57600) return DWORD(((lg+3)*10*5)/288)+7;
}
return DWORD(50);
} |
Partager