Résolu => Objective-C - SSH - Raspberry Pi
Bobyco
Membre
Bonjour, j'aurais besoin d'aide pour un petit projet.
J'aimerai faire une application iOS en objectif-C simple, avec un "Button" et un "Label". J'aimerait bien que l'application se connecte en SSH au raspberry pi sur le réseau local en lui donnant une instruction pour lancer un fichier bash. Se que je sais faire avec un Terminal. Mais je ne sais pas comment mettre en place dans mon application un connection SSH avec une commande.
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
https://github.com/NMSSH/NMSSH ?
Merci a toi pour se lien c'est exactement se que je chercher d'après la documentation que j'ai pus lire.
Mais je doit avoir un problème quand je réalise le framework.
Je m'explique. J'ai fait comme indiquer dans la documentation, mais quand j'intègre le NMSSH.framework dans mon project et que je lance un build pour tester si sa passe il me ressort une erreur:
ld: framework not found NMSSH
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Après plusieurs teste en recherche je n'arrive pas corriger cela. D'après se que j'ai compris (Je me trompe peut-être) sa serait du a un problème de compatibilité sur les architecture.
Tu l'as installé via Pod/Carthage?
Tu codes en Swift ?
Si c'est via Pods, tu as bien ouvert le .xcworkspace et pas le .xcodeproj? Si tu fais du Swift, tu as bien décommenté dans le PodFile le use_framework?
Vu qu'il y a des static libraries (les trucs en .a) d'après ce que j'ai pu voir dans le PodSpec, sur quoi tu essayes de le faire tourner ? Simulateur ? Vrai device?
J'utilise Pod et objectif-C.
Oui j'ai bien lancer avec le .xcworkspace.
J'ai une question, si je suis passer par pod pour l'utiliser, je ne suis pas obliger de générer a partir de la source comme indiquer sur GitHub ?
J'ai pas testé, mais tu ne devrais pas avoir à importer le .framework.
Il faut juste que tu écrives :
pod 'NMSSH' dans ton PodFile au bon endroit.
Tu dois ensuite fait un pod update.
Une fois terminé, ouvre le .xcworkspace.
Et fais directement un #import <NMSSH/NMSSH.h> là où tu veux l'utiliser.
Je t'en remercie pour t'on aide, tu ma bien aider pour pouvoir me connecter en SSH.
Au niveau du Pod j'avais bien créer le fichier et j'avais bien fait install depuis le terminal.
Par contre je tester plusieurs façon de faire et j'ai générer un framework pour iOS et l'est intégré a mon project et la plus d'erreur donc je sais pas vraiment si les erreur venait de la exactement.
Quand j'aurais un peut de tant je testerai a nouveau voir si le problème vient de la.
Encore merci
Re-Bonjour tout le monde. Je revient vous voir car NMSSH me pose un petit problème, Je m'explique.
J'ai le code de basse qui envoie une commande sur mon raspberry
Donc je me connecte et demande l'état du port GPIO 1 qui se trouve sur le raspberry. La réponse ne peut être que 1 ou 0.
Après je veut tester la variable SwitchGPIO1Reponse et selon l'état faire une action. Voila mon problème, après plusieurs essaye avec une autre variable de type NSString ou NSSNumber il me répond toujours No.
Alors j'ai essayer un petit changement dans le code pour vérifier un truc :
Et la je voie que dans la console il m'écrit:
Donc voila je pense que le problème c'est que la commande qui me renvoie la réponse mais un Entrer comme dans un terminal après une commande, se qui fait que ma variable n'est jamais bonne et la je sais pas comment je pourrais la tester, vous avez une idée ?
Sinon:
C'est normal l'espace après le 1?
Non l'espace n'est pas la normalement je me suis tromper en copiant. Je pense pas que le NSLog ajoute le retour, je pense que c'est le retour de NMSSH. De mémoire je croie que NSString peut être multi ligne, peut être qu'on peut le formater pour n'avoir que une ligne, non ??
Tu devrais faire une trace moins ambigà¼e pour éviter les erreurs d'interprétation de ce que tu vois dans l'output, par exemple:
Dans NSString, comme dans tous les langages que je connais, le changement de ligne est matérialisé par des caractères spéciaux "non affichables". Donc oui, NSString est multiligne et si tu veux supprimer les passages à la ligne, il faut supprimer les caractères spéciaux correspondant qui se trouvent dans ta chaà®ne de caractère.
C'est là que les ennuis commencent quand on fait transiter des chaà®nes de caractères d'un système d'exploitation à l'autre comme toi :
https://fr.wikipedia.org/wiki/Carriage_Return_Line_Feed
Avec ce code tu vas pouvoir supprimer les retours à la ligne
ou plus élégant (si tu es certain d'avoir 0 ou 1 dans ta chaine) :