2017-10-10 12 views
0


Ich möchte Temperaturdaten (die ich von einem Paho-Client bekomme) in einem Array namens "Single" speichern. Schließlich möchte ich die Live-Daten in einem Messgerät zeigen.
Dafür habe ich einen Dienst erstellt, um die Daten zu speichern und die Daten an mehrere Komponenten zu verteilen.
Aber ich bekomme nur die ERR: "" ist nicht zu Parameter des Typs '{value: string; } '.
Ich würde wirklich einige neue Gedanken zu diesem Thema schätzen! Vielen Dank!Speichern von Daten in Array von Paho-Client, Winkel 4

Mein Service:

import { Injectable } from '@angular/core'; 
import { Component, OnInit } from '@angular/core'; 
import {Paho} from '../../../node_modules/ng2-mqtt/mqttws31'; 


@Injectable() 
export class ClassdataproviderService { 

    public name: string; 
    public value: string; 

    single = [ 
    { 
     name: 'eins', 
     value: '15' 
    }, 
    { 
     name: 'zwei', 
     value: '20' 
    }, 
    { 
     name: 'drei', 
     value: '73' 
    } 
    ]; 


// Create a client instance 


    client: any; 
    packet: any; 

    constructor() { 
    this.client = new Paho.MQTT.Client('wpsdemo.gia.rwth-aachen.de', 8080, 'Steffen'); 

    this.onMessage(); 
    this.onConnectionLost(); 
    // connect the client 
    this.client.connect({onSuccess: this.onConnected.bind(this)}); 
    } 

    // called when the client connects 


    onConnected() { 
    console.log('Connected'); 
    this.client.subscribe('node/m1/temperature'); 
    //this.sendMessage('HelloWorld'); 
    } 

    sendMessage(message: string) { 
    const packet = new Paho.MQTT.Message(message); 
    packet.destinationName = 'World'; 
    this.client.send(packet); 
    } 

    // called when a message arrives 


    onMessage() { 
    this.client.onMessageArrived = (message: Paho.MQTT.Message) => { 
     console.log('Message arrived : ' + message.payloadString); 
     this.single.push('test', message.payloadString); **//<-- Here i want to push the data in my array** 
    }; 
    } 

    // called when the client loses its connection 


    onConnectionLost() { 
    this.client.onConnectionLost = (responseObject: Object) => { 
     console.log('Connection lost : ' + JSON.stringify(responseObject)); 
    }; 
    } 

Antwort

2

löste ich das Problem.
Sie müssen nur die Daten in dem Array (single) drücken, indem Sie diese Zeile in der onMessageArrived Funktion:

this.single.push({name: 'test', value: message.payloadString}); 
Verwandte Themen