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.
 
 
 
 

91 regels
2.8 KiB

  1. #include "Cable.h"
  2. CCable::CCable(CConnectorDefs::eConnectorType InputConnectorType, CIOModulesInterface *IOInterface)
  3. {
  4. mInputConnector.SetIOInterface(IOInterface);
  5. mOutputConnector.SetIOInterface(IOInterface);
  6. DefineCableByInputConnector(InputConnectorType);
  7. // mInputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  8. // mOutputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  9. mCableDefined = false;
  10. mIOInterfaceHandle = IOInterface;
  11. }
  12. int CCable::DefineCableByInputConnector(CConnectorDefs::eConnectorType InputConnectorType)
  13. {
  14. mOutputPinsBuffer.clear();
  15. switch(InputConnectorType)
  16. {
  17. case CConnectorDefs::INPUT_6_PINS_CONNECTOR_TYPE:
  18. {
  19. mInputConnector.SetConnectorType(InputConnectorType);
  20. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_6_PINS_CONNECTOR_TYPE);
  21. break;
  22. }
  23. case CConnectorDefs::INPUT_14_PINS_CONNECTOR_TYPE:
  24. {
  25. mInputConnector.SetConnectorType(InputConnectorType);
  26. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_14_PINS_CONNECTOR_TYPE);
  27. break;
  28. }
  29. case CConnectorDefs::INPUT_24_PINS_CONNECTOR_TYPE:
  30. {
  31. mInputConnector.SetConnectorType(InputConnectorType);
  32. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_24_PINS_CONNECTOR_TYPE);
  33. break;
  34. }
  35. case CConnectorDefs::INPUT_72_PINS_CONNECTOR_TYPE:
  36. {
  37. mInputConnector.SetConnectorType(InputConnectorType);
  38. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_72_PINS_CONNECTOR_TYPE);
  39. break;
  40. }
  41. case CConnectorDefs::INPUT_90_PINS_CONNECTOR_TYPE:
  42. case CConnectorDefs::INPUT_108_PINS_CONNECTOR_TYPE:
  43. case CConnectorDefs::INPUT_120_PINS_CONNECTOR_TYPE:
  44. {
  45. mInputConnector.SetConnectorType(InputConnectorType);
  46. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_108_PINS_CONNECTOR_TYPE);
  47. break;
  48. }
  49. default:
  50. {
  51. mInputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  52. mOutputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  53. mCableDefined = false;
  54. return RET_ERROR;
  55. break;
  56. }
  57. }
  58. mOutputPinsBuffer = QBitArray(mOutputConnector.GetPinCount());
  59. mCableDefined = true;
  60. return RET_OK;
  61. }
  62. bool CCable::IsCableDefined()
  63. {
  64. return mCableDefined;
  65. }
  66. CInputConnector *CCable::GetInputConnector()
  67. {
  68. return &mInputConnector;
  69. }
  70. COutputConnector *CCable::GetOutputConnector()
  71. {
  72. return &mOutputConnector;
  73. }
  74. int CCable::ClearAllOutputConnectorPins()
  75. {
  76. mOutputPinsBuffer.fill(false);
  77. return mOutputConnector.SetOutputPins(mOutputPinsBuffer);
  78. }