device independent
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1963
Independent FTP Daemon 1.5
iFTPd, Independent FTP Daemon, is an open source FTP server written in Java. more>>
iFTPd, Independent FTP Daemon, is an open source FTP server written in Java. Independent FTP Daemon features platform independence, system independence, ruggedness and a virtual file system.
The target audience of the FTP server is for those admins that need to be able to share files without having to install several other programs and databases and without having to configure the rest of the system.
Main features:
- Platform independence (Where do you want your JVM to go today?)
- System independence
- Does not require any users / groups on the host system.
- Does not require an SQL database.
- Does not does have weird and wonderful dependencies that must be downloaded from 500 different places.
- Ruggedness
- Once started, only the admin can stop iFTPd
- Virtual file system
- Create virtual file links, virtual directory links
- Merge several directories into one virtual directory
- Completely transparent to the user
- Users and groups
- Firewall friendly
- Multithreading
- Text file-based configuration
- Telnet-based status monitor
- HTML status monitor
Installation:
Unpack iftpd.zip.
Check that conf/iftpd.conf is to your liking.
Make at least one group in conf/groups/.
Make sure that at least one of the groups has a root directory.
"/stash/ftp/" r+ "/"
Make at least one user file in conf/users/.
Start iFTPd.
Linux users run: iftpd.sh
Enhancements:
- SSL (AUTH TLS) support has been added.
- Old scripts have been replaced with iftpd.sh.
- ALLO has been added for binary mode, but untested because no clients support it.
- Groups can contain other groups.
- SITE UTIME support has been added.
- Group files can have empty lines.
- CLNT support has been added.
- StatusToHtml (#CLIENTNAME#) has been added.
- The rename bug has been fixed (only worked with full paths before).
- Aborted transfer notification should finally be fixed.
- FEAT support has been added.
- IdleStrictChecking has been added in iftpd and iftpd.conf.
<<lessThe target audience of the FTP server is for those admins that need to be able to share files without having to install several other programs and databases and without having to configure the rest of the system.
Main features:
- Platform independence (Where do you want your JVM to go today?)
- System independence
- Does not require any users / groups on the host system.
- Does not require an SQL database.
- Does not does have weird and wonderful dependencies that must be downloaded from 500 different places.
- Ruggedness
- Once started, only the admin can stop iFTPd
- Virtual file system
- Create virtual file links, virtual directory links
- Merge several directories into one virtual directory
- Completely transparent to the user
- Users and groups
- Firewall friendly
- Multithreading
- Text file-based configuration
- Telnet-based status monitor
- HTML status monitor
Installation:
Unpack iftpd.zip.
Check that conf/iftpd.conf is to your liking.
Make at least one group in conf/groups/.
Make sure that at least one of the groups has a root directory.
"/stash/ftp/" r+ "/"
Make at least one user file in conf/users/.
Start iFTPd.
Linux users run: iftpd.sh
Enhancements:
- SSL (AUTH TLS) support has been added.
- Old scripts have been replaced with iftpd.sh.
- ALLO has been added for binary mode, but untested because no clients support it.
- Groups can contain other groups.
- SITE UTIME support has been added.
- Group files can have empty lines.
- CLNT support has been added.
- StatusToHtml (#CLIENTNAME#) has been added.
- The rename bug has been fixed (only worked with full paths before).
- Aborted transfer notification should finally be fixed.
- FEAT support has been added.
- IdleStrictChecking has been added in iftpd and iftpd.conf.
Download (0.16MB)
Added: 2006-06-23 License: GPL (GNU General Public License) Price:
1222 downloads
Device::SNP 1.2
Device::SNP is a Perl extension for the GE Fanuc SNP-X serial protocol as used by GE Fanuc DataPanel data terminals. more>>
Device::SNP is a Perl extension for the GE Fanuc SNP-X serial protocol as used by GE Fanuc DataPanel data terminals. See http://www.gefanuc.com/en/ProductServices/VisPCSolutions/DataPanel/index.html
SYNOPSIS
use Device::SNP;
my $s = new Device::SNP::Slave(
Portname => /dev/ttyUSB0,
Debug => 0);
$s->run();
Amarok serial interface program: datapanel.pl [-h] [-d] [-p portdevice]
portdevice defaults to /dev/ttyUSB0
ABSTRACT
This Device::SNP module contains an implementation of the GE Fanuc SNP-X serial protocol as used by GE Fanuc DataPanel data terminals. See http://www.gefanuc.com/en/ProductServices/VisPCSolutions/DataPanel/index.html
DESCRIPTION
DataPanels are usually used with PLCs to monitor and control industrial equipment. They provide a programmable bitmap display, programmable function keys, and can poll and display data values and set data values in a remote PLC using the SNP-X serial protocol.
The Device::SNP::Slave object implements an SNP-X slave, opens a Device::Serial port and answers SNP-X requests to read and write data to a simulated PLC.
This package also contains a sample application that uses a DataPanel 160 to implement a remote control panel for the Amarok music player on Linux, allowing you to play, pause, next, prev tracks etc.
DataPanels are programmed with a GE application called DataDesigner, available from the GE web site for registered customers. Included in this package is a database for DataDesigner 5.2 for the Amarok remote control application. You will need DataDesigner 5.2 to download the datadesigner/linux.DTB database to the DataPanel 160
Tested on SuSE linux, but should run on pretty well any Linux or Unix.
<<lessSYNOPSIS
use Device::SNP;
my $s = new Device::SNP::Slave(
Portname => /dev/ttyUSB0,
Debug => 0);
$s->run();
Amarok serial interface program: datapanel.pl [-h] [-d] [-p portdevice]
portdevice defaults to /dev/ttyUSB0
ABSTRACT
This Device::SNP module contains an implementation of the GE Fanuc SNP-X serial protocol as used by GE Fanuc DataPanel data terminals. See http://www.gefanuc.com/en/ProductServices/VisPCSolutions/DataPanel/index.html
DESCRIPTION
DataPanels are usually used with PLCs to monitor and control industrial equipment. They provide a programmable bitmap display, programmable function keys, and can poll and display data values and set data values in a remote PLC using the SNP-X serial protocol.
The Device::SNP::Slave object implements an SNP-X slave, opens a Device::Serial port and answers SNP-X requests to read and write data to a simulated PLC.
This package also contains a sample application that uses a DataPanel 160 to implement a remote control panel for the Amarok music player on Linux, allowing you to play, pause, next, prev tracks etc.
DataPanels are programmed with a GE application called DataDesigner, available from the GE web site for registered customers. Included in this package is a database for DataDesigner 5.2 for the Amarok remote control application. You will need DataDesigner 5.2 to download the datadesigner/linux.DTB database to the DataPanel 160
Tested on SuSE linux, but should run on pretty well any Linux or Unix.
Download (0.022MB)
Added: 2007-01-05 License: Perl Artistic License Price:
604 downloads
Device::Modem 1.47
Device::Modem is a Perl extension to talk to modem devices connected via serial port. more>>
Device::Modem is a Perl extension created to talk to modem devices connected via serial port.
WARNING
This is BETA software, so use it at your own risk, and without ANY warranty! Have fun.
SYNOPSIS
use Device::Modem;
my $modem = new Device::Modem( port => /dev/ttyS1 );
if( $modem->connect( baudrate => 9600 ) ) {
print "connected!n";
} else {
print "sorry, no connection with serial port!n";
}
$modem->attention(); # send `attention sequence (+++)
($ok, $answer) = $modem->dial(02270469012); # dial phone number
$ok = $modem->dial(3); # 1-digit parameter = dial number stored in memory 3
$modem->echo(1); # enable local echo (0 to disable)
$modem->offhook(); # Take off hook (ready to dial)
$modem->hangup(); # returns modem answer
$modem->is_active(); # Tests whether modem device is active or not
# So far it works for modem OFF/ modem ON condition
$modem->reset(); # hangup + attention + restore setting 0 (Z0)
$modem->restore_factory_settings(); # Handle with care!
$modem->restore_factory_settings(1); # Same with preset profile 1 (can be 0 or 1)
$modem->send_init_string(); # Send initialization string
# Now this is fixed to AT H0 Z S7=45 S0=0 Q0 V1 E0 &C0 X4
# Get/Set value of S1 register
my $S1 = $modem->S_register(1);
my $S1 = $modem->S_register(1, 55); # Dont do that if you definitely dont know!
# Get status of managed signals (CTS, DSR, RLSD, RING)
my %signal = $modem->status();
if( $signal{DSR} ) { print "Data Set Ready signal active!n"; }
# Stores this number in modem memory number 3
$modem->store_number(3, 01005552817);
$modem->repeat(); # Repeat last command
$modem->verbose(1); # Normal text responses (0=numeric codes)
# Some raw AT commands
$modem->atsend( ATH0 );
print $modem->answer();
$modem->atsend( ATDT01234567 . Device::Modem::CR );
print $modem->answer();
Device::Modem class implements basic AT (Hayes) compliant device abstraction. It can be inherited by sub classes (as Device::Gsm), which are based on serial connections.
<<lessWARNING
This is BETA software, so use it at your own risk, and without ANY warranty! Have fun.
SYNOPSIS
use Device::Modem;
my $modem = new Device::Modem( port => /dev/ttyS1 );
if( $modem->connect( baudrate => 9600 ) ) {
print "connected!n";
} else {
print "sorry, no connection with serial port!n";
}
$modem->attention(); # send `attention sequence (+++)
($ok, $answer) = $modem->dial(02270469012); # dial phone number
$ok = $modem->dial(3); # 1-digit parameter = dial number stored in memory 3
$modem->echo(1); # enable local echo (0 to disable)
$modem->offhook(); # Take off hook (ready to dial)
$modem->hangup(); # returns modem answer
$modem->is_active(); # Tests whether modem device is active or not
# So far it works for modem OFF/ modem ON condition
$modem->reset(); # hangup + attention + restore setting 0 (Z0)
$modem->restore_factory_settings(); # Handle with care!
$modem->restore_factory_settings(1); # Same with preset profile 1 (can be 0 or 1)
$modem->send_init_string(); # Send initialization string
# Now this is fixed to AT H0 Z S7=45 S0=0 Q0 V1 E0 &C0 X4
# Get/Set value of S1 register
my $S1 = $modem->S_register(1);
my $S1 = $modem->S_register(1, 55); # Dont do that if you definitely dont know!
# Get status of managed signals (CTS, DSR, RLSD, RING)
my %signal = $modem->status();
if( $signal{DSR} ) { print "Data Set Ready signal active!n"; }
# Stores this number in modem memory number 3
$modem->store_number(3, 01005552817);
$modem->repeat(); # Repeat last command
$modem->verbose(1); # Normal text responses (0=numeric codes)
# Some raw AT commands
$modem->atsend( ATH0 );
print $modem->answer();
$modem->atsend( ATDT01234567 . Device::Modem::CR );
print $modem->answer();
Device::Modem class implements basic AT (Hayes) compliant device abstraction. It can be inherited by sub classes (as Device::Gsm), which are based on serial connections.
Download (0.046MB)
Added: 2007-04-17 License: Perl Artistic License Price:
929 downloads
Device::ISDN::OCLM 0.40
Device::ISDN::OCLM is a perl module to control the 3com OfficeConnect LanModem. more>>
Device::ISDN::OCLM is a perl module to control the 3com OfficeConnect LanModem.
SYNOPSIS
$sp = 1;
$pw = secret;
$lanmodem = Device::ISDN::OCLM->new ();
$lanmodem->password ($pw);
$command = manualConnect;
$status = $lanmodem->$command ($sp);
while (($status eq CLOCK) || ($status eq PASSWORD) ||
($status eq CONNECTING) || ($status eq LOGGING IN)) {
if ($status eq CLOCK) {
sleep (1);
$status = $lanmodem->setClock ();
} elsif ($status eq PASSWORD) {
sleep (1);
$status = $lanmodem->enterPasword ();
} elsif (($status eq CONNECTING) || ($status eq LOGGING IN)) {
$command = connectStatus;
$status = OK;
}
if ($status eq OK) {
sleep (1);
$status = $lanmodem->$command ($sp);
}
}
print "$statusn";
This module can be used to control the 3com OfficeConnect LanModem, an ISDN TA/router. Device statistics can be queried and manual connections can be brought up and taken down. Support is provided for setting the clock if the device is power-cycled, and for automatically entering the password if the device is password-protected.
All operations that access the device return a status code indicating whether the operation was successful or not; and, if not, why. For example, if you attempt to query device statistics and the device is locked then the status code will indicate this fact, allowing you to enter the password and retry the operation. Hence the loop in the above synopsis.
This module does not perform these loops internally in an effort to allow it to be embedded within a controlling application such as the oclm Perl command-line application, and a GNOME/GTK graphical user interface that is available separately.
This module has a few warts; some are mandated by the device itself and some are the fault of the author.
<<lessSYNOPSIS
$sp = 1;
$pw = secret;
$lanmodem = Device::ISDN::OCLM->new ();
$lanmodem->password ($pw);
$command = manualConnect;
$status = $lanmodem->$command ($sp);
while (($status eq CLOCK) || ($status eq PASSWORD) ||
($status eq CONNECTING) || ($status eq LOGGING IN)) {
if ($status eq CLOCK) {
sleep (1);
$status = $lanmodem->setClock ();
} elsif ($status eq PASSWORD) {
sleep (1);
$status = $lanmodem->enterPasword ();
} elsif (($status eq CONNECTING) || ($status eq LOGGING IN)) {
$command = connectStatus;
$status = OK;
}
if ($status eq OK) {
sleep (1);
$status = $lanmodem->$command ($sp);
}
}
print "$statusn";
This module can be used to control the 3com OfficeConnect LanModem, an ISDN TA/router. Device statistics can be queried and manual connections can be brought up and taken down. Support is provided for setting the clock if the device is power-cycled, and for automatically entering the password if the device is password-protected.
All operations that access the device return a status code indicating whether the operation was successful or not; and, if not, why. For example, if you attempt to query device statistics and the device is locked then the status code will indicate this fact, allowing you to enter the password and retry the operation. Hence the loop in the above synopsis.
This module does not perform these loops internally in an effort to allow it to be embedded within a controlling application such as the oclm Perl command-line application, and a GNOME/GTK graphical user interface that is available separately.
This module has a few warts; some are mandated by the device itself and some are the fault of the author.
Download (0.013MB)
Added: 2006-07-20 License: Perl Artistic License Price:
1191 downloads
Network Device Change Control 3.10
Network Device Change Control (NDCC) is a system that monitors and records changes to the configurations of network equipment. more>>
Network Device Change Control (NDCC) is a system that monitors and records changes to the configurations of network equipment.
Network Device Change Control can store configuration snapshots for any text-based configs. It has been used to store configurations from Unix and Linux systems, Cisco routers, switches, load balancers, and firewalls, Foundry, NetScreen, Juniper, NetScaler, and others.
It only took a while to realize that router changes should be tracked. I rewrote the system to give a current and once-back system of configurations. Since I was using diff, I decided to leave the diff information in the system. Those diffs were emailed to a group so everyone knew when something was changed, along with what was changed.
Some time later, a bank needed to track configuration files, and the system was upgraded for use within a database. The first implementation was using perl as a CGI script against a PostgreSQL database. The company wanted many changes made for their auditing needs and most of those changes enhanced NDCC. Upgrades to their environment moved things to PHP and MySQL, and the system was rewritten for that environment and the old perl code has since been lost.
<<lessNetwork Device Change Control can store configuration snapshots for any text-based configs. It has been used to store configurations from Unix and Linux systems, Cisco routers, switches, load balancers, and firewalls, Foundry, NetScreen, Juniper, NetScaler, and others.
It only took a while to realize that router changes should be tracked. I rewrote the system to give a current and once-back system of configurations. Since I was using diff, I decided to leave the diff information in the system. Those diffs were emailed to a group so everyone knew when something was changed, along with what was changed.
Some time later, a bank needed to track configuration files, and the system was upgraded for use within a database. The first implementation was using perl as a CGI script against a PostgreSQL database. The company wanted many changes made for their auditing needs and most of those changes enhanced NDCC. Upgrades to their environment moved things to PHP and MySQL, and the system was rewritten for that environment and the old perl code has since been lost.
Download (0.046MB)
Added: 2006-08-09 License: GPL (GNU General Public License) Price:
1177 downloads
Device::Serdisp 0.06
Device::Serdisp is a Perl extension for talking to the serdisplib. more>>
Device::Serdisp is a Perl extension for talking to the serdisplib.
SYNOPSIS
use Device::Serdisp;
my $d = Device::Serdisp->new(USB:7c0/1501, ctinclud);
$d->init();
$d->clear();
# reserves a color-indexed picture
my $image = GD::Image->new(128,64);
my $black = $image->colorAllocate(0,0,0);
my $white = $image->colorAllocate(255,255,255);
$image->transparent($black);
$image->arc(10,10,10,10,0,270, $white);
$d->copyGD($image);
<<lessSYNOPSIS
use Device::Serdisp;
my $d = Device::Serdisp->new(USB:7c0/1501, ctinclud);
$d->init();
$d->clear();
# reserves a color-indexed picture
my $image = GD::Image->new(128,64);
my $black = $image->colorAllocate(0,0,0);
my $white = $image->colorAllocate(255,255,255);
$image->transparent($black);
$image->arc(10,10,10,10,0,270, $white);
$d->copyGD($image);
Download (0.034MB)
Added: 2007-04-12 License: Perl Artistic License Price:
925 downloads
Device Control Device 0.13
Device Control Device is a platform independent remote telescope and device control program. more>>
Device Control Device is a platform independent remote telescope and device control program compatible with the INDI standard (see http://indi.sourceforge.net/).
This program is a client (a user interface) and provides functions to control devices connected to a remote system that is running an INDI server.
The features and the structure of the GUI are similar to the Kstars INDI client. The only advantages are support for Windows and lower resource requirements.
<<lessThis program is a client (a user interface) and provides functions to control devices connected to a remote system that is running an INDI server.
The features and the structure of the GUI are similar to the Kstars INDI client. The only advantages are support for Windows and lower resource requirements.
Download (0.073MB)
Added: 2005-09-11 License: GPL (GNU General Public License) Price:
1509 downloads
Device::ParallelPort 1.00
Device::ParallelPort is a Parallel Port Driver for Perl. more>>
Device::ParallelPort is a Parallel Port Driver for Perl.
SYNOPSIS
my $port = Device::ParallelPort->new();
$port->set_bit(3,1);
print $port->get_bit(3) . "n";
print ord($port->get_byte(0)) . "n";
$port->set_byte(0, chr(255));
A parallel port driver module. This module provides an API to all parallel ports, by providing the ability to write any number of drivers. Modules are available for linux (both directly and via parport), win32 and a simple script version.
NOTE - This actual module is a factory class only - it is used to automatically return the correct class and has not other intelligence / purpose.
DRIVER MODULES
NOTE - You MUST load one of the drivers for your operating system before this module will correctly work - they are in separate CPAN Modules.
L - Direct hardware access to a base address.
L - Linux access to /dev/parport drivers
L - Run a script with parameters
L - Pretending byte driver for testing
L - Pretending bit driver for testing
L - Windows 32 DLL access driver
DEVICE MODULES ^
L - An example that can talk to a printer
L - Simple JayCar electronics latched, addressable controller
L - SerialFlash of bits - useful for many driver chips
<<lessSYNOPSIS
my $port = Device::ParallelPort->new();
$port->set_bit(3,1);
print $port->get_bit(3) . "n";
print ord($port->get_byte(0)) . "n";
$port->set_byte(0, chr(255));
A parallel port driver module. This module provides an API to all parallel ports, by providing the ability to write any number of drivers. Modules are available for linux (both directly and via parport), win32 and a simple script version.
NOTE - This actual module is a factory class only - it is used to automatically return the correct class and has not other intelligence / purpose.
DRIVER MODULES
NOTE - You MUST load one of the drivers for your operating system before this module will correctly work - they are in separate CPAN Modules.
L - Direct hardware access to a base address.
L - Linux access to /dev/parport drivers
L - Run a script with parameters
L - Pretending byte driver for testing
L - Pretending bit driver for testing
L - Windows 32 DLL access driver
DEVICE MODULES ^
L - An example that can talk to a printer
L - Simple JayCar electronics latched, addressable controller
L - SerialFlash of bits - useful for many driver chips
Download (0.020MB)
Added: 2007-04-12 License: Perl Artistic License Price:
928 downloads
Device::Cdio 2.3
Device::Cdio is a Perl module for CD Input and Control library. more>>
Device::Cdio is a Perl module for CD Input and Control library.
SYNOPSIS
This encapsulates CD-ROM reading and control. Applications wishing to be oblivious of the OS- and device-dependent properties of a CD-ROM can use this library.
use Device::Cdio;
use Device::Cdio::Device;
@cd_drives = Device::Cdio::get_devices($perlcdio::DRIVER_DEVICE);
@cd_drives = Device::Cdio::get_devices_with_cap($perlcdio::FS_AUDIO, 0);
foreach my $drive (@cd_drives) {
print "Drive $driven";
}
foreach my $driver_name (sort keys(%Device::Cdio::drivers)) {
print "Driver $driver_name is installed.n"
if Device::Cdio::have_driver($driver_name) and
$driver_name !~ m{device|Unknown};
}
This is an Perl Object-Oriented interface to the GNU CD Input and Control library, libcdio, written in C. The library encapsulates CD-ROM reading and control. Perl programs wishing to be oblivious of the OS- and device-dependent properties of a CD-ROM can use this library.
The encapsulation is done in two parts. The lower-level Perl interface is called perlcdio and is generated by SWIG.
The more object-oriented package Device::Cdio and uses perlcdio. Actually, there are no objects in Device::Cdio, but there are in its sub packages Device::Cdio::Device and Device::Cdio::Tracks.
Although perlcdio is perfectly usable on its own, it is expected that Cdio is what most people will use. As perlcdio more closely models the C interface libcdio, it is conceivable (if unlikely) that die-hard libcdio C users who are very familiar with that interface could prefer that.
<<lessSYNOPSIS
This encapsulates CD-ROM reading and control. Applications wishing to be oblivious of the OS- and device-dependent properties of a CD-ROM can use this library.
use Device::Cdio;
use Device::Cdio::Device;
@cd_drives = Device::Cdio::get_devices($perlcdio::DRIVER_DEVICE);
@cd_drives = Device::Cdio::get_devices_with_cap($perlcdio::FS_AUDIO, 0);
foreach my $drive (@cd_drives) {
print "Drive $driven";
}
foreach my $driver_name (sort keys(%Device::Cdio::drivers)) {
print "Driver $driver_name is installed.n"
if Device::Cdio::have_driver($driver_name) and
$driver_name !~ m{device|Unknown};
}
This is an Perl Object-Oriented interface to the GNU CD Input and Control library, libcdio, written in C. The library encapsulates CD-ROM reading and control. Perl programs wishing to be oblivious of the OS- and device-dependent properties of a CD-ROM can use this library.
The encapsulation is done in two parts. The lower-level Perl interface is called perlcdio and is generated by SWIG.
The more object-oriented package Device::Cdio and uses perlcdio. Actually, there are no objects in Device::Cdio, but there are in its sub packages Device::Cdio::Device and Device::Cdio::Tracks.
Although perlcdio is perfectly usable on its own, it is expected that Cdio is what most people will use. As perlcdio more closely models the C interface libcdio, it is conceivable (if unlikely) that die-hard libcdio C users who are very familiar with that interface could prefer that.
Download (0.22MB)
Added: 2007-02-27 License: Perl Artistic License Price:
970 downloads
Database Independent Abstraction Layer for C 0.8.2
Database Independent Abstraction Layer for C is a database-independent abstraction layer written in C. more>>
Database Independent Abstraction Layer for C (libdbi) implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl.
Writing one generic set of code, programmers can leverage the power of multiple databases and multiple simultaneous database connections by using this framework.
Main features:
Database-level abstraction:
Your programs dont need to deal with the arbitrary interfaces and oddities of each database library. libdbi handles all the details for you, you just tell it what you want the database to do.
Modularity:
Since database code written with libdbi is not tied to one specific database server, you can effortlessly switch databases or give your users the option to specify their own database settings.
Clean interface:
With ample documentation describing libdbi and its well thought out object-oriented design, programming with libdbi should be less painful than programming with native database libraries. And you only need to learn it once instead of learning each database librarys syntax.
Accommodates coder apathy:
libdbi is written to do The Right Thing(tm), not just some quick hack that does the job in a half-assed fashion. This saves tons of your $100/hour time from debugging, so that you can mess around having fun during the hours that clients are paying you to debug. It also strives to reduce the worldwide crisis of carpal tunnel syndrome, so it uses constructs such as this one to pack multiple function calls into one line, saving you the bother of typing more than you have to:
dbi_result_get_fields(result, "id.%i firstname.%s lastname.%s fractional_value.%f", &id, &firstname, &lastname, &floatval);
Driver interface:
The dynamic linking used by libdbi allows for driver authors to license their drivers however they please - they are not restricted to the GPL or LGPL. Drivers are easy to write, and require no special installation.
Error handling:
Instead of checking every single database call for errors, libdbi gives programmers the option of registering an error handler callback, similar to a signal handler. Because we know youll "forget" to check for errors otherwise :)
Convenience:
Spend your time writing clever code, not reinventing the wheel with your own single-use, #define-abusing, less featureful database interface.
libdbi implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl. Writing one generic set of code, programmers can leverage the power of multiple databases and multiple simultaneous database connections by using this framework.
The libdbi-drivers project maintains drivers for libdbi. Drivers are distributed seperately from the library itself.
There are currently drivers for MySQL, PostgreSQL, SQLite, and mSQL. More are on the way.
Enhancements:
- Support for a timezone suffix in time and date types was added.
- Error handling and error reporting were vastly improved.
- Some memory leaks were fixed.
<<lessWriting one generic set of code, programmers can leverage the power of multiple databases and multiple simultaneous database connections by using this framework.
Main features:
Database-level abstraction:
Your programs dont need to deal with the arbitrary interfaces and oddities of each database library. libdbi handles all the details for you, you just tell it what you want the database to do.
Modularity:
Since database code written with libdbi is not tied to one specific database server, you can effortlessly switch databases or give your users the option to specify their own database settings.
Clean interface:
With ample documentation describing libdbi and its well thought out object-oriented design, programming with libdbi should be less painful than programming with native database libraries. And you only need to learn it once instead of learning each database librarys syntax.
Accommodates coder apathy:
libdbi is written to do The Right Thing(tm), not just some quick hack that does the job in a half-assed fashion. This saves tons of your $100/hour time from debugging, so that you can mess around having fun during the hours that clients are paying you to debug. It also strives to reduce the worldwide crisis of carpal tunnel syndrome, so it uses constructs such as this one to pack multiple function calls into one line, saving you the bother of typing more than you have to:
dbi_result_get_fields(result, "id.%i firstname.%s lastname.%s fractional_value.%f", &id, &firstname, &lastname, &floatval);
Driver interface:
The dynamic linking used by libdbi allows for driver authors to license their drivers however they please - they are not restricted to the GPL or LGPL. Drivers are easy to write, and require no special installation.
Error handling:
Instead of checking every single database call for errors, libdbi gives programmers the option of registering an error handler callback, similar to a signal handler. Because we know youll "forget" to check for errors otherwise :)
Convenience:
Spend your time writing clever code, not reinventing the wheel with your own single-use, #define-abusing, less featureful database interface.
libdbi implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl. Writing one generic set of code, programmers can leverage the power of multiple databases and multiple simultaneous database connections by using this framework.
The libdbi-drivers project maintains drivers for libdbi. Drivers are distributed seperately from the library itself.
There are currently drivers for MySQL, PostgreSQL, SQLite, and mSQL. More are on the way.
Enhancements:
- Support for a timezone suffix in time and date types was added.
- Error handling and error reporting were vastly improved.
- Some memory leaks were fixed.
Download (0.99MB)
Added: 2007-02-20 License: LGPL (GNU Lesser General Public License) Price:
978 downloads
Device::Gsm 1.48
Device::Gsm is a Perl extension to interface GSM phones / modems. more>>
Device::Gsm is a Perl extension to interface GSM phones / modems.
SYNOPSIS
use Device::Gsm;
my $gsm = new Device::Gsm( port => /dev/ttyS1, pin => xxxx );
if( $gsm->connect() ) {
print "connected!n";
} else {
print "sorry, no connection with gsm phone on serial port!n";
}
# Register to GSM network (you must supply PIN number in above new() call)
$gsm->register();
# Send quickly a short text message
$gsm->send_sms(
recipient => +3934910203040,
content => Hello world! from Device::Gsm
);
# Get list of Device::Gsm::Sms message objects
# see `examples/read_messages.pl for all the details
my @messages = $gsm->messages();
Device::Gsm class implements basic GSM functions, network registration and SMS sending.
This class supports also PDU mode to send SMS messages, and should be fairly usable. In the past, I have developed and tested it under Linux RedHat 7.1 with a 16550 serial port and Siemens C35i/C45 GSM phones attached with a Siemens-compatible serial cable. Currently, Im developing and testing this stuff with Linux Slackware 10.2 and a Cambridge Silicon Radio (CSR) USB bluetooth dongle, connecting to a Nokia 6600 phone.
Please be kind to the universe and contact me if you have troubles or you are interested in this.
Please be monstruosly kind to the universe and (if you dont mind spending an SMS) use the examples/send_to_cosimo.pl script to make me know that Device::Gsm works with your device (thanks!).
Recent versions of Device::Gsm have also an utility called autoscan in the bin/ folder, that creates a little profile of the devices it runs against, that contains information about supported commands and exact output of commands to help recognize similar devices.
Be sure to send me your profile by email (if you want to), so I can add better support for your device in the future!
<<lessSYNOPSIS
use Device::Gsm;
my $gsm = new Device::Gsm( port => /dev/ttyS1, pin => xxxx );
if( $gsm->connect() ) {
print "connected!n";
} else {
print "sorry, no connection with gsm phone on serial port!n";
}
# Register to GSM network (you must supply PIN number in above new() call)
$gsm->register();
# Send quickly a short text message
$gsm->send_sms(
recipient => +3934910203040,
content => Hello world! from Device::Gsm
);
# Get list of Device::Gsm::Sms message objects
# see `examples/read_messages.pl for all the details
my @messages = $gsm->messages();
Device::Gsm class implements basic GSM functions, network registration and SMS sending.
This class supports also PDU mode to send SMS messages, and should be fairly usable. In the past, I have developed and tested it under Linux RedHat 7.1 with a 16550 serial port and Siemens C35i/C45 GSM phones attached with a Siemens-compatible serial cable. Currently, Im developing and testing this stuff with Linux Slackware 10.2 and a Cambridge Silicon Radio (CSR) USB bluetooth dongle, connecting to a Nokia 6600 phone.
Please be kind to the universe and contact me if you have troubles or you are interested in this.
Please be monstruosly kind to the universe and (if you dont mind spending an SMS) use the examples/send_to_cosimo.pl script to make me know that Device::Gsm works with your device (thanks!).
Recent versions of Device::Gsm have also an utility called autoscan in the bin/ folder, that creates a little profile of the devices it runs against, that contains information about supported commands and exact output of commands to help recognize similar devices.
Be sure to send me your profile by email (if you want to), so I can add better support for your device in the future!
Download (0.055MB)
Added: 2007-04-17 License: Perl Artistic License Price:
927 downloads
Device::TNC 0.03
Device::TNC is a Perl module that acts like a generic interface to a TNC. more>>
Device::TNC is a Perl module that acts like a generic interface to a TNC.
This module implements a generic interface to a Terminal Node Controller (TNC).
It loads sub classes that provide the low level interface for the appropriate TNC to be used and provides higher level methods to return frames of data to the user is human readable form.
SYNOPSIS
use Device::TNC;
my $tnc_type = KISS;
my %tnc_config = (
port => ($Config{osname} eq "MSWin32") ? "COM3" : "/dev/TNC-X",
baudrate => 9600,
warn_malformed_kiss => 1,
raw_log => "raw_packet.log",
);
my $tnc = new Device::TNC($tnc_type, %tnc_config);
die "Error: Something went wrong connecting to the TNC.n" unless $tnc;
while (1)
{
my $data = $tnc->read_frame();
my $repeaters = join ", ", @{$data->{ADDRESS}->{REPEATERS}};
my $info = join "", @{$data->{INFO}};
print "From: $data->{ADDRESS}->{SOURCE} ";
print "To: $data->{ADDRESS}->{DESTINATION} ";
print "via $repeatersn";
print "Data: $infon";
}
new()
my $type = "KISS";
my %tnc_data = { option => value };
my $tnc = new Device::TNC($type, %tnc_data);
The new method creates and returns a new Device::TNC object that can be used to communicate with a Terminal Node Controller (TNC) of the type passed.
The method requires that the first passed argument be the type of TNC to connect to. This will try and load the appropriate module for the TNC type.
The subsequent options are passed to the module that is loaded to connect to the desired TNC.
For more details on these options see the module documentation for the TNC type.
read_frame()
my $frame_data = $tnc->read_frame();
my %frame_data = $tnc->read_frame();
This method reads a HDLC frame from the TNC and returns a structure as either a hash or a hash reference that contains the fields of the frame.
The structure of the returned data is like the following.
{
INFO => [
/, 0, 6, 4, 6, 5, 8, h, 3, 3, 5, 0, ., 0, 0,
S, \, 1, 5, 1, 1, 2, ., 0, 0, E, O, 2, 2, 6,
/, 0, 0, 0, /, A, =, 0, 0, 0, 1, 1, 1
],
PID => F0,
CONTROL => {
POLL_FINAL => 0,
FIELD_TYPE => UI,
FRAME_TYPE => U
},
ADDRESS => {
DESTINATION => APT311,
REPEATERS => [
WIDE1-1,
WIDE2-2
],
SOURCE => VK2KFJ-7
}
}
While developing this module I only received U (UI) type frames and so development of the code to work with I and S frames didnt really progress. If anyone wants to read I or S frames please let me know and Ill have a look at implementing them. Please create a KISS log of the data and email it to me.
<<lessThis module implements a generic interface to a Terminal Node Controller (TNC).
It loads sub classes that provide the low level interface for the appropriate TNC to be used and provides higher level methods to return frames of data to the user is human readable form.
SYNOPSIS
use Device::TNC;
my $tnc_type = KISS;
my %tnc_config = (
port => ($Config{osname} eq "MSWin32") ? "COM3" : "/dev/TNC-X",
baudrate => 9600,
warn_malformed_kiss => 1,
raw_log => "raw_packet.log",
);
my $tnc = new Device::TNC($tnc_type, %tnc_config);
die "Error: Something went wrong connecting to the TNC.n" unless $tnc;
while (1)
{
my $data = $tnc->read_frame();
my $repeaters = join ", ", @{$data->{ADDRESS}->{REPEATERS}};
my $info = join "", @{$data->{INFO}};
print "From: $data->{ADDRESS}->{SOURCE} ";
print "To: $data->{ADDRESS}->{DESTINATION} ";
print "via $repeatersn";
print "Data: $infon";
}
new()
my $type = "KISS";
my %tnc_data = { option => value };
my $tnc = new Device::TNC($type, %tnc_data);
The new method creates and returns a new Device::TNC object that can be used to communicate with a Terminal Node Controller (TNC) of the type passed.
The method requires that the first passed argument be the type of TNC to connect to. This will try and load the appropriate module for the TNC type.
The subsequent options are passed to the module that is loaded to connect to the desired TNC.
For more details on these options see the module documentation for the TNC type.
read_frame()
my $frame_data = $tnc->read_frame();
my %frame_data = $tnc->read_frame();
This method reads a HDLC frame from the TNC and returns a structure as either a hash or a hash reference that contains the fields of the frame.
The structure of the returned data is like the following.
{
INFO => [
/, 0, 6, 4, 6, 5, 8, h, 3, 3, 5, 0, ., 0, 0,
S, \, 1, 5, 1, 1, 2, ., 0, 0, E, O, 2, 2, 6,
/, 0, 0, 0, /, A, =, 0, 0, 0, 1, 1, 1
],
PID => F0,
CONTROL => {
POLL_FINAL => 0,
FIELD_TYPE => UI,
FRAME_TYPE => U
},
ADDRESS => {
DESTINATION => APT311,
REPEATERS => [
WIDE1-1,
WIDE2-2
],
SOURCE => VK2KFJ-7
}
}
While developing this module I only received U (UI) type frames and so development of the code to work with I and S frames didnt really progress. If anyone wants to read I or S frames please let me know and Ill have a look at implementing them. Please create a KISS log of the data and email it to me.
Download (0.016MB)
Added: 2007-04-17 License: Perl Artistic License Price:
924 downloads
Platform Independent Petri Net Editor 2.1
Platform Independent Petri Net Editor is a tool for creating and analyzing Petri Nets. more>>
Platform Independent Petri Net Editor project (PIPE) creates and analyses Petri Nets quickly, efficiently, and effectively.
A key design feature is the modular approach adopted for analysis, enabling new modules to be written easily and powerfully, using built-in data layer methods for standard calculations.
Six analysis modules are provided, including Invariant Analysis, State-Space Analysis (deadlock, etc.), and Simulation Analysis and Classification.
PIPE adheres to the XML Petri net standard (PNML). The file format for saving and loading Petri Nets is extensible through the use of XSLT, the default being PNML.
<<lessA key design feature is the modular approach adopted for analysis, enabling new modules to be written easily and powerfully, using built-in data layer methods for standard calculations.
Six analysis modules are provided, including Invariant Analysis, State-Space Analysis (deadlock, etc.), and Simulation Analysis and Classification.
PIPE adheres to the XML Petri net standard (PNML). The file format for saving and loading Petri Nets is extensible through the use of XSLT, the default being PNML.
Download (1.8MB)
Added: 2007-02-06 License: Freely Distributable Price:
1006 downloads
Mobile Device Information 1.2.2
The Mobile Device Information project is a Java Swing application that provides desktop interface access to the WURFL. more>>
Mobile Device Information project is a Java Swing application that provides desktop interface access to the WURFL (Wireless Universal Resource FiLe).
The WURFL contains information about the capabilities of a huge number of wireless devices.
The project has been created by me (Jim McLachlan), a software consultant specialising in Java projects for mobile devices (primarily J2METM clients with J2EETM back-ends).
Part of my consultancy work has been the "education" of clients to the limitations of the cross-platform nature of Java on mobile devices. I have regularly had to field questions like "Is the < mobile device > MIDP-1.0 or MIDP-2.0 compliant?" and "How many different MIDP-2.0 devices are there?".
As part of my recent web site development, where I intend to sell my J2ME applications, I found myself in need of some "rich content" that would be useful to consumers and not just developers. Hopefully, this tool will be useful to people wanting to know more about their devices.
Enhancements:
- This release finally resolves problems with the id pseudo-capability.
- Version 1.2 caused make/model data to be hidden; 1.2.1 fixed this, but added a bug which used the fallback instead of the current "id".
<<lessThe WURFL contains information about the capabilities of a huge number of wireless devices.
The project has been created by me (Jim McLachlan), a software consultant specialising in Java projects for mobile devices (primarily J2METM clients with J2EETM back-ends).
Part of my consultancy work has been the "education" of clients to the limitations of the cross-platform nature of Java on mobile devices. I have regularly had to field questions like "Is the < mobile device > MIDP-1.0 or MIDP-2.0 compliant?" and "How many different MIDP-2.0 devices are there?".
As part of my recent web site development, where I intend to sell my J2ME applications, I found myself in need of some "rich content" that would be useful to consumers and not just developers. Hopefully, this tool will be useful to people wanting to know more about their devices.
Enhancements:
- This release finally resolves problems with the id pseudo-capability.
- Version 1.2 caused make/model data to be hidden; 1.2.1 fixed this, but added a bug which used the fallback instead of the current "id".
Download (0.33MB)
Added: 2006-07-19 License: GPL (GNU General Public License) Price:
1195 downloads
Device::Denon::DN1400F 0.02
Device::Denon::DN1400F is a Perl module that can control a Denon DN-1400F CD player. more>>
Device::Denon::DN1400F is a Perl module that can control a Denon DN-1400F CD player.
SYNOPSIS
use Device::Denon::DN1400F;
my $denon = new Device::Denon::DN1400F(
SerialPort => /dev/ttyS0,
Id => $deviceid,
);
$denon->load_disc($drive, $discno);
$denon->drive_play($drive, $track);
$denon->drive_pause($drive, $paused);
$denon->drive_stop($drive);
$denon->unload_disc($drive, $discno);
$denon->unload_discs;
print $denon->drive_status($drive);
print $denon->drive_subcode_qchannel($drive);
print $denon->toc_data_long($drive);
print $denon->toc_data_short($drive);
$denon->debug;
$denon->reset;
$denon->move_front;
This module gives an object oriented interface to control the Denon DN-1400F, an RS232 controlled 200 CD two-turntable jukebox designed for nonstop playout.
Many methods are available, it is currently still best to browse the source to find the details.
<<lessSYNOPSIS
use Device::Denon::DN1400F;
my $denon = new Device::Denon::DN1400F(
SerialPort => /dev/ttyS0,
Id => $deviceid,
);
$denon->load_disc($drive, $discno);
$denon->drive_play($drive, $track);
$denon->drive_pause($drive, $paused);
$denon->drive_stop($drive);
$denon->unload_disc($drive, $discno);
$denon->unload_discs;
print $denon->drive_status($drive);
print $denon->drive_subcode_qchannel($drive);
print $denon->toc_data_long($drive);
print $denon->toc_data_short($drive);
$denon->debug;
$denon->reset;
$denon->move_front;
This module gives an object oriented interface to control the Denon DN-1400F, an RS232 controlled 200 CD two-turntable jukebox designed for nonstop playout.
Many methods are available, it is currently still best to browse the source to find the details.
Download (0.006MB)
Added: 2006-12-27 License: Perl Artistic License Price:
1039 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above device independent search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed