Exemple #1
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;
        }
Exemple #2
0
        static Kvrlib.Status eraseConfiguration(Int32 canlib_channel, String password)
        {
            Kvrlib.Status status;
              Kvrlib.ConfigHnd handle = new Kvrlib.ConfigHnd();

              status = Kvrlib.ConfigOpen(canlib_channel, Kvrlib.ConfigMode.ERASE, password, out handle);

              status = Kvrlib.ConfigClear(handle);
              if (!status.Equals(Kvrlib.Status.OK))
            {
              Console.WriteLine("Could not clear configuration (" + status + ")");
              Kvrlib.ConfigClose(handle);
              return status;
            }

              Kvrlib.ConfigClose(handle);
              return 0;
        }