Я работаю с формами Xamarin в сочетании с устройствами I2C и Raspberry Pi. Я запрограммировал на C # и Raspberry Pi был установлен с Windows IoT. И я столкнулся с проблемой доступа к параметру.
У меня есть микротаймер в проекте UWP, и я хочу читать данные с аналогового входа каждые 100 мс. В OnTimedEvent есть расчет, который требует некоторых параметров, которые установлены в проекте PCL, пространство имен - «I2CADDA.MainPage.xaml.cs». Я попытался установить эти параметры как общедоступные статические.
public static double gainFactor = 1;
public static double gainVD = 1;
А в проекте UWP я использую службу зависимостей, потому что мне нужно использовать микросаймер, поэтому реализация интерфейса выполняется в «I2CADDA.UWP.MainPage.xaml.cs», в функции OnTimedEvent, I попытался получить параметры из файла проекта PCL.
public void OnTimedEvent(object sender, MicroLibrary.MicroTimerEventArgs timerEventArgs)
{
byte[] readBuf = new byte[2];
I2CDevice.ReadI2C(chan, readBuf); //read voltage data from analog to digital converter
sbyte high = (sbyte)readBuf[0];
int mvolt = high * 16 + readBuf[1] / 16;
val = mvolt / 204.7 + inputOffset;
val = val / gainFactor / gainVD; //gainFactor and gainVD shows not exist in current context
}
Похоже, что проект UWP не может иметь доступ к проекту PCL обычным способом. Могу ли я спросить, как я могу решить эту проблему? Большое спасибо !!!