6

Używam twitter streaming api & johnny-five z innymi modułami http, express & socket.io z arduino unomoduły Nodejs nie działa zgodnie z oczekiwaniami w różnych urządzeniach

mój skrypt działa poprawnie w laptopie. Ale moja produkcja będzie na tablecie. Mam dwie tabletki i oba reagują odmiennie. Na hp omni tabletki i otrzymuję następujący błąd

enter image description here

Mam także arduino-uno podłączony przez port COM3 ale jej urządzenie pokazuje podłączone COM1

O ile wiem, ten błąd jest spowodowany tym, standard firmata nie uploded w arduino. Przesłałem ten program i to działa dobrze w laptopie

Na Acer Tablet Nie otrzymuję żadnego programu błędów rozpoczyna perfekcyjnie bez żadnych problemów, ale nie jestem otrzymujących tweety z twitter streaming api

mam skrzyżowane sprawdzane wiele razy działa perfekcyjnie na laptopie za każdym razem go uruchomić, ale daje dwa różne problemy z tablets

Oto kod używam

var Twitter = require('twitter'); 
var five = require("johnny-five"); 
var express = require('express') 
    , app = express() 
    , http = require('http') 
    , server = http.createServer(app) 
    , io = require('socket.io').listen(server); 

server.listen(8080); 

// routing 
app.use(express.static(__dirname + '/http')); 
app.use(function (req, res, next) { 
     res.setHeader('Access-Control-Allow-Origin', "http://"+req.headers.host+':80'); 

     res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
     res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
     next(); 
    } 
); 

var client = new Twitter({ 
    consumer_key: 'abc', 
    consumer_secret: 'abc', 
    access_token_key: 'abc', 
    access_token_secret: 'abc' 
}); 

var board = new five.Board(); 

board.on("ready", function() { 
    this.pinMode(5, five.Pin.OUTPUT); 
    this.pinMode(10, five.Pin.INPUT); 
     //Ask to visit url 
     console.log("Visit http://localhost:8080"); 
    var randomHashtag = Math.floor((Math.random() * 10000) +1); 
    var count = 0;//Initialize counter 
    io.sockets.on('connection', function (socket) {  
     console.log('Ready to recieve tweets');//Prints Message when Socket.io is ready to recieve tweets 
     io.emit('stream',{number:randomHashtag});//Send random no when socket initzilize 
     client.stream('statuses/filter', {track: '#tweetMe'}, function(stream) { 
      stream.on('data', function(tweet) { 
       if(tweet.text.search(randomHashtag) > 0){ 
        count++;//Increment pending tweets    
        randomHashtag = Math.floor((Math.random() * 10000) +1);     
        io.emit('stream',{number:randomHashtag});     
        board.digitalWrite(5,1); 
        console.log(tweet.text);      
       } 
       else{ 
        console.log("Tweet Without random No"); 
       } 
      }); 

     stream.on('error', function(error) { 
      throw error; 
     }); 
     }); 
    }); 
}); 
+1

W jaki sposób jest kodowany front-end? Czy słyszałeś o cordova i czy o luce telefonicznej? Korzystają z opakowania, aby aplikacje były kompatybilne/dostępne do pobrania w sklepie z aplikacjami dla systemów iOS i Android, mają również obsługę kodowania natywnego, aby w razie potrzeby dodać dodatkową funkcjonalność. – Ravenous

+0

Nie wiem, jak to może mi pomóc? Oba końce są w javascript. –

+0

Cordova buduje prostą natywną aplikację, ale wykorzystuje przeglądarki internetowe do wyświetlania aplikacji Webapp (javascript app). Możesz więc raz zakodować aplikację internetową i uzyskać zgodność krzyżową z systemami iOS i Android (np.tablety lub telefony). – Ravenous

Odpowiedz

1

Jak już powiedziałeś, działa idealnie dobrze z innymi urządzeniami, a także udało się naprawić iss ue z drugiej tabletki możliwe przyczyny mogę myśleć jest uszkodzona instalacja nodejs lub inny modules używasz

czyścić ponowną instalację Nodejs i wszystkich modules. Może być jakiś problem w twoich modułach, nie w twoim kodzie.

Kolejny powód, dla którego masz następujące wydanie nodejs utrzymuje dwie różne wersje zarówno obsługi instalacji modułów w inny sposób.

Użyj tej samej wersji, której używasz w laptopie.

0

I rozwiązany problem z HP OMNI tabletki ręcznie informacją johnny-five na który port mój Arduino jest podłączony jak wspomniano w OFFICIAL DOCUMENTATION

new five.Board({ port: "COM3" });//FOR WINDOWS ONLY 

Również musiałem przeinstalować wszystkie moduły, aby to działało

(Still nie działa z tabletem Acer)

Powiązane problemy