nasa / openmct-tutorial

A tutorial for OpenMCT that guides you through integrating historical and realtime telemetry.
Other
246 stars 104 forks source link

Tutorial C Not Working #22

Closed lancesimms closed 5 years ago

lancesimms commented 7 years ago

Hello,

I have been trying to follow along with your tutorials. Unfortunately, I get errors and warnings (see screenshot attached) when I try to run a historical telemetry server, as shown in Part C. The versions of node and npm we are using are:

node -v v8.1.1 npm -v 5.0.3

Do you know what is causing these errors?

Also, are there any examples of using easier ways to read in telemetry data for display? For instance, just reading in a text file located on the server? We do not want to use websockets, and we cannot use http to access data on our webserver due to security issues. Our preferred method would be to just pull data from a database or text file using a server side script/function.

Lance

screen shot 2017-10-11 at 3 33 03 pm

lancesimms commented 7 years ago

Does anyone know why these error messages are present?

zicklag commented 7 years ago

I just tried this, there is apparently a problem with Part C of the tutorial. I was able to run it off of master (0c5813f9) with your version of node and it worked just fine.

zicklag commented 7 years ago

I removed the "x": 1 and "y": 1 lines from the dictionary.json file and that got rid of all of the warnings. It looks like the API replaced the x and y keys with domain and range.

After doing that there is still a TypeError: Cannot read property 'then' of null, but that is because there is not a telemetry adapter for the objects yet. That should be fixed when you complete Part D.

zicklag commented 7 years ago

You can use this patch to fix it. Download the patch and run git apply patch.txt

lancesimms commented 7 years ago

Thank you for the patch. However, it does not get rid of the errors I am seeing. See the screenshot below that shows the following two errors:

1) angular.min.js:110 TypeError: e is not a function 2) angular.min.js:110 TypeError: Cannot read property 'key' of undefined

Also, I don't understand why the historical telemetry server is not working. I am looking for traffic on port 8081 using:

sudo tcpdump -i any 'port 8081'

And I don't see anything. Do you have an example of a working historical telemetry server that we can use? We aren't interested in real-time telemetry; we are only interested in displaying the contents of text files that have been saved on the server.

screen shot 2017-10-17 at 10 52 52 am

larkin commented 7 years ago

@lancesimms are you by chance using the code from #17? That changes the server so that it's no longer running on separate ports.

We'll have the tutorial updated shortly.

lancesimms commented 7 years ago

I pulled the code using:

git clone https://github.com/nasa/openmct-tutorial.git

A git log shows:

commit 875246167614b45664aabe07dfe2b7bcae133a92 Author: Pete Richards peter.l.richards@nasa.gov Date: Tue May 9 20:04:26 2017 -0700

V1.0 Update
psarram commented 7 years ago

@lancesimms We have updated the tutorial. Please let us know if you still see the errors.

lancesimms commented 7 years ago

@psarram Thank you very much. I just downloaded the package, re-installed it, and did the following:

1) git checkout -f part-c 2) Create the file historical-telemetry-plugin.js and add all of the lines shown in Part C of the tutorial 3) Edit index.html so that the lines match the ones in Part C of the tutorial 4) npm start

Most of the errors are gone, but I still see the one shown in the screenshot. It does look the historical telemetry server is working (although it is constantly updating the data, which doesn't make much sense to me...I would have thought the historical data would be fixed).

screen shot 2017-10-23 at 10 46 13 am

psarram commented 7 years ago

@lancesimms I see the error too. Looks like unsubscribeAll() in TelemetrySubscription is trying to call a null unsubscribe function.

zicklag commented 7 years ago

When I was writing my own plugin I realized this too. I don't think OpenMCT should be trying to call the unsubscribe function on a historical telemetry plugin, but it is. If you make a realtime telemetry plugin that you do provide a unsubscribe function for ( because you need both the subscribe and unsubscribe functions for realtime ) it doesn't complain because the unsubscribe function exists.

I think that this is either a bug with OpenMCT or something that I am not understanding about historical telemetry plugins.

akhenry commented 5 years ago

This is due to a bug in the telemetry API's legacy provider handling. The issue lies in the main repo, so I've filed an issue there, and I'm going to close this as the originally reported issue has been resolved.