2019-05-08 14:17:31 -04:00

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);
}