2012-09-20 2 views
-6

RFID 판독기에서 보내고받은 바이트를 모니터하고 싶습니다. 하지만이 일은 컴파일되지 않습니다. :( 그것은 그것이 내가 하나가 transportLogFile가 (기능 SerialListener)에 인식되지 않는 넣어 그러나 경우 '}'이 부족했다.이 뭐가 잘못 ?C# 오류 (수신 바이트 수/수신)

저작권 (C) 2009 씽 매직, Inc.의

using System; // system namespace reserved for items associated with .NET Framework class library 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Data; 
using System.Threading; 
using ThingMagic; 


namespace Read_v5 
{ 
    class Program 
    { 
     private TextWriter transportLogFile; 
     static void Main(string[] args) 
     { 
      TextWriter transportLogFile; 
      StreamWriter writer = new StreamWriter("log.txt"); 
      writer.AutoFlush = true; 
      transportLogFile = writer; 
      using (Reader rdr = Reader.Create("tmr:///com29")) 
      { 
       if (rdr is SerialReader) 
        rdr.Transport += TimestampListener; 

       SimpleReadPlan readplan = new SimpleReadPlan(); 
       rdr.Connect(); //establish connection 
       rdr.ParamSet("/reader/region/id", Reader.Region.OPEN); //region set in OPEN 
       rdr.ParamSet("/reader/read/plan", readplan); 
       int[] antennas = (int[])rdr.ParamGet("/reader/antenna/connectedPortList"); 
       rdr.ParamSet("/reader/tagop/antenna", 1); 
       rdr.ParamSet("/reader/tagop/protocol", TagProtocol.GEN2); 
       // Console.WriteLine(rdr.ParamGet("/reader/tagop/antenna")); 
       // Console.WriteLine(rdr.ParamGet("/reader/tagop/protocol")); 
       // Console.WriteLine(" " + rdr.ParamGet("/reader/antenna/portList")); 
       // rdr.ParamSet("/reader/antenna/txRxMap", new int[][]{new int[]{1,1,1}}); 
       readplan.Antennas = new int[] { 1 }; 
       // Console.WriteLine(" " + rdr.ParamGet("/reader/antenna/portList").ToString()); 
       readplan.Protocol = TagProtocol.GEN2; 
       //  Console.WriteLine(rdr.ParamGet("/reader/antenna/portList")); 
       rdr.ParamSet("/reader/read/asyncOffTime", 100); 
       rdr.ParamSet("/reader/read/asyncOnTime", 500); 
       rdr.StartReading(); 
       //  Console.WriteLine("FIN"); 
       //  int y = 0; 
       while (rdr.Equals(rdr)) 
       { 

        // Console.WriteLine("\r\n<Do this\r\n"); 
        rdr.TagRead += delegate(Object sender, TagReadDataEventArgs e) 
        { 
         Console.WriteLine("EPC: " + e.TagReadData.EpcString); 
         Console.WriteLine("RSSI: " + e.TagReadData.Rssi.ToString()); 
         Console.WriteLine("Phase: " + e.TagReadData.Phase.ToString()); 
        }; 
        Thread.Sleep(200); 

       } 
       rdr.StopReading(); 
       rdr.Destroy(); 
       transportLogFile.Close(); 
      } 
     } 
     private void TimestampListener(Object sender, TransportListenerEventArgs e) 
     { 
     // TextWriter transportLogFile = null; 
      transportLogFile.Write(String.Format("{0} {1}", 
       DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), 
       e.Tx ? "Sending" : "Received")); 
      for (int i = 0; i < e.Data.Length; i++) 
      { 
       if ((i & 15) == 0) 
       { 
        transportLogFile.WriteLine(); 
        transportLogFile.Write(" "); 
       } 
       transportLogFile.Write(" " + e.Data[i].ToString("X2")); 
      } 
      transportLogFile.WriteLine(); 
     } 

    } 

} 

답변

1

파일의 끝에 } 하나 더 넣어 내가 네임 스페이스가 폐쇄되지 않습니다 볼 수있는 곳에서

편집 :... 변수와 문제 당신은이 문제를 해결 할 수있는 방법에 액세스하려면 다음과 같이 수행하여 .

class Program 
{ 
    //Declare the variable here: 
    private static TextWriter transportLogFile; 

    public static void Main(string[] args) 
    { 
     //TextWriter transportLogFile = null; 
     transportLogFile = writer;   
    } 
    private static void MyMethod() 
    { 
     //Access transportLogFile here. 
    } 
} 
+0

예. 지금 확인하십시오. 앞서 언급 한 것과 마찬가지로 transportLogFile은 여전히 ​​인식되지 않습니다. 오류 'transportLogFile'이름이 현재 컨텍스트에 없습니다. – someone

+0

메서드에서 변수를 사용하고 있지만 해당 메서드에서 변수가 선언되지 않았습니다. 메서드 또는 클래스에 변수를 선언해야 액세스 할 수 있습니다. 내 게시물을 업데이트하여 메서드에서 액세스하는 방법을 볼 수 있습니다. –

+0

컴파일러는 진입 점에 대한 정적 Main을 찾습니다. : – someone