我正在开始使用Windows 10的Raspberry Pi 2开发经验,我想知道如何配置Raspberry Pi 2以自动启动我自己发布的应用程序,我在Visual Studio中开发?此外:如何在我的设备上设置时间和地区?
非常感谢你们所有有用和善意的答案.
我正在开发一个通用的Windows应用程序(Windows 10),我有一个"双层"应用程序:在IoT设备(例如Raspberry Pi 2)上它只显示内容,但在所有其他设备(PC,笔记本电脑,智能手机,等等.你有一个类似控制器的显示数据.
我想要实现的功能之一是控制器部件中的Windows Live登录,以在Display-IoT-Part中获取日历信息.为此我给用户提供了使用Windows Live登录的机会,如下所示:
LiveAuthClient auth = new LiveAuthClient();
LiveLoginResult loginResult = await auth.LoginAsync(new string[] { "wl.signin", "wl.calendars", "wl.offline_access" });
if (loginResult.Status == LiveConnectSessionStatus.Connected)
{
//Save the AccessToken from loginResult.Session.AccessToken
TokenHandler.Save(loginResult.Session.AccessToken); //AccessToken is quite accessable right here
//But as far as I know I should save the RefreshToken, but the Session has no field for it
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我没有从可以存储RefreshToken的LiveConnectSession中获取字段,但是我读到的所有文章都在说,我只需要将wl.offline_access添加到用于接收RefreshToken的范围.
我对OAuth2.0并不熟悉,并且SDKs/API正在建立在OAuth上,所以有人知道什么,我做错了什么或我如何处理它?
我真的很感谢所有善意和有用的答案!
PS:我使用的是Live SDK 5.6,而不是新的OneDrive API,因为它无法访问日历信息
我创建了自己的CellRenderer,其中包含几个字符串和一个JList项中的JProgressBar ...但是JProgressBar等整个JList项目将绘制一次,我正在寻找一种方法来重新绘制Items ...我试过了开始一个线程,这将永久重绘......但我不知道我需要重新绘制以获得结果...
JList重绘...没有结果CellRenderer重绘...没有结果JFrame重绘...没有结果
有谁理解我的问题并知道出路?
非常感谢你!
更新:[更新已删除]
下一步更新:
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.ListCellRenderer;
public class Main extends JFrame{
public DefaultListModel contentListModel = new DefaultListModel();
public MyCellRenderer MCR = new MyCellRenderer();
public JList contentList = new JList(contentListModel);
public Main(){
super("Example");
setMinimumSize(new Dimension(300,300));
setDefaultCloseOperation(EXIT_ON_CLOSE);
contentList.setCellRenderer(MCR);
contentListModel.addElement("");
contentListModel.addElement("");
add(contentList);
}
public static void main(String[] args){
new Main().setVisible(true);
}
class MyCellRenderer extends JPanel implements ListCellRenderer{
public MyCellRenderer(){
JProgressBar jpb = new JProgressBar();
jpb.setIndeterminate(true); …Run Code Online (Sandbox Code Playgroud) 我只是想开始使用DHT22/AM2302(温度和湿度传感器),但我不知道如何初始化并获取它的数据...我试图使用GpioPin:
gpioController = GpioController.GetDefault();
if(gpioController == null)
{
Debug.WriteLine("GpioController Initialization failed.");
return;
}
sensorPin = gpioController.OpenPin(7); //Exception throws here
sensorPin.SetDriveMode(GpioPinDriveMode.Input);
Debug.WriteLine(sensorPin.Read());
Run Code Online (Sandbox Code Playgroud)
但得到异常:"禁用此操作所需的资源."
之后,我看了一下unixoids的库,发现了这个:
https://github.com/technion/lol_dht22/blob/master/dht22.c
但我不知道如何在使用Windows 10的VCSharp中实现这一点,任何人都有想法或经验?
非常感谢你提前!
更新:
我得到了提示,没有GPIO-Pin 7,这是真的,所以我重新尝试了,但GPIO输出似乎只是高或低...所以我必须使用I2C或SPI ...根据这个项目,我决定尝试使用SPI:http://microsoft.hackster.io/windowsiot/temperature-sensor-sample并向前迈进......现在的困难是翻译上面的链接C-Library到C-Sharp-SDK接收正确的数据......
private async void InitSPI()
{
try
{
var settings = new SpiConnectionSettings(SPI_CHIP_SELECT_LINE);
settings.ClockFrequency = 500000;
settings.Mode = SpiMode.Mode0;
string spiAqs = SpiDevice.GetDeviceSelector(SPI_CONTROLLER_NAME);
var deviceInfo = await DeviceInformation.FindAllAsync(spiAqs);
SpiDisplay = await SpiDevice.FromIdAsync(deviceInfo[0].Id, settings);
}
catch(Exception ex)
{
Debug.WriteLine("SPI Initialization failed: " + ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
这个工作效果不太好,需要明确的是:它只启动一次启动覆盆子pi2,然后启动/远程调试应用程序,但退出应用程序并重新启动后,SPI初始化失败. …
我只是从泛型开始,并想知道如何在类方法中访问类的T?让我们拿一些代码来更好地解释我想要做的事情:
public class RegisterResult<T> where T : IRegisterable
{
public bool Success { get; set; }
public string Entity { get; set; }
public string ErrorMessage { get; set; }
//Want to avoid this, by using generics:
/*public static RegisterResult UserSuccess = new RegisterResult(true, "User", "");
public static RegisterResult DeviceSuccess = new RegisterResult(true, "Device", "");
public static RegisterResult DeviceDataSucces = new RegisterResult(true, "DeviceData", "");*/
public RegisterResult(bool success, string errmsg)
{
this.Success = success;
//The following line does not work, so …Run Code Online (Sandbox Code Playgroud) c# ×2
iot ×2
windows-10 ×2
generics ×1
java ×1
jlist ×1
jprogressbar ×1
live-sdk ×1
swing ×1
xaml ×1