Beste lezers,
Via een PHP script proberen we een externe bluetooth zender aan te sturen. Dit kan (getest en werkt!) via de welbekende telnet verbinding (tcp).
Om dit via php voor elkaar te krijgen hebben we het volgende script:
Zoals je kunt zien maken we een verbinding, doen we een login en vervolgens doen we een zogenaamde "inquiry" naar bluetooth apparaten.
In telnet resulteert dit in een regeltje of 8. Maar om een of andere reden duurt dit script ongeveer 30 sec. a 1 minuut. Dit komt mogelijk omdat er geen feof bestaat.
We hebben al veel gezocht naar mogelijke oplossingen (uiteraard ook op tweakers), maar niets wil ons in de goede richting helpen.
Wat we al hebben geprobeerd (en niets heeft opgeleverd):
- feof verranderen in iets als "true" etc.
- time outs manipuleren: stream_set_timeout($fp, 5)
- ssh, welliswaar zonder foutmelding, maar ook traag en alles in 1 array veld.
Als we alleen de eerste regel willen hebben met bijv deze code:
dan krijg je binnen 1 seconde de resultaten op het scherm (zonder while loop).
als we al dit proberen gaat het mis:
hij gaat blijkbaar niet automatisch naar de volgende regel oid.
Wie heeft een idee? We zitten al 2 dagen hopeloos naar ons monitortje te staren
alvast bedankt voor de reacties.
Via een PHP script proberen we een externe bluetooth zender aan te sturen. Dit kan (getest en werkt!) via de welbekende telnet verbinding (tcp).
Om dit via php voor elkaar te krijgen hebben we het volgende script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php $fp = fsockopen("tcp://192.168.0.23", 10101); fwrite($fp, '****\r\n'); // pass fwrite($fp, 'inquiry 5\r\n\r\n'); // command while(!feof($fp)){ $data[] = fread($fp, 1024); } fclose($fp); print_r($data); ?> |
Zoals je kunt zien maken we een verbinding, doen we een login en vervolgens doen we een zogenaamde "inquiry" naar bluetooth apparaten.
In telnet resulteert dit in een regeltje of 8. Maar om een of andere reden duurt dit script ongeveer 30 sec. a 1 minuut. Dit komt mogelijk omdat er geen feof bestaat.
We hebben al veel gezocht naar mogelijke oplossingen (uiteraard ook op tweakers), maar niets wil ons in de goede richting helpen.
Wat we al hebben geprobeerd (en niets heeft opgeleverd):
- feof verranderen in iets als "true" etc.
- time outs manipuleren: stream_set_timeout($fp, 5)
- ssh, welliswaar zonder foutmelding, maar ook traag en alles in 1 array veld.
Als we alleen de eerste regel willen hebben met bijv deze code:
PHP:
1
| $data = fread($fp, 128); |
dan krijg je binnen 1 seconde de resultaten op het scherm (zonder while loop).
als we al dit proberen gaat het mis:
PHP:
1
2
| $regel1 = fread($fp, 128); $regel2 = fread($fp, 128); |
hij gaat blijkbaar niet automatisch naar de volgende regel oid.
Wie heeft een idee? We zitten al 2 dagen hopeloos naar ons monitortje te staren
alvast bedankt voor de reacties.