Espionner les camions



Aussi banal que cela puisse paraître, au XXIe siècle, les camions ne transportent pas seulement des marchandises d'un point A à un point B, mais sont plutôt des systèmes complexes de composants connectés par un réseau. La collecte d'informations à partir de ces composants, complétée par les capacités des appareils mobiles modernes qui peuvent déterminer leur emplacement via le système GPS et disposer de communications mobiles, révèle des opportunités plutôt importantes pour optimiser le transport, la gestion de la flotte et, d'une certaine manière, même le comportement des conducteurs. Tout cela s'appelle la télématique des transports, à laquelle cet article est dédié.

Forcé d'avertir que je n'ai pas utilisé la langue russe trop souvent depuis 25 ans, alors ne soyez pas surpris si la structure de la phrase ou les mots utilisés vous paraissent étranges.

J'ai déjà travaillé pendant 13 ans au total dans le domaine de la télématique des transports, 5 ans pour la surveillance des éboueurs, 8 ans pour les camions-citernes. Ces deux options avaient beaucoup en commun, mais aussi beaucoup de choses différentes.

Tout d'abord, un peu sur le général


La première et principale fonction est le suivi GPS. Vous pouvez voir où le camion passait, vous pouvez déterminer où il a perdu sa position et où il a été retrouvé, presque en temps réel.

S'il n'y a pas de connexion au serveur, la piste est enregistrée dans la mémoire de l'ordinateur de bord. En l'absence de réception GPS, une surveillance indirecte à travers les positions des tours GSM est possible. À un moment donné, nous avions un partenariat avec OpenCellId - une banque de données ouverte sur l'emplacement des stations de base GSM (plus d'informations à ce sujet ont été écrites ici ), où j'ai téléchargé environ un million de coordonnées chaque semaine, mais malheureusement, le partenariat a pris fin lorsque OpenCellId a été vendu à une société indienne qui a tourné le service. payé même pour les assistants - et pourtant, notre système unique donnait environ le quart de toutes les coordonnées reçues.

Lorsque vous vous déconnectez, les données ne sont pas perdues, elles sont simplement écrites moins souvent afin que la mémoire interne ne soit pas trop pleine. La quantité de données de piste dépend également de la vitesse à laquelle le camion se déplace. Habituellement, la fréquence de collecte des données augmente proportionnellement à la vitesse de sorte que la trace sur la carte semble plus fluide, mais certains clients ne sont pas intéressés par les données où la voiture roule à grande vitesse - dans de tels cas, la voiture est généralement située sur l'autoroute, où rien d'intéressant ne se produit de toute façon .

La deuxième fonction principale, qui est souvent implémentée séparément de la première - à tel point que du fer supplémentaire est utilisé à cet effet - est de travailler directement avec le pilote. L'écran de la tablette affiche une liste de tâches pour le conducteur avec les adresses des clients auxquels il doit se rendre. En règle générale, le conducteur est obligé de sélectionner une tâche dans la liste, de «démarrer» cette tâche, et lors de l'exécution de la tâche «terminer», il est possible d'entrer des données supplémentaires.
Ainsi, au bureau en temps réel, on peut voir ce que le conducteur est spécifiquement occupé quand il a commencé à travailler, quand le travail a été fait. Grâce à cette opportunité, il sera possible de calculer au bureau combien le chauffeur a vraiment travaillé et combien ce voyage a coûté à l'entreprise. Dans le même temps, toutes les informations nécessaires, qui auparavant n'étaient que sur papier, vont immédiatement et automatiquement aux systèmes informatiques. Pour ce travail supplémentaire, le conducteur dispose de plusieurs commodités, telles que: l'activation automatique de la navigation vers la cible ou la possibilité d'imprimer immédiatement tous les documents nécessaires, au lieu de remplir des formulaires.

Vient ensuite la surveillance du FMS et de divers capteurs. Les camions modernes disposent d'un système de commande de moteur numérique plutôt sophistiqué, et pour faciliter la collecte d'informations pour ces ordinateurs de bord, sept fabricants de camions européens ont créé ensemble le format FMS (Fleet Management System), une interface normalisée pour la connexion (en lecture seule) au système de commande de moteur via CAN-Bus, dans lequel en temps réel les principaux paramètres du camion sont présents, tels que la vitesse, le kilométrage, la consommation de carburant dans un certain format standard.

