You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
9.9 KiB
288 lines
9.9 KiB
/*++
|
|
|
|
Module Name:
|
|
pssframe.c
|
|
|
|
Abstract:
|
|
This module logs the content of DISs and DCSs into PSS log file.
|
|
|
|
Author:
|
|
Jonathan Barner (t-jonb) Mar, 2001
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "prep.h"
|
|
|
|
#include "psslog.h"
|
|
#define FILE_ID FILE_ID_PSSFRAME
|
|
|
|
|
|
/*++
|
|
Routine Description:
|
|
Logs DIS details to PSS log, using the supplied info.
|
|
Arguments:
|
|
pTG
|
|
lpszModulations, bFineRes, b2D, lpszPageWidth, lpszPageLength, lpszMinLineTime - info to log
|
|
Return Value:
|
|
None
|
|
--*/
|
|
void LogDISDetails(PThrdGlbl pTG,
|
|
LPSTR lpszModulations,
|
|
BOOL bFineRes,
|
|
BOOL b2D,
|
|
LPSTR lpszPageWidth,
|
|
LPSTR lpszPageLength,
|
|
LPSTR lpszMinLineTime)
|
|
{
|
|
PSSLogEntry(PSS_MSG, 1, "- Supported Modulations: %s", lpszModulations);
|
|
PSSLogEntry(PSS_MSG, 1, "- Ability to use fine resolution: %s", bFineRes ? _T("Yes") : _T("No"));
|
|
PSSLogEntry(PSS_MSG, 1, "- Ability to use 2D coding: %s", b2D ? _T("Yes") : _T("No"));
|
|
PSSLogEntry(PSS_MSG, 1, "- Supported Page Width: %s", lpszPageWidth);
|
|
PSSLogEntry(PSS_MSG, 1, "- Supported Page Length: %s", lpszPageLength);
|
|
PSSLogEntry(PSS_MSG, 1, "- Minimum scan line time: %s", lpszMinLineTime);
|
|
}
|
|
|
|
|
|
/*++
|
|
Routine Description:
|
|
Logs DCS details to PSS log, using the supplied info.
|
|
Arguments:
|
|
pTG
|
|
lpszModulations, bFineRes, b2D, lpszPageWidth, lpszPageLength, lpszLineTime - info to log
|
|
Return Value:
|
|
None
|
|
--*/
|
|
void LogDCSDetails(PThrdGlbl pTG,
|
|
LPSTR lpszModulation,
|
|
BOOL bFineRes,
|
|
BOOL b2D,
|
|
DWORD dwPageWidth,
|
|
LPSTR lpszPageLength,
|
|
LPSTR lpszLineTime)
|
|
{
|
|
PSSLogEntry(PSS_MSG, 1, "- Session Modulation is: %s", lpszModulation);
|
|
PSSLogEntry(PSS_MSG, 1, "- Use fine resolution: %s", bFineRes ? _T("Yes") : _T("No"));
|
|
PSSLogEntry(PSS_MSG, 1, "- Use 2D coding: %s", b2D ? _T("Yes") : _T("No"));
|
|
PSSLogEntry(PSS_MSG, 1, "- Page width is %d", dwPageWidth);
|
|
PSSLogEntry(PSS_MSG, 1, "- Page length is %s", lpszPageLength);
|
|
PSSLogEntry(PSS_MSG, 1, "- Scan line time: %s", lpszLineTime);
|
|
}
|
|
|
|
// This table applies to both DIS and DCS, in both class1 and class2
|
|
LPSTR ppszMinLineTime[8] = { // Bits 21-23 (leftmost is 23)
|
|
_T("20"), // 000
|
|
_T("5"), // 001
|
|
_T("10"), // 010
|
|
_T("20/10"), // 011
|
|
_T("40"), // 100
|
|
_T("40/20"), // 101
|
|
_T("10/5"), // 110
|
|
_T("0") // 111
|
|
};
|
|
|
|
// *************************** CLASS 1 ****************************
|
|
|
|
/*++
|
|
Routine Description:
|
|
Logs DIS details to PSS log, using the supplied NPDIS.
|
|
Arguments:
|
|
pTG
|
|
npdis - DIS to log
|
|
Return Value:
|
|
None
|
|
--*/
|
|
void LogClass1DISDetails(PThrdGlbl pTG, NPDIS npdis)
|
|
{
|
|
static LPSTR ppszCapsDesc[16] = { // Bits 11-14 (leftmost is 14)
|
|
_T("V.27 ter fallback"), // 0000
|
|
_T("V.29"), // 0001
|
|
_T("V.27 ter"), // 0010
|
|
_T("V.27 ter, V.29"), // 0011
|
|
_T(""), // 0100
|
|
_T(""), // 0101
|
|
_T(""), // 0110
|
|
_T("V.27 ter, V.29, V.33"), // 0111
|
|
_T(""), // 1000
|
|
_T(""), // 1001
|
|
_T(""), // 1010
|
|
_T("V.27 ter, V.29, V.33, V.17"), // 1011
|
|
_T(""), // 1100
|
|
_T(""), // 1101
|
|
_T(""), // 1110
|
|
_T("") // 1111
|
|
};
|
|
static LPSTR ppszWidthDesc[4] = { // Bits 17-18 (leftmost is 18)
|
|
_T("1728"), // 00
|
|
_T("1728, 2048"), // 01
|
|
_T("1728, 2048, 2432"), // 10
|
|
_T("invalid (interpreted as 1728, 2048, 2432)") //11
|
|
};
|
|
static LPSTR ppszLengthDesc[4] = { // Bits 19-20 (leftmost is 20)
|
|
_T("A4"), // 00
|
|
_T("A4 and B4"), // 01
|
|
_T("Unlimited"), // 10
|
|
_T("invalid") // 11
|
|
};
|
|
|
|
if (npdis == NULL)
|
|
{
|
|
_ASSERT(FALSE);
|
|
return;
|
|
}
|
|
LogDISDetails(pTG,
|
|
ppszCapsDesc[npdis->Baud],
|
|
(npdis->ResFine_200 == 1),
|
|
(npdis->MR_2D == 1),
|
|
ppszWidthDesc[npdis->PageWidth],
|
|
ppszLengthDesc[npdis->PageLength],
|
|
ppszMinLineTime[npdis->MinScanCode]);
|
|
}
|
|
|
|
|
|
/*++
|
|
Routine Description:
|
|
Logs DCS details to PSS log, using the supplied NPDIS.
|
|
Arguments:
|
|
pTG
|
|
npdis - DCS to log
|
|
Return Value:
|
|
None
|
|
--*/
|
|
void LogClass1DCSDetails(PThrdGlbl pTG, NPDIS npdis)
|
|
{
|
|
static LPSTR ppszDesc[16] = { // Bits 11-14 (leftmost is 14)
|
|
_T("2400 bps V.27 ter"), // 0000
|
|
_T("9600 bps V.29"), // 0001
|
|
_T("4800 bps V.27 ter"), // 0010
|
|
_T("7200 bps V.29"), // 0011
|
|
_T("14400 bps V.33"), // 0100
|
|
_T(""), // 0101
|
|
_T("12000 bps V.33"), // 0110
|
|
_T(""), // 0111
|
|
_T("14400 bps V.17"), // 1000
|
|
_T("9600 bps V.17"), // 1001
|
|
_T("12000 bps V.17"), // 1010
|
|
_T("7200 bps V.17"), // 1011
|
|
_T(""), // 1100
|
|
_T(""), // 1101
|
|
_T(""), // 1110
|
|
_T("") // 1111
|
|
};
|
|
static DWORD dwWidthDesc[4] = {
|
|
1728, // 00
|
|
2048, // 01
|
|
2432, // 10
|
|
2432 // 11
|
|
};
|
|
static LPSTR lpszLengthDesc[4] = {
|
|
_T("A4"), // 00
|
|
_T("B4"), // 01
|
|
_T("Unlimited"), // 10
|
|
_T("invalid") // 11
|
|
};
|
|
|
|
if (npdis == NULL)
|
|
{
|
|
_ASSERT(FALSE);
|
|
return;
|
|
}
|
|
LogDCSDetails(pTG,
|
|
ppszDesc[npdis->Baud],
|
|
(npdis->ResFine_200 == 1),
|
|
(npdis->MR_2D == 1),
|
|
dwWidthDesc[npdis->PageWidth],
|
|
lpszLengthDesc[npdis->PageLength],
|
|
ppszMinLineTime[npdis->MinScanCode]);
|
|
}
|
|
|
|
// *************************** CLASS 2 ****************************
|
|
|
|
#define GET_BOUNDED_ARRAY_ELEMENT(_array_, _val_, _maxval_, _default_) \
|
|
(((_val_)>=0 && (_val_)<(_maxval_)) ? _array_[(_val_)] : (_default_))
|
|
|
|
// These tables belongs to both DIS and DCS
|
|
LPSTR ppszCapsDesc[6] = {
|
|
_T("2400 bps V.27 ter"), // 0
|
|
_T("4800 bps V.27 ter"), // 1
|
|
_T("7200 bps V.29 or V.17"), // 2
|
|
_T("9600 bps V.29 or V.17"), // 3
|
|
_T("12000 bps V.17"), // 4
|
|
_T("14400 bps V.17"), // 5
|
|
};
|
|
LPSTR ppszLengthDesc[3] = {
|
|
_T("A4"), // 0
|
|
_T("B4"), // 1
|
|
_T("Unlimited"), // 2
|
|
};
|
|
|
|
LPSTR szInvalid = _T("Invalid");
|
|
|
|
/*++
|
|
Routine Description:
|
|
Logs DIS details to PSS log, using the supplied PCB.
|
|
Arguments:
|
|
pTG
|
|
lpPcb - DIS to log
|
|
Return Value:
|
|
None
|
|
--*/
|
|
void LogClass2DISDetails(PThrdGlbl pTG, LPPCB lpPcb)
|
|
{
|
|
static LPSTR ppszWidthDesc[5] = {
|
|
_T("1728"), // 0
|
|
_T("1728, 2048"), // 1
|
|
_T("1728, 2048, 2432"), // 2
|
|
_T("1216"), // 3
|
|
_T("864"), // 4
|
|
};
|
|
|
|
if (lpPcb == NULL)
|
|
{
|
|
_ASSERT(FALSE);
|
|
return;
|
|
}
|
|
LogDISDetails(pTG,
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszCapsDesc, lpPcb->Baud, 6, szInvalid),
|
|
lpPcb->Resolution & AWRES_mm080_038,
|
|
lpPcb->Encoding & MR_DATA,
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszWidthDesc, lpPcb->PageWidth, 5, szInvalid),
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszLengthDesc, lpPcb->PageLength, 3, szInvalid),
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszMinLineTime, lpPcb->MinScan, 8, szInvalid) );
|
|
}
|
|
|
|
|
|
/*++
|
|
Routine Description:
|
|
Logs DCS details to PSS log, using the supplied PCB.
|
|
Arguments:
|
|
pTG
|
|
lpPcb - DCS to log
|
|
Return Value:
|
|
None
|
|
--*/
|
|
void LogClass2DCSDetails(PThrdGlbl pTG, LPPCB lpPcb)
|
|
{
|
|
static DWORD dwWidthDesc[5] = {
|
|
1728, // 0
|
|
2048, // 1
|
|
2432, // 2
|
|
1216, // 3
|
|
864 // 4
|
|
};
|
|
|
|
if (lpPcb == NULL)
|
|
{
|
|
_ASSERT(FALSE);
|
|
return;
|
|
}
|
|
LogDCSDetails(pTG,
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszCapsDesc, lpPcb->Baud, 6, szInvalid),
|
|
!(lpPcb->Resolution & AWRES_mm080_038),
|
|
lpPcb->Encoding & MR_DATA,
|
|
GET_BOUNDED_ARRAY_ELEMENT(dwWidthDesc, lpPcb->PageWidth, 5, 0),
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszLengthDesc, lpPcb->PageLength, 3, szInvalid),
|
|
GET_BOUNDED_ARRAY_ELEMENT(ppszMinLineTime, lpPcb->MinScan, 8, szInvalid) );
|
|
}
|
|
|