Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

92 linhas
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_10_PINS_CONNECTOR_TYPE:
  30. case CConnectorDefs::INPUT_24_PINS_CONNECTOR_TYPE:
  31. {
  32. mInputConnector.SetConnectorType(InputConnectorType);
  33. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_24_PINS_CONNECTOR_TYPE);
  34. break;
  35. }
  36. case CConnectorDefs::INPUT_72_PINS_CONNECTOR_TYPE:
  37. {
  38. mInputConnector.SetConnectorType(InputConnectorType);
  39. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_72_PINS_CONNECTOR_TYPE);
  40. break;
  41. }
  42. case CConnectorDefs::INPUT_90_PINS_CONNECTOR_TYPE:
  43. case CConnectorDefs::INPUT_108_PINS_CONNECTOR_TYPE:
  44. case CConnectorDefs::INPUT_120_PINS_CONNECTOR_TYPE:
  45. {
  46. mInputConnector.SetConnectorType(InputConnectorType);
  47. mOutputConnector.SetConnectorType(CConnectorDefs::OUTPUT_108_PINS_CONNECTOR_TYPE);
  48. break;
  49. }
  50. default:
  51. {
  52. mInputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  53. mOutputConnector.SetConnectorType(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  54. mCableDefined = false;
  55. return RET_ERROR;
  56. break;
  57. }
  58. }
  59. mOutputPinsBuffer = QBitArray(mOutputConnector.GetPinCount());
  60. mCableDefined = true;
  61. return RET_OK;
  62. }
  63. bool CCable::IsCableDefined()
  64. {
  65. return mCableDefined;
  66. }
  67. CInputConnector *CCable::GetInputConnector()
  68. {
  69. return &mInputConnector;
  70. }
  71. COutputConnector *CCable::GetOutputConnector()
  72. {
  73. return &mOutputConnector;
  74. }
  75. int CCable::ClearAllOutputConnectorPins()
  76. {
  77. mOutputPinsBuffer.fill(false);
  78. return mOutputConnector.SetOutputPins(mOutputPinsBuffer);
  79. }