Fondamentalement, ces informations servent à vérifier la qualité du travail des conducteurs - comment ils conduisent économiquement, mais il est tout à fait possible d'attraper des voleurs. Par exemple, si le niveau de carburant dans le réservoir baisse plus rapidement que d'habitude, surtout si le camion se tient à ce moment-là, la situation n'est pas ambiguë.

En outre, certaines informations proviennent d'un tachygraphe numérique, un instrument obligatoire dans l'Union européenne qui enregistre les périodes de travail des conducteurs et la vitesse du véhicule. Ainsi, sans vous connecter au tachygraphe, vous pouvez directement savoir quand un conducteur particulier a pris le volant ou a terminé le travail. Différents capteurs sont généralement des entrées numériques, vous pouvez donc vérifier où ils sont inclus (phares, ceinture de sécurité, etc.). Un exemple élémentaire pour ce type de capteurs est l'ordinateur de bord qui surveille le frein à main, et seulement si le frein est activé, il arrête de bloquer le téléphone - de nombreuses entreprises qui transportent des marchandises dangereuses interdisent aux conducteurs de parler au téléphone pendant la conduite.

Étant donné que les modems GSM sont utilisés dans les appareils télématiques, cela signifie qu'en principe ils peuvent être utilisés comme téléphones mobiles, le conducteur n'aura donc pas besoin de donner un moyen de communication. Dans le même temps, vous pouvez contrôler la façon dont cet outil de communication sera utilisé - le verrou du téléphone avec un frein à main, dont j'ai parlé ci-dessus, le verrouillage du téléphone en dehors du réseau domestique, la permission d'appeler uniquement certains numéros.

Des SMS sont également reçus et envoyés, c'est pourquoi vous devez parfois écouter les plaintes des conducteurs qui se trouvaient souvent près de la frontière - les tarifs montent constamment, ce qui a conduit à un dilemme - sans liste noire supplémentaire, vous ne pouvez désactiver complètement la réception des SMS (simplement en supprimant le tableau SMS de banque de données), mais les messages ne seront pas reçus du tout.

Il existe une autre fonctionnalité utile associée à l'utilisation d'un modem GSM - lorsqu'un signal est reçu d'un enregistreur de données d'événement (EDR), l'ordinateur de bord peut automatiquement composer un numéro de téléphone spécifique.

Maintenant un peu sur les différences


Pour les camions à ordures, l'essentiel est de savoir où aller et combien ramasser. En conséquence, une tâche assez importante consistait à connecter les balances intégrées dans l'élévateur des conteneurs à ordures et à les peser automatiquement lors du levage. Pour ce poids, les clients professionnels sont facturés pour le travail.

Les conducteurs, à leur tour, peuvent recevoir un bonus pour un travail rapide, vous devez donc savoir combien de temps il a fallu pour secouer le conteneur et à quelle vitesse le conteneur a été ramassé après l'arrivée du camion à ordures à destination.

Pour ce faire, il a fallu connecter le joystick de commande de l'ascenseur à une entrée numérique, ce qui n'a pas toujours été aussi simple qu'il n'y parait au stade de la planification. Une fois, un technicien s'est plongé dans l'électricité d'un camion pendant si longtemps que le conducteur en a eu assez d'attendre, et il est rentré chez lui, et le technicien et moi sommes restés. Tout est connecté, cela semble fonctionner, et le signal passe, mais sans pilote nous ne pourrions pas faire un scan complet.

Le lendemain matin, nous attendions une énorme séparation avec le client - le technicien a fait quelque chose de mal et l'ascenseur n'a soulevé le conteneur que de la moitié de la hauteur nécessaire. Une autre fois, il y a eu un problème avec le système électrique du camion, dont l'un des fusibles a dû être retiré. Après cela, le camion a complètement ignoré la clé de contact et ne s'est pas éteint du tout, et a fonctionné au ralenti jusqu'à ce que le diesel dans le réservoir soit épuisé.

Comme il existe de nombreux fabricants de modules complémentaires pour les camions à ordures, il existe un grand nombre de protocoles différents pour les balances intégrées dans l'ascenseur, et pour chacun d'entre eux, nous avons dû écrire des fonctions distinctes. Dans certaines échelles, il n'y avait aucune interface pour la télématique, la seule sortie d'information était vers leur imprimante spéciale via RS232. Ici, nous avons déjà dû souder le câble en Y et extraire les informations nécessaires du flux de données pour l'imprimante.


