우리는 bpm180 센서와 라즈베리 PI3을 가지고 우리는이개체 참조가 개체의 인스턴스로 설정되지 않았습니다. TPM 장치 클라이언트로 메시지를 보낼 때
TpmDevice myDevice = new TpmDevice(0); // Use logical device 0 on the TPM
string hubUri = myDevice.GetHostName();
string deviceId = myDevice.GetDeviceId();
string sasToken = myDevice.GetSASToken();
deviceClient = DeviceClient.Create(
hubUri,
Microsoft.Azure.Devices.Client.AuthenticationMethodFactory.
CreateAuthenticationWithToken(deviceId, sasToken), Microsoft.Azure.Devices.Client.TransportType.Amqp);
같은 연결을 initializze 그리고 우리는이 같은 메시지를 보낼 :
public async void Bpm180Tick(object state)
{
string temperatureText;
try
{
var sensorData = await _bmp180.GetSensorDataAsync(Bmp180AccuracyMode.UltraHighResolution);
temperatureText = sensorData.Temperature.ToString("");
temperatureText += "°C";
var temperatureDataPoint = new
{
deviceId = Global.GlobalTemperature,
valor = sensorData.Temperature,
fecha = DateTime.Now
};
//// actualizaciones de la interfaz de usuario... deben ser invocados en el subproceso de interfaz de usuario
var messageString = JsonConvert.SerializeObject(temperatureDataPoint);
var message = new Microsoft.Azure.Devices.Client.Message(Encoding.ASCII.GetBytes(messageString));
//message.Properties["Ambiente"] = ambiente;
//autoResetEvent.WaitOne();
await deviceClient.SendEventAsync(message);
//autoResetEvent.Set();
var task = this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
Txt_Temperaura.Text = temperatureText;
});
}
catch (Exception ex)
{
var a = ex.StackTrace;
temperatureText = "Sensor Error: " + ex.Message;
}
}
그러나 우리가 점점 objecct 참조하지만, 오류가 보이는 것은 라이브러리 (SDK)에있을, 아니 우리의 코드에
스택 추적은 thisÑ
at Microsoft.Azure.Devices.Client.Transport.AmqpTransportHandler.<SendAmqpMessageAsync>d__27.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.AmqpTransportHandler.<SendEventAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.ErrorDelegatingHandler.<>c__DisplayClass13_0.<<ExecuteWithErrorHandlingAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.ErrorDelegatingHandler.<ExecuteWithErrorHandlingAsync>d__14`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.GateKeeperDelegatingHandler.<SendEventAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at ActiveSense.Tempsense.Sensor.MainPage.<Bpm180Tick>d__23.MoveNext()
예외가 발생한 줄은 무엇입니까? –
이벤트를 비동기로 보내는 라인. –