91 lines
2.8 KiB
C++
91 lines
2.8 KiB
C++
#include "Cable.h"
|
|
|
|
CCable::CCable(CConnectorDefs::eConnectorType InputConnectorType, CIOModulesInterface *IOInterface)
|
|
{
|
|
|
|
mInputConnector.SetIOInterface(IOInterface);
|
|
mOutputConnector.SetIOInterface(IOInterface);
|
|
DefineCableByInputConnector(InputConnectorType);
|
|
// mInputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
|
|
// mOutputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
|
|
mCableDefined = false;
|
|
mIOInterfaceHandle = IOInterface;
|
|
}
|
|
|
|
int CCable::DefineCableByInputConnector(CConnectorDefs::eConnectorType InputConnectorType)
|
|
{
|
|
mOutputPinsBuffer.clear();
|
|
switch(InputConnectorType)
|
|
{
|
|
case CConnectorDefs::INPUT_6_PINS_CONNECTOR_TYPE:
|
|
{
|
|
mInputConnector.SetConnectorType(InputConnectorType);
|
|
mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_6_PINS_CONNECTOR_TYPE);
|
|
break;
|
|
}
|
|
case CConnectorDefs::INPUT_14_PINS_CONNECTOR_TYPE:
|
|
{
|
|
mInputConnector.SetConnectorType(InputConnectorType);
|
|
mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_14_PINS_CONNECTOR_TYPE);
|
|
break;
|
|
}
|
|
case CConnectorDefs::INPUT_24_PINS_CONNECTOR_TYPE:
|
|
{
|
|
mInputConnector.SetConnectorType(InputConnectorType);
|
|
mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_24_PINS_CONNECTOR_TYPE);
|
|
break;
|
|
}
|
|
case CConnectorDefs::INPUT_72_PINS_CONNECTOR_TYPE:
|
|
{
|
|
mInputConnector.SetConnectorType(InputConnectorType);
|
|
mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_72_PINS_CONNECTOR_TYPE);
|
|
break;
|
|
}
|
|
case CConnectorDefs::INPUT_90_PINS_CONNECTOR_TYPE:
|
|
case CConnectorDefs::INPUT_108_PINS_CONNECTOR_TYPE:
|
|
case CConnectorDefs::INPUT_120_PINS_CONNECTOR_TYPE:
|
|
{
|
|
mInputConnector.SetConnectorType(InputConnectorType);
|
|
mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_108_PINS_CONNECTOR_TYPE);
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
mInputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
|
|
mOutputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
|
|
mCableDefined = false;
|
|
return RET_ERROR;
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
mOutputPinsBuffer = QBitArray(mOutputConnector.GetPinCount());
|
|
mCableDefined = true;
|
|
return RET_OK;
|
|
|
|
}
|
|
|
|
bool CCable::IsCableDefined()
|
|
{
|
|
return mCableDefined;
|
|
}
|
|
|
|
CInputConnector *CCable::GetInputConnector()
|
|
{
|
|
return &mInputConnector;
|
|
}
|
|
|
|
COutputConnector *CCable::GetOutputConnector()
|
|
{
|
|
return &mOutputConnector;
|
|
}
|
|
|
|
int CCable::ClearAllOutputConnectorPins()
|
|
{
|
|
mOutputPinsBuffer.fill(false);
|
|
|
|
return mOutputConnector.SetOutputPins(mOutputPinsBuffer);
|
|
|
|
}
|