Frequently Asked Questions on Proteus (FAQ) |
Below you will find questions which we frequently receive on Proteus and their answers; if you still can not find what you need, write to: szp@zanella-hifi.com.
Answers |
Q: What are the
advantages in using Proteus instead of other existing programming languages?
A: A program written in Proteus is very compact: hundreds of
high-level, predefined functions let you achieve great results with little efforts. Being
an interpreted language, you can fix your programs on-the-fly directly on the field. If
you need to protect your work, scripts can be encrypted and digitally signed, using a
development system that can be kept on a floppy disk. Any Proteus program can run as a
service, without modifications. The power of Proteus in managing text files and working on
strings is uncomparable: no other language has the same flexibility. The keyboard
emulation functions allow to connect hundreds of devices, personalizing dataflow as
needed. You can write console programs in a few minutes and with little efforts; these
applications are true 32-bit programs that can be used with a Telnet Server and allow full
access to all Windows resources: serial ports, sockets, network devices, pipes, ODBC data
sources, etc.
Q: How much time
is needed to learn Proteus?
A: The development system includes dozens of examples, that
teach you very quickly the fastest solutions to the most common problems you will face
when writing programs in Proteus. Many programming languages are distributed with only a
few code fragments, that merely explain function syntax: Proteus Center goes beyond that,
by integrating a repository for your scripts, a data base of examples and a user manual
rich of information and suggestions at the tip of your fingers. If you have previous
programming experience, you will find yourself writing Proteus programs in a couple of
hours.
Q: Why should I
write a service in place of a normal application?
A: Windows NT, 2000, XP and 2003 offer the possibility to install
services. A service is an application that is started as soon as the operating system
boots; it does not care about users logging in. By installing a Proteus script as a
service you have the ability of acquiring and storing data, managing print servers and
other things without the need of giving access to an operator. In the industrial field
this translates to greater security, because operators simply can not damage the operating
system (even by mistake), install unauthorized application or create problems to normal
operativity. Even when a PC is used interactively, having a few fundamental functions
moved to a service make it impossible for a user without administrative rights to stop the
program. NOTE: newer operating systems (Windows Vista, 7, 8) do not allow keyboard emulation
from a service; in this case, use Proteus as a normal application.
Q: What are the
advantages in using Proteus in place of a hardware keyboard emulation device?
A: Hardware keyboard emulators are usually complex to
configure and require special Y cables to connect a standard keyboard; when using
notebooks, a dongle that simulates an external keyboard is frequently needed to make them
work, increasing the size of the device that you must move around. Data received by an
hardware emulator is usually transmitted verbatim, without modifications; sometimes,
special character terminators (like unusual key-combos) simply can not be emulated.
Proteus, on the other side, can emulate any key; it can also split and process information
as they are received, adding date and time, inserting prefixes, postfixes and delays as
needed and adding additional static or dynamic information (which can be looked up in real
time from a database); received data can be sorted before emulation, quantities can be
summed up, unnecessary data removed, etc. Proteus can begin keyboard emulation when all
data is succesfully received, because it has no limitation on input buffer size: in this
way you can avoid partial transmissions that happen when, for example, a portable terminal
is accidentally removed from its cradle. Proteus can select the window where keys must be
sent, thus avoiding that data is sent to the wrong application which was inadvertently
brought to foreground. Proteus can also temporarily save received data to a text file or
database, for additional control and security. New protocols can be easily implemented in
Proteus, thus new devices from different brands can replace those being used, or dataflow
can be adapted to a specific format. Even devices that usually do not send data in
keyboard emulation (e.g. network devices, serial, USB and Bluetooth devices..) can be
integrated by using Proteus. Last, but not least, keep in mind that any hardware device
that you add is subject to malfunctions; when using Proteus you don't have to worry about
it.
Q: What is a
console program? Why should I need it?
A: Most programs running today under Windows operating
systems are graphical, with buttons, icons and menus. On other operating systems, like
Unix and AS/400, it is still common to see console applications, similar to those that can
be run inside an MS-DOS prompt. Console applications usually don't support mouse and don't
show graphical symbols: only alphanumerical characters and, sometimes, a few
semi-graphical symbols to draw lines and boxes. This kind of application is very light,
because less CPU power is needed to manage the interface. One of the reasons that could
lead you to write a console application today is to run it through a Telnet Server. Telnet
is a protocol, belonging to the TCP/IP family, that supports several terminal clients:
e.g. VT100, VT220, ANSI, 5250, 3270, etc. By connecting a Telnet client to a Telnet Server
you can run remote applications and interact with them, just like the program was running
on the client. This is very useful, for example, if you need to give the operators a
portable terminal: most RF terminals have a Telnet client embedded; by installing a Telnet
Server in Windows and writing programs in Proteus you can create a multi-user system with
little efforts, at the same time exploiting all the powerful features of Windows.
Q: How is
Proteus protected?
A: Proteus is protected in different ways: a USB dongle; a software key. Software
key is usually offered to foreign customers; this key is generated from the
hardware ID of the computer where the software will be installed.
Q: The programs
I write in Proteus can be freely examined and modified. How can I protect my intellectual
property? What can I do to avoid that one of my customers uses my program on other PC or
resells/distributes it to others?
A: Proteus embeds a flexible and powerful protection system
that overcomes all these problems. Inside the package there is an utility that encrypts
your source code with random keys and adds a digital signature based on the Proteus
protection dongle serial number (which is different for each key); your encrypted and
digitally signed programs can now be given to your customers in complete security. With
just three lines of code you can avoid redistribution of your software: simply check the
serial number of the dongle used by the customer to run the application, and stop the
program if the serial does not match.
Q: Is it
possible to create Proteus applications that do not require the protection dongle?
A: No, it is not: when you sell a program developed using
Proteus your customer needs to buy a licence of Proteus. Special discounts are applied on
list prices when a developer buys a certain amount of licences for reselling.
Q: Is there a
"runtime", cheaper version of Proteus that only allows to run encrypted
programs? And a "developer" or "educational" version?
A: No, Proteus is available in a single version; discounts
are applied only when buying many licences at a time. By using the demo version of
Proteus, a developer can write and test (for at most 3 minutes) all his programs.
Q: What are the
languages in which Proteus is available?
A: At present time, only English and Italian. The manuals,
all the examples and Proteus messages are completely translated in these two languages.
Q: I understand
that Proteus is very powerful, but what if I need to add new functions?
A: A developer can write new functions in Proteus, but
can also link external functions, written in Visual C++ and built as a DLL. In the package
there is the source code for a DLL explaining how to add new personalized functions.
Q:
What problems could arise when using Proteus as a service?
A:
If error 1067 or other errors appear
when you start a Proteus service, check the following circumstances and
corresponding solutions:
C:\Documents and Settings\All Users\Application Data\SZP\PCenter\Service
there will be a file "Protsvc1.reg" whose contents is similar to this:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\SZP\Proteus]
"Script1"="C:\\Documents and Settings\\All Users\\Application Data\\SZP\\PCenter\\Repository\\script.prt"Simply import this REG file and start the service
Start -> Control Panel -> Administrative Tools -> Services -> Proteus Service 1
(double click or select Properties); in the tab Connection, specify an account that has administrative privileges and has access to the folder where the PRT script and the service Proteus1.exe are located (usually C:\Documents and Settings\All Users\Application Data\SZP\PCenter\Service)
Q: A
few characters are not stuffed correctly in keyboard emulation; how can I fix
this behaviour?
A:
When using keyboard
emulation on a Citrix client, it could be necessary to translate a few
characters by using the extended notation (Alt + 3 digits), because Citrix maps
these keys incorrectly. If you follow the scheme presented in the examples that
come with Proteus you only need to modify the function KTRANS by adding a few
exceptions for these keys:
FUNCTION KTrans(s)
l = STRLEN(s)
r = ""
FOR x = 1 TO l
c = SUBSTR(s, x, 1)
SWITCH c STREQ
ON " "
r = r "{ALT DOWN}{NUMPAD0}{NUMPAD3}{NUMPAD2}{ALT UP}"
ON "-"
r = r "{ALT DOWN}{NUMPAD0}{NUMPAD4}{NUMPAD5}{ALT UP}"
ON "~"
r = r "{ALT DOWN}{NUMPAD1}{NUMPAD2}{NUMPAD6}{ALT UP}"
ON "{"
r = r "{ALT DOWN}{NUMPAD1}{NUMPAD2}{NUMPAD3}{ALT UP}"
ON "}"
r = r "{ALT DOWN}{NUMPAD1}{NUMPAD2}{NUMPAD5}{ALT UP}"
ON "+", "^", "%", "(", ")", "[", "]"
r = r "{" c "}"
OTHER
r = r c
OFF
NEXT
RETURN r
Start of page |