Stap 2: Making Sense van de gegevens
Een lange tijd geleden kreeg ik een bord van de ontwikkeling van MeLabs genaamd de Lab-XT. Het was voor pic micro-controllers en het ondersteuning chips voor DTMF en CallerID had. Ik was verbaasd dat niemand heeft echt geen voorbeelden voor de Arduino-wereld. Er is een die er zijn, vele malen herhaald, maar het werkt gewoon niet voor mij.
Met behulp van de MeLabs Caller ID informatiepagina als een gids uiteengezet heb ik te bouwen van een Eenvoudige statusmachine als u wilt parseren van het binnenkomend pakket. Het kan niet eenvoudig kijken maar ik heb geprobeerd om dingen uit te rekken zodat u langs in de code volgen kunt. Ik heb alleen geïmplementeerd de MDMF want dat is wat in mijn huis. De SDMF is eenvoudiger maar hoeft niet een werkelijke dump te gaan door.
Als iemand me een terminal logboek van een bericht van de SDMF dat ik zal het toevoegen aan de code stuurt. Ik kunt het overspelen van stortplaatsen in de decoder te testen.
En dat is het eerste ding om te doen. Krijg een dump van de gegevens. Ik gebruikte een productieve USB naar seriële breakout board om het bijhouden van de gegevens uit de pin. Ik gebruikte Putty te loggen een paar gesprekken en de Midnight Commander, u kunt het logboekbestand weergeven in HEX. Er zijn tal van andere terminals en kijkers. Gebruik uw favoriete.
Er is een heleboel ruis op de lijn, maar er is geen twijfel die 30 U's in een rij. Enkel voor het geval dat ik mis wat die ik testen voor ontvangen > 25 U's. Ik kijk dan voor de 0x80-id van het MDMF-pakket. Dit is waar je zou kijken voor een 0x04 als je wilde ook doen SDMF decoderen.
Ik sla de pakketlengte zodat ik weet wanneer werden gedaan.
Er zijn 5 bericht id's om naar te kijken voor en ik ieder afzonderlijk te verwerken. Het eindigt met een controlesom maar ik negeerde die voor nu. Misschien later. Een onleesbaar naam zie ik liever dan een foutmelding...
De datum bericht lijkt lokaal zijn voor de provider. Een lokale voip server was uitgeschakeld door 1 uur maar dat is een fout opgetreden van daglicht, besparingen op de server zelf.
Ik probeerde een aantal verschillende providers en de berichten komen niet altijd in dezelfde volgorde. Soms zijn "datum - naam - nummer" en bij anderen was het "Datum - nummer - naam". YMMV