Vérification des poids

Il y avait aussi la tâche de former de nouveaux conducteurs qui ne connaissaient pas encore l'itinéraire. Cela a été fait comme suit: un conducteur expérimenté parcourt l'itinéraire le plus optimal, sa trace GPS est enregistrée, optimisée manuellement pour le nombre de points, puis envoyée au système de navigation pour débutants.

À cette époque, les navigateurs n'avaient pas la possibilité de télécharger les traces enregistrées, nous avons donc dû définir chaque point «manuellement», surveiller le système de navigation et, lorsqu'il ne restait que quelques mètres, le remplacer par le suivant afin que le navigateur n'ait pas le temps d'annoncer avec joie la réalisation de l'objectif. Mais il était possible de passer une fenêtre avec des informations sur le navigateur, cela a été utilisé pour des commentaires dans lesquels le conducteur pouvait voir les caractéristiques de la cible - quelle est la façon la plus pratique d'appeler, qui demander des papiers, etc.

Il existe d'autres exigences pour les camions de carburant, l'accent est davantage mis sur le fait que les conducteurs ont une mauvaise tendance à voler du carburant. Et si en Europe occidentale, c'est plus probablement le cas des solitaires, dans l'Est, le vol d'essence est commis par des gangs entiers qui envoient leurs chauffeurs dans des sociétés de transport.

Il est impossible de traverser cette entreprise, de sorte que la plupart des fonctions antivol sont conçues pour attraper des voleurs sur les lieux du crime. Le principal outil pour cela est les geofences. D'une manière simple - dessinez des cercles sur la carte autour des endroits où certaines actions sont autorisées. Si ces actions se produisent en dehors de l'emplacement spécifié, une notification est envoyée à l'administrateur.

Vient ensuite le suivi de ces mêmes actions, ce qui peut être beaucoup. Les volets du système de vidange du réservoir, la vidange du liquide du réservoir, une ceinture de sécurité ouverte et même un arrêt pendant plus de 5 minutes sont décrits. La surveillance du système de vidange attrape également le plus souvent les conducteurs qui souhaitent profiter aux dépens de quelqu'un d'autre: pendant plusieurs jours, des notifications indiquent que le carburant s'écoule de la clôture. La piste montre que le conducteur à l'endroit où il a dépensé les prunes n'aurait pas dû être du tout. Le lendemain, la police l'attendait là-bas.

Une autre option est un réservoir d'essence, qui donne un signal continu lorsqu'il est fermé. Si le signal disparaît - le réservoir d'essence est ouvert ou le câble de signal est coupé - cela signifie que quelqu'un veut lentement vidanger le carburant pendant que le conducteur dort. Le système déclenche un bip, le conducteur se réveille et conduit les voleurs avec l'aide de telle ou telle mère.

À propos de la technique utilisée



Aplicom f-series

Lorsque j'ai commencé mon travail avec la télématique des transports en 2003, il n'y avait pratiquement pas d'appareils adaptés et relativement universels sur le marché pour lesquels je pouvais écrire mes programmes. Le choix à l'époque était, dans l'ensemble, limité à la série Aplicom C / série F et à Owasys Owa2x.

Le premier appareil a été fabriqué par des natifs de Nokia, qui travaillaient sur leur propre système d'exploitation (OS95A), qui était une variante du système d'exploitation pour les anciens téléphones Nokia, même ceux qui avaient deux lignes d'écran de texte. Le développement a été effectué sur C99 par le compilateur CodeWarrior ARM, et était plutôt gênant en raison du compilateur obsolète et du système d'exploitation plutôt primitif, qui était en fait compilé avec le programme que j'ai écrit pour le périphérique.

Le deuxième appareil a été fabriqué par des immigrants de la branche espagnole d'Ericsson, avait un processeur légèrement plus rapide, mais un port RS232 de moins et fonctionnait sous un Linux assez ancien. Le développement a été réalisé par le même ancien GCC (2.95.3) avec toutes les conséquences qui en ont résulté (bogues, fonctions de langage inopérantes, franchement supportable pour C ++ et mauvaise optimisation du code).

