Template:NetworkServerConfig: Difference between revisions

From Phidgets Support
No edit summary
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 2: Line 2:
There are two different ways to configure the Phidget Network Server:
There are two different ways to configure the Phidget Network Server:
*via the Phidget Control Panel (for Windows and macOS users). This provides a simple way for you to make changes to the Phidget Network Server, however, not all settings are available.
*via the Phidget Control Panel (for Windows and macOS users). This provides a simple way for you to make changes to the Phidget Network Server, however, not all settings are available.
*modifying the Phidget Network Server configuration file directly. All settings are available, but it is not as user-friendly.
*modifying the Phidget Network Server configuration file directly.  




Find the configuration file on your machine by referencing the following table:
Find the configuration file on your machine by referencing the following table:
{| class ="wikitable" style="text-align: center"
{| class ="wikitable" style="text-align: center"  
| align="center" style="background:#f0f0f0;"|'''Operating System'''
| align="center" style="background:#f0f0f0;"|'''Operating System'''
| align="center" style="background:#f0f0f0;"|'''Location'''
| align="center" style="background:#f0f0f0;"|'''Location'''
| align="center" style="background:#f0f0f0;"|'''File'''
|-
|-
|Linux||/etc/phidgets/
|Linux||/etc/phidgets/||phidget22networkserver.pc
|-
|-
|Windows||C:/ProgramData/Phidgets
|Windows||C:/ProgramData/Phidgets||phidget22networkserver.pc
|-
|-
|macOS||/Library/Preferences/Phidget22NetworkServer/
|macOS||/Library/Preferences/Phidget22NetworkServer/||phidget22networkserver.pc
|-
|-
|}
|}
Line 21: Line 22:
===Settings===
===Settings===
{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
   enabled: true
   enabled: true
Line 30: Line 31:
!colspan="2"|phidget {
!colspan="2"|phidget {
|-
|-
|enabled||Enable the Phidget Server and provide access to Phidget channels over the network.
|enabled||enable the Phidget Server and provide access to Phidget channels over the network.
|}
|}
|}
|}
Line 36: Line 37:


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     auth {
     auth {
Line 53: Line 54:


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     pidfile: '/var/run/phidget22networkserver.pid'
     pidfile: '/var/run/phidget22networkserver.pid'
Line 62: Line 63:
!colspan="2"|phidget {
!colspan="2"|phidget {
|-
|-
|pidfile||need more info
|pidfile||where the UNIX pid file is written
|}
|}
|}
|}


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     logging {
     logging {
Line 117: Line 118:
|enabled||enable network logging.
|enabled||enable network logging.
|-
|-
|port||unknown
|port||tcp port that the server listens on
|}
|}
|}
|}


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     network {
     network {
Line 145: Line 146:
!colspan="2"|network {
!colspan="2"|network {
|-
|-
|keepalive||unknown
|keepalive||the server is constantly sending keepalive packets to the client, if it doesn't get a response in the ''keepalive'' milliseconds, it will close the connection (0 turns off, so server won't send keep alive)
|-
|-
|resolveaddrs||if addresses should be resolved to names (affects performance)
|resolveaddrs||if addresses should be resolved to names (affects performance)
Line 151: Line 152:
!colspan="2"|ipv4 {
!colspan="2"|ipv4 {
|-
|-
|address||the address to bind. '''need more info/better explanation'''
|address||the address to bind
|-
|-
|port||server port. '''need more info/better explanation/options for port #?'''
|port||server port
|-
|-
!colspan="2"|datagram {
!colspan="2"|datagram {
|-
|-
|enabled||if UDP for events is allowed. '''can we give more info?'''
|enabled||if UDP for events is allowed
|-
|-
!colspan="2"|publish {
!colspan="2"|publish {
Line 169: Line 170:


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     feature {
     feature {
Line 189: Line 190:
!colspan="2"|control {
!colspan="2"|control {
|-
|-
|enabled||'''what does the control dictionary do'''
|enabled|| enables controls dictionary, which is the network one
|-
|-
!colspan="2"|stats {
!colspan="2"|stats {
|-
|-
|enabled||'''what does the stats dictionary do'''
|enabled|| enables the stats dictionary
|-
|-
!colspan="2"|dictionary{
!colspan="2"|dictionary{
|-
|-
|enabled|| '''need more info'''
|enabled|| this enables the use of dictionaries on your server
|-
|-
|directory||'''need more info'''
|directory||points to the dictionary.d file
|}
|}
|}
|}
Line 205: Line 206:


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     filter {
     filter {
Line 229: Line 230:
!colspan="2"|filter {
!colspan="2"|filter {
|-
|-
|enabled||'''what is filtering for?'''
|enabled||enable filter to limit what clients are allowed to connect
|-
|-
!colspan="2"|clients {
!colspan="2"|clients {
Line 255: Line 256:


{|  
{|  
|style="width:62%"|<syntaxhighlight>
|style="width:62%"|<syntaxhighlight lang=bash>
phidget{
phidget{
     www {
     www {
Line 294: Line 295:
|docroot||where your webpage/files exist.
|docroot||where your webpage/files exist.
|-
|-
|mimetypes||'''unknown'''
|mimetypes|| location of mimetypes file
|-
|-
!colspan="2"|logging {
!colspan="2"|logging {
Line 300: Line 301:
|level||See the Phidget Control Panel [[Phidget Control Panel#Logging|logging section]] for more information about different log levels.
|level||See the Phidget Control Panel [[Phidget Control Panel#Logging|logging section]] for more information about different log levels.
|-
|-
|accesslog||specify the access log location. This file lets you know '''who has accessed your webserver?'''
|accesslog||specify the access log location. This file lets you know who has accessed your webserver.
|-
|-
!colspan="2"|network {
!colspan="2"|network {
|-
|-
|cachectrl||prevents clients from caching results (for testing) '''other options?'''
|cachectrl||prevents clients from caching results (for testing)  
|-
|-
!colspan="2"|ipv4 {
!colspan="2"|ipv4 {
|-
|-
|address||address to bind '''what does this mean?'''
|address||address to bind  
|-
|-
|port||'''more info?'''
|port||specify your port
|-
|-
!colspan="2"|publish {
!colspan="2"|publish {
Line 323: Line 324:
|-
|-
|passwd||the server password
|passwd||the server password
|}
|}
{|
|style="width:62%"|<syntaxhighlight>
phidget{
    dictionarystore {
        enabled: true
pidfile: '/var/run/dictionarystored.pid'
sync: 3
database {
    directory: '/var/phidgets/dictionary.d'
}
logging {
    level: info
}
    }
}
</syntaxhighlight>
|
{|class="wikitable"
!colspan="2"|dictionarystore {
|-
|enabled||'''need more info'''
|-
|pidfile||'''need more info'''
|-
|sync||how often configuration changes are synced. '''what does this mean?'''
|-
!colspan="2"|database{
|-
|directory||location of database files. '''what does this mean'''
|-
!colspan="2"|logging {
|-
|level||See the Phidget Control Panel [[Phidget Control Panel#Logging|logging section]] for more information about different log levels.
|}
|}
|}
|}

Latest revision as of 19:47, 7 October 2020

Configuring the Phidget Network Server

There are two different ways to configure the Phidget Network Server:

  • via the Phidget Control Panel (for Windows and macOS users). This provides a simple way for you to make changes to the Phidget Network Server, however, not all settings are available.
  • modifying the Phidget Network Server configuration file directly.


Find the configuration file on your machine by referencing the following table:

Operating System Location File
Linux /etc/phidgets/ phidget22networkserver.pc
Windows C:/ProgramData/Phidgets phidget22networkserver.pc
macOS /Library/Preferences/Phidget22NetworkServer/ phidget22networkserver.pc

Now that you have the configuration file on hand, we will go through each setting and describe it.

Settings

phidget{
   enabled: true
}
phidget {
enabled enable the Phidget Server and provide access to Phidget channels over the network.


phidget{
    auth {
        password: 'temp123'
    }
}
auth {
password set a password for your Phidget Server.


phidget{
    pidfile: '/var/run/phidget22networkserver.pid'
}
phidget {
pidfile where the UNIX pid file is written
phidget{
    logging {
        level: info
	file: 'c:/tmp/networkserver.log'
	maxfiles: 4
        maxsize: 1048576
	network {
	    enabled: true
	    port: 5771
	}
	source {
	    phidget22net {
	        level: info
	    }
	    _phidget22usb {
	        level: info
	    }
	    _phidget22match {
	        level: error
	    }
	    _phidget22channel {
	        level: error
	    }
	    _phidget22bridge {
		level: error
	    }
	    _phidget22disp {
		level: error
	    }
        }
    }
}

The use of level throughout this section refers to log level. See the Phidget Control Panel logging section for more information.

logging {
file choose the log file location and name
maxfiles the maximum number of log files to keep before rotation deletes them.
maxsize the maximum file size of a log file before rotation.
network {
enabled enable network logging.
port tcp port that the server listens on
phidget{
    network {
        keepalive: 30000
	ipv4 {
	    address: localhost
	    port: 5661
	}
	datagram {
	    enabled: true
	}
	publish {
	    enabled: true
	    name: 'Phidget22 Server'
	}
	resolveaddrs: false
    }
}
network {
keepalive the server is constantly sending keepalive packets to the client, if it doesn't get a response in the keepalive milliseconds, it will close the connection (0 turns off, so server won't send keep alive)
resolveaddrs if addresses should be resolved to names (affects performance)
ipv4 {
address the address to bind
port server port
datagram {
enabled if UDP for events is allowed
publish {
enabled publish your Phidget Network Server to mDNS
name the name that will be published (defaults to computer name).


phidget{
    feature {
        control {
	    enabled: true
	}
	stats {
	    enabled: true
	}
	dictionary {
	    enabled: true
	    directory: '/etc/phidgets/dictionary.d'
	}
    }
}
control {
enabled enables controls dictionary, which is the network one
stats {
enabled enables the stats dictionary
dictionary{
enabled this enables the use of dictionaries on your server
directory points to the dictionary.d file


phidget{
    filter {
        enabled: true
	clients {
	    default: allow
	    allow {
	        enabled: false
		verbose: false
		list: ['192.168.2.159', '192.168.3.120' ]
	    }
	    deny {
		enabled: false
		verbose: false
		list: ['192.168.2.158', '192.168.3.119' ]
	    }
	}
    }
}
filter {
enabled enable filter to limit what clients are allowed to connect
clients {
defaults choose between allow or deny. Controls if the default is to allow or deny connections.
allow {
enabled if allow rules should be processed
verbose if clients that are allowed to cause a log message
list list of addresses to allow
deny {
enabled if deny rules should be processed
verbose if clients that are denied cause a log message
list list of addresses to deny


phidget{
    www {
    enabled: true
    serverhost: 'my-pc'
    docroot: '/var/phidgets/www'
    mimetypes: '/etc/phidgets/mimetypes.kv'
    logging {
        level: debug
	accesslog: '/var/log/phidget22access.log'
    }
    network {
        cachectrl: nocache
	ipv4 {
	    address: 192.168.1.1
	    port: 8080
	}
	publish {
	    enabled: true
	    name: 'Phidget22 Server'
	}
    }
    phidgets {
        enabled: true
	passwd: 'temp123'
        }
    }
}
www {
enabled enables the Phidget Webserver
serverhost the host name to use for redirects etc. This should not be specified unless there is a reason to override the host name (e.g. server being accessed through a firewall)
docroot where your webpage/files exist.
mimetypes location of mimetypes file
logging {
level See the Phidget Control Panel logging section for more information about different log levels.
accesslog specify the access log location. This file lets you know who has accessed your webserver.
network {
cachectrl prevents clients from caching results (for testing)
ipv4 {
address address to bind
port specify your port
publish {
enabled if the WWW server should be published to mDNS
name the name to publish (defaults to computer name)
phidgets {
enabled contorls if we allow websocket upgrades for Phidgets
passwd the server password