generateMessagePayload()

in source/simulator/lib/device/generators/vehicle/generator.js [47:89]


    generateMessagePayload(payload, topic, id) {

        if (this.dynamicsModel.ignitionData === 'run') {
            let snapshot = this.dynamicsModel.snapshot;

            let _message = {
                topic: topic,
                payload: {
                    timestamp: moment.utc().format('YYYY-MM-DD HH:mm:ss.SSSSSSSSS'),
                    trip_id: this.tripId,
                    VIN: this.VIN
                }
            }

            for (let attribute of payload) {
                if (snapshot.hasOwnProperty(attribute.name) || attribute.name === 'location') {

                    let value;
                    if (attribute.name === "location") {
                        value = {
                            latitude: snapshot.latitude,
                            longitude: snapshot.longitude
                        }
                    } else {
                        value = snapshot[attribute.name];
                    }
                    if (attribute.precision) {
                        let rounding = Math.round(Math.log10(1 / attribute.precision));
                        value = Number(Number(value).toFixed(rounding));
                    }

                    _message.payload[attribute.name] = value;
                }
            }

            // save last processed snapshot
            this.currentState = snapshot;
            //add device id for filtering in UI
            _message.payload._id_ = id;

            this.messages.push(_message);
        }
    }