Aplicom a ensuite porté Linux sur leurs machines, mais il était déjà trop tard. Le plus gros inconvénient des appareils Aplicom était l'absence de système de fichiers, il était nécessaire d'écrire sur la mémoire Flash plus ou moins directement dans les cellules, et en effet, le fabricant ne recommandait souvent pas d'écrire sur cette mémoire.

D'autre part, Owa2x avait un gros avantage - Linux - et un grand nombre de lacunes - seulement deux ports RS232, ce qui rendait même difficile le débogage via la console, le contrôleur de bus CAN buggy, qui se bloquait régulièrement, en utilisant un port RS232 interne pour le GPS et pour le GSM utilisant un multiplexeur, qui a provoqué le gel du GPS lors du démarrage ou de l'arrêt du GSM, un système de fichiers qui a été décompressé dans un disque RAM à chaque démarrage, ce qui a rendu impossible le remplacement permanent d'un fichier système, et, par dessert, dock entatsiya, dont l'utilisation est inférieure à celle du papier toilette.

Lorsque j'ai visité le bureau du fabricant et leur ai montré tous ces problèmes (qu'ils n'ont pas résolus plus tard, disant simplement qu'ils fabriquent maintenant un nouveau matériel - Owa3x, dans lequel tout ira mieux), je leur ai laissé la documentation Aplikom pour prendre un exemple (exemple a commencé à prendre après environ 6 ans, alors qu'ils faisaient déjà la prochaine génération - Owa4x).


Clignotant Owa2x

Quand Owa3x est sorti, j'étais d'abord très heureux. Il y avait un nouveau compilateur (GCC 4.3), un processeur rapide, trois ports RS232 et, enfin, un emplacement pour carte microSD. Maintenant, il était possible de mettre le programme sur une carte, de sorte que plus tard, le cas échéant, il pourrait simplement être remplacé. Cependant, je me suis réjoui tôt.

Des erreurs d'architecture, telles que le système de fichiers décompressé et le même multiplexeur pour GPS et GSM, sont restées, et la première erreur est devenue plus grave - le micrologiciel est devenu beaucoup plus gros, et le modem a continué à prendre en charge uniquement GPRS, la version avec prise en charge UMTS était beaucoup plus chère, et cela 2011 année.

Les gens fabriquaient du fer comme avant. Ensuite, il s'est avéré que les cartes MicroSD sont en streaming si vous écrivez régulièrement dessus. Ils vivent environ un an, après quoi ils meurent et le programme cesse de démarrer. Au début, ils ont essayé de créer plusieurs sections sur la carte, et une - où le programme est en lecture seule. Cela n'a pas aidé, et c'était plutôt contre-productif - le contrôleur de carte n'était pas conçu pour une telle perversion.

Maintenant, le programme est dans la mémoire interne de l'appareil, et il n'y a que des données sur la carte, donc si la carte cesse de fonctionner, elle est simplement changée. Je ne le faisais pas auparavant, car il y avait souvent des problèmes avec le système de fichiers de la mémoire interne, des fichiers se cassaient régulièrement, ce que le fabricant a finalement pu réparer avec le firmware.


Owa3x

Il y a deux ans, j'ai décidé de faire une refactorisation sérieuse et de réécrire une partie du programme, car avant cela, il avait simplement acquis de manière non systématique toutes sortes de fonctions. Dans le même temps, j'ai décidé de me débarrasser de la dépendance au boost, qui gonflait considérablement la source et le binaire, et standardiser l'approche de résolution des problèmes, ou nous avons souvent utilisé la fonction boost, la fonction c ++ ou le classique de C pour obtenir le même effet.

Il était plus facile de se débarrasser de boost en réécrivant un programme pour C ++ 11, ce qui en même temps simplifierait beaucoup d'autres choses - qui est uniquement basé sur la plage au lieu d'itérateurs de kilomètre.

Il s'est avéré que la prise en charge de C ++ 11 sous GCC 4.3 est absolument tordue, même les programmes minimaux utilisant STL n'ont pas été compilés. Il y a eu une réponse officielle du fabricant qu'un autre compilateur sur ce matériel n'est pas pris en charge, mais 4.7.3 fonctionne officieusement si vous chargez le libstdc ++ correspondant, qui a plus ou moins fonctionné, mais n'était pas réaliste.

Ensuite, je devais déjà le croiser avec un hérisson - j'ai pris GCC 4.8.3 (4.9 n'aurait pas fonctionné, ils ont changé quelque chose dans l'ABI), y ai mis libstdc ++ de mon GCC 4.3 et copié les fichiers d'inclusion du système à leur tour, qui contenaient des erreurs , à partir de là, jusqu'à ce qu'il commence à compiler. Curieusement, toute cette conception a fonctionné, et pas mal.

Pendant un certain temps, le mélange résultant de bibliothèques et d'inclusions pourrait même être utilisé dans clang, mais les binaires n'étaient pas optimaux et il y avait plus d'erreurs - clang compilait parfois des appels à certaines fonctions que l'ancienne bibliothèque n'avait tout simplement pas, mais au moins de cette façon il y avait des erreurs stylistiques que GCC a pardonnées.

Contes de feu de camp


  • Quand j'ai commencé à travailler dans ce domaine, j'étais un étudiant-stagiaire absolument vert. L'entreprise dans laquelle j'ai obtenu un emploi vient de vendre ce qui était, dans l'ensemble, une présentation PowerPoint, et j'ai été immédiatement envoyée dans cette entreprise.

    Apparemment, mon nouvel employeur n'a pas pris tout cela au sérieux, malgré le fait que le client devrait suivre le programme en trois mois, et le stagiaire qui a commencé à l'écrire avant moi a arrêté.

    Je ne savais alors pas du tout comment programmer en C, avant de n'avoir écrit que des programmes DOS pour Turbo Pascal, principalement pour les bibliothèques de flux. Le langage C m'a terriblement frappé - combien d'occasions de se tirer une balle dans le pied!

    Après un certain temps, les choses ont commencé et le programme, bien qu'il ait été écrit de manière très tordue, a fonctionné, mais j'étais sans vergogne en retard. À ce moment, j'ai eu la chance que juste à ce moment-là un nouveau système de paiement routier allemand ait été introduit, qui dans l'ensemble avait également le même contrôle des véhicules, et son développeur TollCollect était également très en retard, devenant la risée de tout le pays. Dans ce contexte, les clients ont pris notre retard de plusieurs mois avec compréhension.
  • Imaginez que l'ordinateur de bord soit mort lors de la mise à jour d'un programme téléchargé via mobile. Quelque chose n'a pas fonctionné du tout, l'ordinateur a cessé de se charger. Il n'y a rien à faire, vous devez vous rendre au camion, installer manuellement la mise à jour via le port série.
    Un représentant du client m'a emmené à la base où se trouvait le camion, d'où elle avait les clés. , , , , . , . , , .
  • - , , . , , — , , , . , , , , , FIFO .
  • , , . , , — Renault Kerax, , .

    , 20 , - , , , . .
  • . , . , , - . , , .


Owa3x

Conclusion


L'ère de ces ordinateurs de bord spécialisés pour la télématique des transports touche à sa fin - ils sont très spécifiques, sont produits en petits lots et, pour cette raison, ils sont techniquement très en retard sur les appareils mobiles modernes - les téléphones et les tablettes, dans lesquels non seulement les processeurs sont plus rapides et plus de mémoire, mais aussi déjà coûteux un grand nombre de blocs de programme, que vous devez sinon écrire vous-même - même des choses de base comme une simple connexion à l'Internet mobile.

Et le développement d'applications sur des tablettes modernes est sans aucun doute beaucoup plus pratique. Cependant, ils ne seront pas en mesure de remplacer complètement l'équipement classique de la télématique de transport.Par conséquent, pour collecter le maximum d'informations, vous avez besoin d'un grand nombre de ports d'entrée / sortie - du type série RS232 ordinaire au type CAN-Bus spécialisé. Pour connecter tout cela à une tablette ordinaire sur Android, vous avez besoin d'un grand nombre de périphériques, ou de tablettes à petite échelle et hautement spécialisées indécemment chères, mais même un tel appareil présente un sérieux inconvénient - le pilote peut facilement l'éteindre et toute la collecte d'informations s'arrêtera.

Les ordinateurs de bord, qui resteront à l'avenir le rôle de ces centres d'informations pour les tablettes, fonctionneront aussi longtemps que le camion sera alimenté (bien qu'il y ait des jokers dans les ateliers qui les connectent au contact) et collectent des informations même s'il n'y a pas de connexion.

Un grand merci à l'utilisateur hdablin pour son soutien et son aide dans l'édition de l'article.

Source: https://habr.com/ru/post/fr408243/


All Articles