Esempio n. 1
0
        static Kvrlib.Status setupBroadcast(Kvrlib.DiscoveryHnd discoveryHandle)
        {
            String buf = "";
            Kvrlib.Status status;
            Kvrlib.Address[] addr_list = new Kvrlib.Address[20];
            Int32 no_addrs = 0;
            Int32 i;

            status = Kvrlib.DiscoveryGetDefaultAddresses(out addr_list, Kvrlib.AddressTypeFlag.ALL);

            if (!status.Equals(Kvrlib.Status.OK))
            {
            Kvrlib.GetErrorText(status, out buf);
            Console.WriteLine("kvrDiscoveryGetDefaultAddresses() FAILED - " + buf);
            return status;
            }

            if (no_addrs < addr_list.Length)
            {
            String tmp_addr = "192.168.3.66";
            status = Kvrlib.AddressFromString(Kvrlib.AddressType.IPV4, out addr_list[no_addrs], tmp_addr);
            if (!status.Equals(Kvrlib.Status.OK))
            {
                Console.WriteLine("ERROR: kvrAddressFromString(" + no_addrs + ", " + tmp_addr + ") failed");
                return status;
            }
            else
            {
                no_addrs++;
            }

            }
            else
            {
            Console.WriteLine("NOTE: We don't have room for all devices in addr_list[" + addr_list.Length + "]");
            }

            for (i = 0; i < no_addrs; i++ )
            {
            status = Kvrlib.StringFromAddress(out buf, addr_list[i]);
            Console.WriteLine("Looking for device using: " + buf);
            }

            //Create address from string.
            Kvrlib.Address addressFromString;
            String addr_string = "127.0.0.1";
            status = Kvrlib.AddressFromString(Kvrlib.AddressType.IPV4, out addressFromString, addr_string);

            if (!status.Equals(Kvrlib.Status.OK))
            {
            Kvrlib.GetErrorText(status, out buf);
            Console.WriteLine("AddressFromString() FAILED - " + buf);
            return status;
            }
            Kvrlib.StringFromAddress(out addr_string, addressFromString);
            Console.WriteLine("Created address from string: " + addr_string);

            status = Kvrlib.DiscoverySetAddresses(discoveryHandle, addr_list);
            if (!status.Equals(Kvrlib.Status.OK))
            {
            Kvrlib.GetErrorText(status, out buf);
            Console.WriteLine("DiscoverySetAddresses() FAILED - " + buf);
            return status;
            }
            return status;
        }
