Reproduction in whole or in part in any form is prohibited without written
consent of the copyright owner.
The publication of information in this document does not imply freedom
from patent or other protective rights of WAVECOM ELEKTRONIK AG or
others.
All brand names in this document are trademarks or registered trademarks of their owners.
Specifications are subject to change without further notice
Printed: Wednesday, January 30, 2008, 12:51:15
Page 3
Contents
Welcome1
Professional Version1
Options1
Training1
Source Code1
Company Profile1
Revisions2
Introduction2
Remote Control Interface4
Class W51Server4
Iw51System4
Iw51System Methods5
Iw51DataSink8
Iw51DataSink Methods9
RawData format for FAX10
Class W51Param10
ICW51Param10
ICW51Param Methods10
List of Parameters11
List of parameters supported by W51System class11
Programming Examples18
Visual FoxPro18
Visual Basic19
MATLAB20
Microsoft C20
Glossary of Terms21
Index25
User Manual W51PC DCOM Interface V1.1Contents • iii
Page 4
Page 5
Welcome
Congratulations on your purchase of a WAVECOM decoder. The product
that you bought incorporates the latest technology in data decoding together with the latest software release available at the time of shipment.
Please, check our website http://www.wavecom.ch for software updates.
Always check the latest documentation on the installation CD or on our
website.
We thank you for choosing a WAVECOM decoder and look forward to
work with you in the future.
This chapter introduces WAVECOM, the field of activity of the company,
and how you may benefit from the expertise of WAVECOM.
Professional Version
This documentation is only available in the professional version of the
WAVECOM decoder software.
Professional versions are only available to government bodies.
WAVECOM maintains a mailing list of our professional customers. For
registration details, see Appendix at the end of this manual.
Options
Training
Source Code
Company Profile
Different additional options are available from WAVECOM.
In the manual, options are marked with (Option).
Options are only available to government bodies.
Please, note that when required WAVECOM is able to provide training on
the WAVECOM XML interface. Training can be ordered to take place at
the customer location or at our offices in Switzerland.
Source code is available for professional users. Please, inquire to receive
an offer from WAVECOM if you plan to add your own modes.
WAVECOM ELEKTRONIK GmbH was founded in 1985 in Hohentengen,
Germany, close to the Swiss border. In 1991 the company moved to
Switzerland and established itself as WAVECOM ELEKTRONIK AG.
Now located in Buelach it is within close vicinity of Zuerich airport.
User Manual W51PC DCOM Interface V1.1Welcome • 1
Page 6
Revisions
The company has focused on decoding and analysis systems for wireless data transmissions. The wide product range spans from professional, high performance systems to devices for private and amateur radio
use.
The very high quality standards combined with high system performance
are appreciated by all customers worldwide. A global network of authorized sales partners ensures that local assistance and basic level support
can be provided in most places. More than 95% of all units sold are exported. The majority of the customers are government agencies, defense
organizations and the telecommunication industry.
About 40% of the turnover is invested in research and development. The
employees at WAVECOM ELEKTRONIK AG are mainly engineers wi th
experience in DSP technology, computer and RF hardware development,
software engineering and radio data transmission. Access to external
know-how and human resources enlarges the capabilities for realizing
projects. Manufacturing is outsourced to specialized companies within
Switzerland which can handle today's needs for processing surface
mount components and fine-pitch structures.
WAVECOM ELEKTRONIK AG does not have any juridical or financial
links or connections to other companies or official bodies and is completely owned by its general manager, Mr. Christian Kesselring.
Version DateChanges
1.028.Aug 2006Removed from the W 51 Manual and put in a sepa-
DCOM is no longer supported in future WAVECOM products. It still exists
in the W4oPC, W41PC and W51PC. Please convert your existing
W51PC software to the XML interface
The WAVECOM program consists of two parts. The first part is called the
WAVECOM Client and contains the user interface, menus, dialogs and
graphics. The second part, called the WAVECOM Server, contains the interface to the decoder card. The WAVECOM Server communicates with
the decoder card and it always run on the machine containing the DSP
card. Client applications use DCOM to connect to the WAVECOM Server
from anywhere on the network.
The WAVECOM Server provides two interfaces. The first is a comprehensive interface providing all the functionality required by the
WAVECOM Client application. The second interface is a simplified interface providing only the functions required for an external application. This
interface is compatible with the OLE automation standard to allow applications written in various programming languages to interface to the
WAVECOM Server.
User Manual W51PC DCOM Interface V1.1Introduction • 3
Page 8
Remote Control Interface
IWxxParam
1
2
3
4
4
signal output appear on
3
2
1
Client Application
IWxxSystem
Interface diagram
IWxxDataSink
WxxServer
Class
WxxPC Cards
WxxParam
Class
WxxPC
Class W51Server
W51Server is implemented as an out-of-process server. It can either be
used as a Local Server (on the same machine) or a Remote Server (on
another machine). The W51Server program supports the Iw51System interface for use by any client application.
Iw51System
Decoder
User Interface
User locate and start
decoding a signal
Similarly, the client application can set the state of the decoder card.
Decoder
User Interface
User see parameters
changing. Decoded
the screen.
Card communicate
parameters to server
Wxx PC Server
Server communicate
parameters to decoder
Card
Wxx PC Server
Client
Application
Client Application
retrieve parameters
from server using
the Iwxx System
interface
Client
Application
Client Application
set parameters in
server using the
Iwxx System
interface
Client Application
save parameters in
database
Client Application
retrieve parameters
from database
The Iw51System interface is used to set or retrieve state and decoded
data from the W51PC card. The state consists of parameters such as de-
4 • Remote Control InterfaceUser Manual W51PC DCOM Interface V1.1
Page 9
coder mode, baud rate, frequency shift, etc. The client application can at
any time retrieve the state of the decoder card as it was set up using the
decoder user interface and the decoder user interface can retrieve the
state as it was set up using the client application. This is because the decoder user interface and the client application share the same
W51Server.
The list of parameters that make up the state of the decoder varies from
mode to mode and is also changed from time to time as new modes and
functionality are added to the decoder. To isolate the client application
from these changes, the state of the decoder is stored as a “blob” of data.
This is simply a variable length array of bytes. It is the responsibility of
the W51Server to create this blob when sending it to the client application
and to interpret the blob when it is received from the client application. All
that the client application has to do is to ensure that it sends the blob
back to the W51Server exactly the same way it was received. To allow
the client application to interpret the parameters that are inside the “blob”
a W51Param utility class is provided.
Iw51System Methods
Shown below is the IDL definition of the Iw51System interface. Each of
the functions (or methods) will be described.
The card name is provided as a BSTR. These card names can be
changed using the Server Control application. This function initializes the
card by downloading code to the card. This function has to be called before the card can be used. Calling connect with another card name will
disconnect the current card and connect to the new card.
HRESULT ConnectByNumber([in] long lCardNumber);
User Manual W51PC DCOM Interface V1.1Class W51Server • 5
Page 10
This function enables you to connect to a card in the same way as the
Connect() function does. The only difference is that instead of the card
name being supplied, the card number is used. Card numbers 0 through
7 are valid. The function will fail if an invalid card number is specified.
HRESULT SetParam([in] BSTR Blob);
This function allows the client application to change the parameters on
the card. The BSTR that is supplied must be created by using the
W51Param utility interface or it can be a BSTR previously created with a
call to GetParam.
HRESULT GetParam([out] BSTR* Blob);
Retrieves the parameters from the card. The parameters are returned as
a BSTR.
HRESULT ActivateW51PC([in] BSTR ComputerName);
This function will launch the decoder User Interface on the remote computer specified in the ComputerName string. The server must be running
on the remote computer for this function to work. The Server can be
started by running the Server Control application.
To show you all the possible combination up to 3 computers are needed:
in addition to the Computer Name or IP address the port number used
must be added to the computer name (PCABC:6500) or the computer
address (xxxx.xxxx.xxxx.xxxx:2300). The port number must be setup on
the WAVECOM Server Control screen. If a port number is not added,
then the default port 33133 is used.
6 • Class W51ServerUser Manual W51PC DCOM Interface V1.1
Page 11
Retrieves the system status of the card. All the parameters are of type
BOOL and a TRUE or FALSE value is returned for each.
HRESULT SetUpdateRate([in] long lUpdateRate);
The rate at which call-back functions are called can be changed using
this function. The lUpdateRate parameter indicates the delay between
calls in milliseconds. The lUpdateRate parameter must hav e a value in
the range 100 to 5000 milliseconds.
HRESULT GetTextData([out] BSTR *Data);
Retrieves the text data from the card. A buffer will store the text data received from the card and provide it when either the GetTextData function
or the NewTextData call back function occurs.
For codes that have more than one channel, e.g. PICCOLO or ARQ-M2242, special characters are inserted into the text data to separate the
channels.
Example: A{text data chn a}B{text data chn b}C{text data chn c}D{text
data chn d}.
Codes with only one channel don’t use these special characters
HRESULT GetRawData([in] long cMax,[out] long *pcActual, [out,
size_is(cMax), length_is(*pcActual)] BYTE *Data);
Retrieves the raw data (as a bit stream) from the card. The cMax para-
meter indicates the maximum length of the buffer used to receive the data. The pcActual parameter indicates the actual length of the data re-
ceived. Data points to the data.
HRESULT EnableCallBackText([in] BOOL Enable);
If EnableCallBackText is called with the Enable parameter TRUE the call
back function NewTextData will be enabled. To disable the call back
function, call EnableCallBackText with FALSE.
HRESULT EnableCallBackRaw([in] BOOL Enable);
If EnableCallBackRaw is called with the Enable parameter TRUE the call
back function NewRawData will be enabled. To disable the call back
function, call EnableCallBackRaw with FALSE.
HRESULT EnableCallBackStatus([in] BOOL Enable);
If EnableCallBackStatus is called with the Enable parameter TRUE the
call back function NewSystemStatus will be enabled. To disable the call
back function, call EnableCallBackStatus with FALSE.
HRESULT RawDataAsText([in] BOOL Enable);
Developers who prefer to work with Unicode strings instead of binary data can call this function to convert all the binary data to hex strings. After
calling RawDataAsText(TRUE) every BYTE that would have been made
available on the GetRawData() function will be converted to a two character hex string and become available on the GetTextData() function.
User Manual W51PC DCOM Interface V1.1Class W51Server • 7
Page 12
For example: The three bytes 01h, 1Ah, FFh will be converted to the
4
3
2
Client Application
1
Client Application
Screen
string “011AFF” – a string of 6 Unicode characters.
HRESULT GetCardStatus([out] long *Status);
This function returns the card status as defined by the following values:
ValueStatus
0Card is being initialized
1Card has been initialized and card is running
2Some error occurred initializing the card
3The decoder dsp program could not start
4Card in use
5No card
6Error timeout
7Error device driver
8Error device conflict
This function allows the client application to check if a new blob can be
send to the card.
Iw51DataSink
HRESULT Reset();
Clear the data buffers.
HRESULT Resync();
Forces a new synchronization in the current mode.
The client application can use the Iw51DataSink interface to receive the
decoded data from the decoder Card. The decoded data can be text,
bitmap or signal data depending on the mode that the decoder card is set
to. System information (i.e. traffic, idle etc.) can also be accessed using
this interface. The W51DataSink interface represents the call-back functions from the Server to the client.
Decoded data can be
displayed on the screen
or saved to the
Optional
User Interface
Decoder
The server sends the
decoded data to the
Client Application
using the
IWxxDataSink
interface
WxxPC Server
database
Client
Application
set parameters in
server using the
IWxxSystem
interface
retrieve parameters
from database
The client application will use Iw51System interface to establish a connection with the server and to set up the mode of the decoder card. After
8 • Class W51ServerUser Manual W51PC DCOM Interface V1.1
Page 13
that the server will call into the client application using the Iw51DataSink
interface to send it the decoded data.
The types of data that can be returned are:
•TEXT (Unicode characters for all text modes)
•IMAGE (grayscale bitmap for fax modes)
•SIGNAL (array of integers for signal analysis mode)
•Parameters (e.g. baud rate)
•FFT (array of integers for FFT mode)
•New types possible in future…
Iw51DataSink Methods
This interface allows the server to communicate results to its clients.
interface IW51DataSink : IDispatch
{
HRESULT NewTextData([in] BSTR Data);
HRESULT NewRawData([in] long cMax,
HRESULT NewSystemStatus([in] BOOL Idle,
};
[in, size_is(cMax)] BYTE *nData,
[in] long DataType);
Three distinct types of data can be returned from the Server. These are
text data, raw data (for example fax, bitmap etc.) and system status results. The rate at which the server calls the client application is called the
update rate, and can be adjusted using the Iw51System interface’s SetUpdateRate function.
Description of methods in Iw51DataSink:
HRESULT NewTextData([in] BSTR Data);
This is the call-back function that will be called when new text data is
available. The text data is returned in a BSTR. This function can be
enabled or disabled using the EnableCallBackText function on the system interface.
HRESULT NewRawData([in] long cMax, [in, size_is(cMax)] BYTE
*nData,[in] long DataType);
Called when new raw data as bit stream data becomes available. The
cMax parameter indicates the size of the data buffer, nData points to the
data and DataType indicates the type of data. This function can be
enabled or disabled using the EnableCallBackRaw function on the Sys-
tem interface.
User Manual W51PC DCOM Interface V1.1Class W51Server • 9
Call back function used to indicate the system status and level. All the
system status parameters are returned as BOOL values that can be
TRUE or FALSE. The level indicator parameter returns a value between
0 and 12. This function can be enabled or disabled using the EnableCall-BackStatus function on the system interface.
RawData format for FAX
From W51PC Software Version 6.2 on, fax data is transferred by the NewRawData routine.
•60 rpm = 1920 pixel/line
•90 rpm = 1280 pixel/line
•120 rpm = 960 pixel/line
•180 rpm = 640 pixel/line
•240 rpm = 480 pixel/line
•HELL = 28 pixel/line
Color Table for FAX modes
In the FAX modes (PRESS-FAX / WEATHER-FAX / METEOSAT /
NOAA-GEOSAT) the values from 0 to 255 represent specific colors
which are used for drawing the fax output. The colors (RGB values) for
each value are listed in the following table. RGB(0, 0, 0) corresponds to
black and RGB(255, 255, 255) corresponds to white
Class W51Param
The client application can use the W51Param class to extract parameters
from the “blob” of state information returned by the server. The
W51Param class is implemented as an in-process server.
ICW51Param
The Iw51Param interface takes a “blob” as input and then returns the
value of any requested parameter as a string. The client application can
then display these strings in a user-friendly way. The interface can also
be used to set parameter values and to build “blobs” that can be stored in
a database or sent to the Server.
ICW51Param Methods
10 • Class W51ParamUser Manual W51PC DCOM Interface V1.1
Sets a parameter value. Name is the parameter name and Value is a
BSTR containing the value of the parameter. The Name and Value
strings are case sensitive.
IF-IN-21.4: 21300000...21500000
Twinplex-f1<->f210...800
Twinplex-f2<->f310...800
Twinplex-f3<->f410...800
Twinplex-v1-modeYYBB, YBYB, BYYB, BYBY, YBBY
Twinplex-v2-modeYBYB, BYYB, BYBY, YBBY
Versioncontains the version of the blob
List of valid W51 mode strings
ACARS
AIS
ALF-RDS
ALIS
ALIS-2
AMSAT-P3D
ARQ6-90
User Manual W51PC DCOM Interface V1.1List of Parameters • 13
Scheme used to transmit binary data. The hexadecimal number system
is a base-16 numbering system. It is the numbering system used to condense binary bytes into a compact form for transmitting or analysis of
computer data. It is composed of the numbers 0-9 and the letters A-F.
Each “nibble” (4 bits) of a byte can be represented by one of the 16 digits.
base2
Scheme used to transmit binary data. Every binary bit is represented as a
character of “0” or “1”. The data volume grows by factor 8, i.e. for every
binary byte, a character string of 8 bytes is generated.
base64
Scheme used to transmit binary data. Base64 processes data as 24-bit
groups, mapping this data to four encoded characters. It is sometimes referred to as 3-to-4 encoding. Each 6 bits of the 24-bit group is used as an
index into a mapping table (the base64 alphabet) to obtain a character for
the encoded data.
base64-mime
Scheme used to transmit binary data. Same principle as base64 with one
little difference, it’s the way how the ends of the encoded strings looks
like. Both techniques use the same character set but base64-mime follows the specification made for SMTP messages. It aligns the string to 4
characters and fills the unused with the padding character “=”, base64
cuts down the characters to the only needed ones depending on the
number of bits.
DCOM
Distributed Component Object Model (DCOM) is a Microsoft proprietary
technology for software components distributed across several networked computers to communicate with each other. It extends Microsoft's
COM, and provides the communication substrate under Microsoft's
COM+ application server infrastructure. It has been deprecated in favor
of Microsoft .NET.
User Manual W51PC DCOM Interface V1.1Glossary of Terms • 21
Page 26
The addition of the "D" to COM was due to extensive use of DCE/RPC more specifically Microsoft's enhanced version, known as MSRPC.
In terms of the extensions it added to COM, DCOM had to solve the
problems of
Marshalling - serializing and deserializing the arguments and return values of method calls "over the wire".
Distributed garbage collection - ensuring that references held by clients
of interfaces are released when, for example, the client process crashed,
or the network connection was lost.
One of the key factors in solving these problems is the use of DCE/RPC
as the underlying RPC mechanism behind DCOM. DCE/RPC has strictly
defined rules regarding marshalling and who is responsible for freeing
memory.
DCOM was a major competitor to CORBA. Proponents of both of these
technologies saw them as one day becoming the model for code and
service-reuse over the Internet. Howev er, the difficulties involved in getting either of these technologies to work over Internet firewalls, and on
unknown and insecure machines, meant that normal HTTP requests in
combination with web browsers won out ov er both of them. Microsoft, at
one point, attempted and failed to head this off by adding an extra http
transport to DCE/RPC called
DTD
Can accompany a document, essentially defining the rules of the document, such as which elements are present and the structural relationship
between the elements. It defines what tags can go in a XML document,
what tags can contain other tags, the number and sequence of the tags,
the attributes a tag can have, and optionally, the v alues those attributes
can have.
RGB
A color perceived by the human eye can be defined by a linear combination of the three primary colors red, green and blue. These three colors
form the basis for the RGB-colorspace.
Unicode
Unicode is a character code that defines ev ery character in most of the
speaking languages in the world. Although commonly thought to be only
a two-byte coding system, Unicode characters can use only one byte, or
up to four bytes, to hold a Unicode "code point" (see UTF-8 and UTF-16).
The code point is a unique number for a character or some character aspect such as an accent mark or ligature. Unicode supports more than a
million code points, which are written with a "U" followed by a plus sign
and the number in hex; for example, the word "Hello" is written U+0048
U+0065 U+006C U+006C U+006F.
UTF-16
This is a fixed-length character encoding for unicode. It is able to
represent any universal character in the Unicode standard. UTF -16 uses
two bytes per character.
22 • Glossary of TermsUser Manual W51PC DCOM Interface V1.1
Page 27
UTF-8
This is a variable-length character encoding for Unicode. It is able to
represent any universal character in the Unicode standard, yet is backwards compatible with ASCII. UTF-8 uses one to four bytes per character, depending on the Unicode symbol. For example, only one byte is
needed to encode the 128 US-ASCII characters in the Unicode range
U+0000 to U+007F.
Well-formed
A textual object is a well-formed XML document if: Taken as a whole, it
matches the production labeled document It meets all the wellformedness constraints given in this specification.
XML
The Extensible Markup Language (XML) is a subset of SGML that is
completely described in this document. Its goal is to enable generic
SGML to be served, received, and processed on the Web in the way that
is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML.
User Manual W51PC DCOM Interface V1.1Glossary of Terms • 23
Page 28
Page 29
T
Training 1
V
Index
C
Class W51Param 10
Class W51Server 4
Company Profile 1