in BusTools/I2cTestTool/main.cpp [366:421]
int main (Platform::Array<Platform::String^>^ args)
{
unsigned int optind = 1;
if (optind >= args->Length) {
std::wcerr << L"Missing required command line parameter SlaveAddress\n\n";
PrintUsage(args->get(0)->Data());
return 1;
}
{
PCWSTR arg = args->get(optind)->Data();
if (!_wcsicmp(arg, L"-h") || !_wcsicmp(arg, L"/h") ||
!_wcsicmp(arg, L"-?") || !_wcsicmp(arg, L"/?")) {
PrintUsage(args->get(0)->Data());
return 0;
}
if (!_wcsicmp(arg, L"-l") || !_wcsicmp(arg, L"-list")) {
ListI2cControllers();
return 0;
}
}
int slaveAddress;
{
String^ arg = args->get(optind++);
wchar_t *endptr;
slaveAddress = int(wcstoul(arg->Data(), &endptr, 0));
if (endptr != arg->End()) {
std::wcerr << L"Expecting integer: " << arg->Data() << L"\n";
std::wcerr << L"Type '" << args->get(0)->Data() << " -h' for usage\n";
return 1;
}
}
String^ friendlyName;
if (optind < args->Length) {
friendlyName = args->get(optind++);
}
try {
auto device = MakeDevice(slaveAddress, friendlyName);
std::wcout << L" Type 'help' for a list of commands\n";
ShowPrompt(device);
} catch (const wexception& ex) {
std::wcerr << L"Error: " << ex.wwhat() << L"\n";
return 1;
} catch (Platform::Exception^ ex) {
std::wcerr << L"Error: " << ex->Message->Data() << L"\n";
return 1;
}
return 0;
}