Esempio n. 2
0
        static int Main(string[] args)
        {
            String password = "";
              string xml_config = "";
              Kvrlib.Status kvrstat;
              Kvrlib.ConfigHnd configHandle = new Kvrlib.ConfigHnd();
              Kvrlib.Address address = new Kvrlib.Address();
              Kvrlib.CipherInfoElement cipherInfoElement = new Kvrlib.CipherInfoElement();

              Int32 i;
              Int32 cur_profile;
              Int32 canlib_channel;
              Int32 no_profiles;

              object serial;
              object ean;

              Canlib.canStatus stat = new Canlib.canStatus();

              Canlib.canInitializeLibrary();
              Kvrlib.InitializeLibrary();

              switch (args.Length)
            {
            case 0:
              listDevices();
              return 0;
            case 1:
              canlib_channel = args[0][0] - '0';
              break;
            default:
              listDevices();
              return -1;
            }

              stat = Canlib.canGetChannelData(canlib_channel, Canlib.canCHANNELDATA_CARD_UPC_NO,out ean);
              stat = Canlib.canGetChannelData(canlib_channel, Canlib.canCHANNELDATA_CARD_SERIAL_NO, out serial);

              if (isAvailibleForConfig(canlib_channel, password))
            {
              Console.WriteLine("Channel " + canlib_channel + " is availible for configuration");
            }
              else
            {
              Console.WriteLine("Channel " + canlib_channel + " can not be opend for configuration");
              Canlib.canUnloadLibrary();
              return -1;
            }
              Canlib.canUnloadLibrary();

              //----------------------------------------------------------------------------
              // List number of profiles

              kvrstat = Kvrlib.ConfigNoProfilesGet(canlib_channel, out no_profiles);
              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Device does not support profiles " + kvrstat);
              return Convert.ToInt32(kvrstat);
            }
              Console.WriteLine("Device supports " + no_profiles + " profiles.");

              Kvrlib.ConfigActiveProfileGet(canlib_channel, out cur_profile);
              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Could not get active profile number " + kvrstat);
              return Convert.ToInt32(kvrstat);
            }
              Console.WriteLine("Active profile is: " + cur_profile);

              // Show profiles
              for (i = 0; i < no_profiles; i++)
            {
              kvrstat = Kvrlib.ConfigInfoGet(canlib_channel, i, out xml_config);
              if (kvrstat.Equals(Kvrlib.Status.BLANK))
            {
              Console.WriteLine("Profile " + i + " is blank.");
            }
              else if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Could not read profile " + i);
              return Convert.ToInt32(kvrstat);
            }
              else
            {
              Console.WriteLine("Profile " + i + ":\n" + xml_config);
            }
            }

              //----------------------------------------------------------------------------
              // Start configuration - read only
              kvrstat = Kvrlib.ConfigOpenEx(canlib_channel,
                                    Kvrlib.ConfigMode.R,
                                    password,
                                    out configHandle,
                                    cur_profile);

              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Could not start config " + kvrstat);
              return Convert.ToInt32(kvrstat);
            }

              // List available networks. This information could be
              // helpful when creating the XML configuration.

              kvrstat = doScanNetwork(configHandle);
              Kvrlib.ConfigClose(configHandle);

              //----------------------------------------------------------------------------
              // Start configuration - read/write

              kvrstat = Kvrlib.ConfigOpen(canlib_channel, Kvrlib.ConfigMode.RW, password, out configHandle);

              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Could not start config " + kvrstat);
              return Convert.ToInt32(kvrstat);
            }

              kvrstat = doConfigure(configHandle);

              // Done!
              Kvrlib.ConfigClose(configHandle);

              // Wait for reboot
              if (waitForDevice(ean, serial, 10000) != 0)
            { //10s timeout
              Console.WriteLine("waitForDevice() failed.");
              return -1;
            }

              //----------------------------------------------------------------------------
              // Start configuration - read only
              kvrstat = Kvrlib.ConfigOpen(canlib_channel, Kvrlib.ConfigMode.R, password, out configHandle);

              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Could not start config " + kvrstat);
              return Convert.ToInt32(kvrstat);
            }

              kvrstat = doTryConfigure(configHandle, 5, ean, serial);
              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("doTryConfiguration failed (" + kvrstat + ")");
              return Convert.ToInt32(kvrstat);
            }
              Kvrlib.ConfigClose(configHandle);
              Console.WriteLine("\nDone!");

              Console.WriteLine("Clear the last profile");
              kvrstat = Kvrlib.ConfigActiveProfileSet(canlib_channel, no_profiles - 1);
              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Set profile " + (no_profiles - 1) + " failed (" + kvrstat + ")");
              return Convert.ToInt32(kvrstat);
            }

              // Wait for reboot
              if (waitForDevice(ean, serial, 10000) != 0)
            { //10s timeout
              Console.WriteLine("waitForDevice() failed.");
              return -1;
            }

              eraseConfiguration(canlib_channel, password);

              // Wait for reboot
              if (waitForDevice(ean, serial, 10000) != 0)
            { //10s timeout
              Console.WriteLine("waitForDevice() failed.");
              return -1;
            }

              Console.WriteLine("Set profile 0 as active");
              kvrstat = Kvrlib.ConfigActiveProfileSet(canlib_channel, 0);
              if (!kvrstat.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Set profile " + 0 + " failed (" + kvrstat + ")");
              return Convert.ToInt32(kvrstat);
            }

              Kvrlib.UnloadLibrary();
              return 0;
        }