# LibNoDave und PHP



## TDS (13 August 2010)

Hallo,

ich arbeite zur Zeit an einer PHP-Schnittstelle zu libnodave. Aktuell kann diese Schnittstellen-Klasse folgendes (C++ Header):

```
class libNoDave {
public:
	bool daveConnected, daveConnectedPLC;

	libNoDave(char * ip);
	~libNoDave();
	void close(void);
	bool initRackSlot(int rack, int slot);
	bool getConnectState(int level);
	/** Read functions **/
	bool readBytes(int data_block, int data_offset, int data_count, unsigned char result[]);
	bool readWords(int data_block, int data_offset, int data_count, unsigned int result[]);
	bool readDWords(int data_block, int data_offset, int data_count, unsigned long result[]);
	bool readFloats(int data_block, int data_offset, int data_count, float result[]);
	/** Write functions **/
	/** Timer **/
	bool readTime(unsigned int result[]);
	/** CPU State **/
	/** Diagnose log **/
	int readDiagLog(unsigned int result[]);
	/** Special functions **/
	bool startPLC(void);
	bool stopPLC(void);
private:
	daveInterface * di;
	daveConnection * dc;
	_daveOSserialType fds;
};
```
Wäre denn jemand daran interessiert zu testen bzw. daran mit zu entwickeln?

PS: Es gibt Probleme in multi-threaded (Apache, etc.) Umgebungen. Wenn via CGI/CLI aufgerufen, dann funktioniert alles bestens.

PS2: THX @ Jochen Kühner 4 Bugfixed in v0.8.4.5


----------



## Smileytom (22 Mai 2012)

Hi,

hast du an der PHP-Schnittstelle noch weiter gearbeitet? Dein Beitrag hier ist schließlich schon eine ganze Weile her. Jedenfalls bin ich aktuell auf der Suche nach genau so einer Schnittstelle. 
Hintergrund: Ich beschäftige mich schon einige Jahre damit unser Haus zu automatisieren. Anfangs haben wir große Teile über den EIB realisiert. (Licht, Rolläden, Alarm, Heizung). Unser Homeserver (eine Debian Kiste) ist ebenfalls an dieses System gekoppelt. Inzwischen haben wir gemerkt, dass wir über eine SPS noch deutlich mehr und auf Dauer kostengünstiger realisieren könnten. Ausserdem kamen wir bei der Realisierung unserer Badbeleuchtung an die Grenzen des EIB. So haben wir inzwischen eine Siemens S7 400 Baureihe im System verbaut. Bisher ist die SPS nur an den EIB gekoppelt und kommuniziert somit über den hässlichen Umweg SPS -> EIB -> mit dem Homeserver (der auch die Visualisierung übernimmt). Libnodave habe ich auf diesem Homeserver soweit auch zum laufen gebracht. Ich kann die SPS starten und stoppen. Mehr bringe ich bisher nicht zu Stande, da ich als Hobby - Automatisierungsfan mich leider nur mit PHP auskenne. Könnte ich nun die SPS mittels deiner Schnittstelle ansprechen, wäre das mehr als nur fantastisch... Das würde mich einen ganz großen Schritt weiterbringen  

Daher nun die Frage: Hast du hoffentlich noch weiter gemacht und könntest du mir deine Schnittstelle zur Verfügung stellen? 

Vielen vielen Dank vorab!
Herzliche Grüße
Tommy


----------



## TDS (22 Mai 2012)

Hallo Tommy,
ich habe weiter gemacht. Leider liegt das Projekt seit Monaten auf Eis da einfach andere Projekte wichtiger waren.
Derzeit läuft alles via CGI-Modul bzw. Kommandozeile via PHP recht stabil. Ich werde das Projekt bald wieder aufgreifen und verbessern bzw. den aktuellen LibNoDave Sourcecode integrieren.
Für die Freigabe des Quellcodes als PHP-Modul müsste ich erstmal anfragen was ich freigeben darf da dies für die Firma entwickelt wurde.


----------



## Smileytom (22 Mai 2012)

Wow - Selten so eine schnelle Reaktionszeit erlebt. Danke vielmals dafür. Ich würde das eh über die Kommandozeile laufen lassen - wäre somit für mich absolut perfekt geeignet. Ich wäre dir wirklich sehr dankbar, wenn du in der Firma nachfragen könntest.

Tausend Dank vorab!
Tommy


----------

