Learn Script PHP debug - aliconnect/aliconnect.sdk GitHub Wiki
Qnode maakt gebruik van PHP om meldingen naar ACSM te sturen via SOAP. In dit document wordt beschreven hoe deze koppeling werkt en welke tools er zijn om deze te debuggen.
-
Open notepad met administratieve rechten.
-
Open de PHP configuratie file in C:\Program Files\PHP\v7.4\php.ini
-
Aan het einde van de file voeg de volgende 2 regels toe.
[AIM] error_log = "C:\github\log\php_error.log"
Voordat het Qnode naar de file logged moet dit aangezet worden in de log.json file in dezelfde acsm folder. Wanneer log op 1 gezet wordt zal er debug geschreven worden in de error.log file. De logging kan ook aangezet worden op de site http://localhost/station/src/acsm//test.html, de site wordt in het debugging hoofdstuk meer toegelicht. ZET DE DEBUGGING AALTIJD WEER UIT, omdat de debugging naar de schijf wordt geschreven kan deze vol raken als de debugging aan wordt gelaten.
Ga naar de volgende site localhost ACSM test tool. Op de site is de onderstaande afbeelding te zien. Zoals in het config hoofdstuk beschreven kan de logging aan en uit gezet worden. ACSM verstuurd een Subscribe en een stopSubscribe commando die kunnen gesimuleerd worden met de buttons onderaan.
Tot slot kan er naar ACSM berichten verzonden worden met de button verzenden.
Dit is een SOAP bericht met de parameters die erboven kan worden ingevuld.
<s:complexType name="WebLogItem">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="LogID" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="SystemInstanceID" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="GroupID" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="LocationID" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="TagID" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="LogType" type="tns:LogTypes" />
<s:element minOccurs="0" maxOccurs="1" name="TextualValue" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="NumericValue" type="s:double" />
<s:element minOccurs="1" maxOccurs="1" name="TimeStamp" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="Quality" type="tns:TagFlags" />
<s:element minOccurs="1" maxOccurs="1" name="StandardOutput" type="tns:StandardOutputs" />
</s:sequence>
</s:complexType>
Zolang als ACSM subscribed is aan een station verstuurd het systeem data dat veranderd via SOAP met het ReportChanges commando. De subscribe status wordt bijgehouden in de file Subscrive.json in de ACSM folder. Log.php verstuurt de data en wanneer dit succesvol world afgerond wordt de state van WATCHDOG_ACSM op connected gezet. Server.php handelt het ACSM Subscribe, StopSubscription en GetSubscriptionState commando.