Legacy/VersionInfoUtility/VersionInfoUtility.cc
Go to the documentation of this file.
1 
37 #ifdef WIN32
38 #ifndef WIN32_LEAN_AND_MEAN
39 #define WIN32_LEAN_AND_MEAN 1
40 #endif
41 
42 #include <windows.h>
43 #include <winsock2.h>
44 #else
45 #include <unistd.h>
46 #endif
47 
48 #include <stdio.h>
49 #include <stdlib.h>
50 #include <errno.h>
51 #include <string.h>
52 
53 #ifndef __STDC_FORMAT_MACROS
54 #define __STDC_FORMAT_MACROS
55 #endif
56 #include <inttypes.h>
57 
58 #include <MultiSense/MultiSenseChannel.hh>
59 
60 #include <getopt/getopt.h>
61 
62 using namespace crl::multisense;
63 
64 namespace { // anonymous
65 
66 void usage(const char *programNameP)
67 {
68  fprintf(stderr, "USAGE: %s [<options>]\n", programNameP);
69  fprintf(stderr, "Where <options> are:\n");
70  fprintf(stderr, "\t-a <ip_address> : ip address (default=10.66.171.21)\n");
71 
72  exit(-1);
73 }
74 
75 //
76 // Dump version info to a file.
77 
78 void printVersionInfo(const system::VersionInfo& info,
79  FILE* fP=stdout)
80 {
81  fprintf(fP, "API build date: %s\n", info.apiBuildDate.c_str());
82  fprintf(fP, "API version: %#06x\n", info.apiVersion);
83  fprintf(fP, "\n");
84  fprintf(fP, "Firmware build date: %s\n", info.sensorFirmwareBuildDate.c_str());
85  fprintf(fP, "Firmware version: %#06x\n", info.sensorFirmwareVersion);
86  fprintf(fP, "Hardware version: %#" PRIx64 "\n", info.sensorHardwareVersion);
87  fprintf(fP, "Hardware magic: %#" PRIx64 "\n", info.sensorHardwareMagic);
88  fprintf(fP, "FPGA DNA: %#" PRIx64 "\n", info.sensorFpgaDna);
89  fprintf(fP, "\n");
90 }
91 
92 } // namespace
93 
94 int main(int argc,
95  char **argvPP)
96 {
97  std::string ipAddress = "10.66.171.21";
98 
99  //
100  // Parse arguments
101 
102  int cc;
103 
104  while(-1 != (cc = getopt(argc, argvPP, "a:k:s:qy")))
105  switch(cc) {
106  case 'a': ipAddress = std::string(optarg); break;
107  default: usage(*argvPP); break;
108  }
109 
110  //
111  // Initialize communications.
112 
113  Channel *channelP = Channel::Create(ipAddress);
114  if (NULL == channelP) {
115  fprintf(stderr, "Failed to establish communications with \"%s\"\n",
116  ipAddress.c_str());
117  return -1;
118  }
119 
120  //
121  // Query version
122 
123  Status status;
124  system::VersionInfo versionInfo;
125 
126  status = channelP->getVersionInfo(versionInfo);
127  if (Status_Ok != status) {
128  fprintf(stderr, "Failed to query detailed version info: %s\n",
129  Channel::statusString(status));
130  goto clean_out;
131  } else {
132  printVersionInfo(versionInfo);
133  fflush(stdout);
134  }
135 
136 clean_out:
137 
138  Channel::Destroy(channelP);
139  return 0;
140 }
usage
static void usage()
Definition: FirmwareUpdateUtility.cc:51
main
int main(int argc, char **argvPP)
Definition: Legacy/VersionInfoUtility/VersionInfoUtility.cc:94
crl::multisense::system::VersionInfo::sensorFirmwareBuildDate
std::string sensorFirmwareBuildDate
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3168
crl::multisense::Status_Ok
static CRL_CONSTEXPR Status Status_Ok
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:99
crl::multisense::system::VersionInfo::sensorHardwareVersion
uint64_t sensorHardwareVersion
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3173
getopt.h
getopt
int getopt(int argc, char **argv, char *opts)
Definition: getopt.c:31
crl::multisense::Channel::Destroy
static void Destroy(Channel *instanceP)
Definition: Legacy/details/channel.cc:863
crl::multisense::system::VersionInfo::sensorHardwareMagic
uint64_t sensorHardwareMagic
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3175
crl::multisense::system::VersionInfo::apiBuildDate
std::string apiBuildDate
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3163
crl::multisense::Channel::statusString
static const char * statusString(Status status)
Definition: Legacy/details/channel.cc:876
crl::multisense::system::VersionInfo::apiVersion
VersionType apiVersion
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3165
crl::multisense::Channel::Create
static Channel * Create(const std::string &sensorAddress)
Definition: Legacy/details/channel.cc:817
crl::multisense::system::VersionInfo::sensorFirmwareVersion
VersionType sensorFirmwareVersion
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3170
crl::multisense::Channel::getVersionInfo
virtual Status getVersionInfo(system::VersionInfo &v)=0
crl::multisense::Status
int32_t Status
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:94
crl::multisense::system::VersionInfo
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3159
crl::multisense::system::VersionInfo::sensorFpgaDna
uint64_t sensorFpgaDna
Definition: Legacy/include/MultiSense/MultiSenseTypes.hh:3177
crl::multisense::Channel
Definition: Legacy/include/MultiSense/MultiSenseChannel.hh:69
crl::multisense
Definition: Legacy/details/channel.cc:62
optarg
char * optarg
Definition: getopt.c:29


multisense_lib
Author(s):
autogenerated on Thu Apr 17 2025 02:49:09