Сделать объект глобальным
Я пытаюсь периодически читать с устройства, подключенного через USB-кабель, и обновлять свойства WinForm обновленной информацией. Это устройство представляет собой GPS, созданный компанией TinkerForge, с которым связан API. Доступ к устройству осуществляется в два этапа:
Сначала подключитесь к устройству, код будет:
IPConnection ipcon = new IPConnection(); Bricklet gps - new BrickletGPS(UID, icon); Where UID is a sting with the device ID ipcon.Connect (HOST, PORT); Where HOST is "localhost" and PORT is 4223;
После подключения в gps существует ряд методов получения данных, таких как:
gps.GetDateTime (out long date, out long time);
Я хотел бы сделать gps доступным по всему миру, чтобы после подключения я мог продолжать периодически получать доступ к устройству.
структура кода такова:
public partial class Form1:form { public Form1() { InitializeComponent(); Timer code in here to call DoWork periodically to collect GPS Data Will use RunWorkerCompleted to update the GUI with the new Data } private void DoWork (Object sender, DoWorkEventArgs e) { I can put the connection and access code in here and it works but then the connection is reestablished on each cycle. I'd like access to the gps object here rather then continually reinitializing it. } {
Что я уже пробовал:
Когда я ставлю код инициализации перед public Form1 (), то
IPConnection ipcon = new IPConection(); works
Однако следующий оператор Bricket gps = new BrickletGPS (UID, ipcon) помечается ошибкой, заключающейся в том, что инициализатор поля не может ссылаться на нестатический метод поля или свойство Form1 (). ipcon. В результате инициализация завершается неудачей.
Когда я помещаю инициализацию в метод Form1 (), то такие операторы, как
gps. GetDateTime указывает на то, что gps не существует в текущем контексте. То же самое происходит, когда я ставлю первый раз оператор if для выполнения соединения. Объект gps не распознается вне поля оператора if.
Я новичок в C# и .net и не уверен, возможно ли это и если да, то кто сделает объект gps глобальным
Спасибо за любую помощь