Gå til innhold

Using of unassinged local variable


Anbefalte innlegg

Jeg fatter ikke hvorfor jeg får "Using of unassinged local variable", variablen blir jo deklarert. Det er denne linjen som ikke funker: rd.Value = rapidBool;

 

Noen tips ?

using System;
using ABB.Robotics.Controllers;
using ABB.Robotics.Controllers.Discovery;
using ABB.Robotics;


class Program{
       
        static void Main(string[] args){
            NetworkScanner scanner = new NetworkScanner();

            //Controller _controller;
            //Controller controller = null;
            scanner.Scan();

            ControllerInfoCollection controllers = scanner.Controllers;

            foreach (ControllerInfo controllerInfo in controllers){
                Console.WriteLine("IPAddress: " + controllerInfo.IPAddress.ToString()+"\n");
                Console.WriteLine("System Name : " + controllerInfo.SystemName + "\n");
                Console.WriteLine("Controller Name: " + controllerInfo.ControllerName + "\n");
            }
            Console.WriteLine("SystemID : " + scanner.Controllers[0].SystemId);
            Controller _controller = new Controller(scanner.Controllers[0].SystemId);
            _controller.Logon(UserInfo.DefaultUser);

            Mastership m = Mastership.Request(_controller.Rapid);

          
            ABB.Robotics.Controllers.RapidDomain.RapidData rd = _controller.Rapid.GetRapidData("T_ROB1", "MainModule", "flag");
            ABB.Robotics.Controllers.RapidDomain.Bool rapidBool;

            //test that data type is correct before cast
            if (rd.Value is ABB.Robotics.Controllers.RapidDomain.Bool)
            {
                rapidBool = (ABB.Robotics.Controllers.RapidDomain.Bool)rd.Value;
                //assign the value of the RAPID data to a local variable
                bool boolValue = rapidBool.Value;
            }
            Console.WriteLine("RAPID \"running bool\" : "+ rd.Value.ToString());

            //Assign new value to .Net variable
            rapidBool.Value = false;
            //Request mastership of Rapid before writing to the controller

            //Change: controller is repaced by aController
            rd.Value = rapidBool; //Denne lager problemer for meg
            //Release mastership as soon as possible

            Console.WriteLine("Is Master : " + m.IsMaster);
            m.Dispose(); //Kobler fra kontroller
            Console.WriteLine("Is master : " + m.IsMaster);
            Console.ReadLine();
        }
}

Endret av Kargan
Lenke til kommentar
Videoannonse
Annonse

Du tildeler rapidBool.Value uten å lage objektet rapidBool.

 

ABB.Robotics.Controllers.RapidDomain.Bool rapidBool; - dette forteller hva slags objekt rapidBool er, men det er ikke laget noe objekt.

 

rapidBool = new ABB.Robotics.Controllers.RapidDomain.Bool - dette ville lage objektet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...