example-2.cpp 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*====================================================================*
  2. Copyright (c) 2020 Qualcomm Technologies, Inc.
  3. All Rights Reserved.
  4. Confidential and Proprietary - Qualcomm Technologies, Inc.
  5. ******************************************************************
  6. 2013 Qualcomm Atheros, Inc.
  7. *====================================================================*/
  8. /*====================================================================*
  9. * system header files;
  10. *--------------------------------------------------------------------*/
  11. #include <cstdlib>
  12. #include <iostream>
  13. /*====================================================================*
  14. * system header files;
  15. *--------------------------------------------------------------------*/
  16. #include <sys/types.h>
  17. #ifndef WINPCAP
  18. #include <sys/socket.h>
  19. #endif
  20. #include <net/if.h>
  21. /*====================================================================*
  22. * custom header files;
  23. *--------------------------------------------------------------------*/
  24. #include "../classes/CPLChannel.hpp"
  25. #include "../classes/ointerfaces.hpp"
  26. #include "../classes/omemory.hpp"
  27. /*====================================================================*
  28. * custom source files;
  29. *--------------------------------------------------------------------*/
  30. #ifndef MAKEFILE
  31. #include "../classes/omemory.cpp"
  32. #include "../classes/oerror.cpp"
  33. #include "../classes/oflagword.cpp"
  34. #include "../classes/ointerface.cpp"
  35. #include "../classes/ointerfaces.cpp"
  36. #include "../classes/oethernet.cpp"
  37. #include "../classes/ointellon.cpp"
  38. #include "../classes/ohomeplug.cpp"
  39. #include "../classes/CPLChannel.cpp"
  40. #endif
  41. /*====================================================================*
  42. * program variables;
  43. *--------------------------------------------------------------------*/
  44. char const * program_name;
  45. /*====================================================================*
  46. * main program;
  47. *--------------------------------------------------------------------*/
  48. int main (int argc, const char *argv [])
  49. {
  50. ointerfaces interfaces;
  51. char buffer [ETHER_ADDR_LEN * 3];
  52. byte bridge [CPLCHANNEL_BRIDGES_MAX][ETHER_ADDR_LEN];
  53. byte device [CPLCHANNEL_DEVICES_MAX][ETHER_ADDR_LEN];
  54. size_t bridges;
  55. size_t devices;
  56. program_name = * argv;
  57. for (interfaces.SelectFirst (); interfaces.Index () < interfaces.Count (); interfaces.SelectNext ())
  58. {
  59. CPLChannel * channel = new CPLChannel (interfaces.Selected ().Name (), CPLCHANNEL_TIMEOUT);
  60. std::cout << "interface - " << channel->Description () << std::endl;
  61. bridges = channel->Bridges (bridge, sizeof (bridge));
  62. while (bridges--)
  63. {
  64. std::cout << "bridge - " << omemory::hexstring (buffer, sizeof (buffer), bridge [bridges], ETHER_ADDR_LEN) << std::endl;
  65. channel->ImportPeerAddress (bridge [bridges]);
  66. devices = channel->Neighbors (device, sizeof (device));
  67. while (devices--)
  68. {
  69. std::cout << "device - " << omemory::hexstring (buffer, sizeof (buffer), device [devices], ETHER_ADDR_LEN) << std::endl;
  70. }
  71. std::cout << std::endl;
  72. }
  73. std::cout << std::endl;
  74. delete channel;
  75. }
  76. std::exit (0);
  77. }