2012年7月31日 星期二

streaming


Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a provider. Its verb form, "to stream", refers to the process of delivering media in this manner; the term refers to the delivery method of the medium rather than the medium itself.
A client media player can begin playing the data (such as a movie) before the entire file has been transmitted. Distinguishing delivery method from the media distributed applies specifically to telecommunications networks, as most other delivery systems are either inherently streaming (e.g., radiotelevision) or inherently nonstreaming (e.g., booksvideo cassettes, audio CDs). For example, in the 1930s, muzak was among the earliest popularly available streaming media; nowadays Internet television is a common form of streamed media. The term "streaming media" can apply to media other than video and audio such as live closed captioningstock ticker, and real-time text, which are all considered "streaming text".
Live streaming, delivering live over the Internet, involves a camera for the media, an encoder to digitize the content, a media publisher, and content delivery network to distribute and deliver the content.


Streaming video is content sent in compressed form over the Internet and displayed by the viewer in real time. With streaming video or streaming media, a Web user does not have to wait to download a file to play it. Instead, the media is sent in a continuous stream of data and is played as it arrives. The user needs a player, which is a special program that uncompresses and sends video data to the display and audio data to speakers. A player can be either an integral part of a browser or downloaded from the software maker's Web site.
Major streaming video and streaming media technologies include RealSystem G2 from RealNetwork, Microsoft Windows Media Technologies (including its NetShow Services and Theater Server), and VDO. Microsoft's approach uses the standard MPEG compressionalgorithm for video. The other approaches use proprietary algorithms. (The program that does the compression and decompression is sometimes called the codec.) Microsoft's technology offers streaming audio at up to 96 Kbps and streaming video at up to 8 Mbps (for the NetShow Theater Server). However, for most Web users, the streaming video will be limited to the data rates of the connection (for example, up to 128 Kbps with an ISDN connection). Microsoft's streaming media files are in its Advanced Streaming Format (ASF).
Streaming video is usually sent from prerecorded video files, but can be distributed as part of a live broadcast "feed." In a live broadcast, the video signal is converted into a compressed digital signal and transmitted from a special Web server that is able to domulticast, sending the same file to multiple users at the same time.


2012年7月29日 星期日

J1939


Society of Automotive Engineers SAE J1939 is the vehicle bus standard used for communication and diagnostics among vehicle components, originally by the car and heavy duty truck industry in the United States.
SAE J1939 is used in the commercial vehicle area for communication throughout the vehicle. With a different physical layer it is used between the tractor and trailer. This is specified in ISO 11992.
SAE J1939 defines five layers in the 7-layer OSI network model, and this includes the CAN 2.0b specification (using only the 29-bit/"extended" identifier) for the physical and data-link layers. Under J1939/11 and J1939/15 the baud rate is specified as 250 kbit/s, with J1939/14 specifing 500 kbit/s. The session and presentation layers are not part of the specification.
Originally, CAN was not mentioned in J1939, which covered cars and tractor-trailer rigs, and with some dual and triple use 8-bit addresses assigned by the SAE J1939 board. CAN was not originally free, but its instruction set did fit in the custom instruction format of J1939. This was true as of the year 2000. Since then, CAN has been included, the chipset for J1939 has been clocked faster, and 16-bit addresses (PGN) have replaced 8-bit addresses.
J1939, ISO 11783 and NMEA 2000 all share the same high level protocol.
All J1939 packets, except for the request packet, contain eight bytes of data and a standard header which contains an index called PGN (Parameter Group Number), which is embedded in the message's 29-bit identifier. A PGN identifies a message's function and associated data. J1939 attempts to define standard PGNs to encompass a wide range of automotive, agricultural, marine and off-road vehicle purposes. A range of PGNs (00FF0016 through 00FFFF16, inclusive) is reserved for proprietary use. PGNs define the data which is made up of a variable number of SPN elements defined for unique data. For example, there exists a predefined SPN for engine RPM.
SAE J1939 can be considered the replacement for the older SAE J1708 and SAE J1587 specifications.
SAE J1939 has been adopted widely by diesel engine manufacturers. One driving force behind this is the increasing adoption of the engine Electronic Control Unit (ECU), which provides one method of controlling exhaust gas emissions within US and European standards. Consequently, SAE J1939 can now be found in a range of diesel-powered applications: vehicles (on- and off-road), marine propulsion, power generation and industrial pumping.
Applications of J1939 now include off-highway, truck, bus, and even some passenger car applications.

PLUG IN


In computing, a plug-in (or plugin) is a set of software components that adds specific abilities to a largersoftware application. If supported, plug-ins enable customizing the functionality of an application. For example, plug-ins are commonly used in web browsers to play video, scan for viruses, and display new file types. Well-known plug-ins examples include Adobe Flash PlayerQuickTime, and Java Applets.
Add-on (or addon) in computing is often considered the general term comprising snap-ins, plug-ins, extensions, and themes for software applications.


As shown in the figure, the host application provides services which the plug-in can use, including a way for plug-ins to register themselves with the host application and a protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.[1][2]
Open application programming interfaces (APIs) provide a standard interface, allowing third parties to create plug-ins that interact with the host application. A stable API allows third-party plug-ins to continue to function as the original version changes and to extend the life-cycle of obsolete applications. The Adobe Photoshop and After Effects plug-in APIs have become a standard[3] and competing applications such as Corel Paint Shop Pro have adopted them.














OCX


An OCX is an Object Linking and Embedding (OLE) custom control, a special-purpose program that can be created for use by applications running on Microsoft's Windows systems. OCXs provide such functions as handling scroll bar movement and window resizing. If you have a Windows system, you'll find a number of files in your Windows directory with the OCX file name suffix.
Object Linking and Embedding was designed to support compound documents (which contain multiple information types, such as text, graphic images, sound, motion video). The Windows desktop is an example of a compound document and Microsoft used OLE to build it. OLE and the Component Object Model (COM), a more general concept that succeeded OLE, support the development of "plug-and-play" programs that can be written in any language and used dynamically by any application in the system. These programs are known as components and the application in which they are run is known as a container. This component-based approach to application development reduces development time and improves the program capability and quality. Windows application development programs such as PowerBuilder and Microsoft Access take advantage of OCXs.
Microsoft now calls an OCX an ActiveX control, the component object under Microsoft's set of ActiveX technologies, of which the fundamental concept is the Component Object Model (COM) and, in a network, the Distributed Component Object Model (DCOM).
An OCX or ActiveX control is actually implemented as a dynamic link library DLL module. (You can think of a DLL program as a "subprogram" that can be used by any number of application programs, each of which is a "container" for the DLL or OCX/ActiveX control "object.") Visual Basic and C++ are commonly used to write OCX or ActiveX controls.

CGI


Parser is a free[clarification needed] server-side CGI web scripting language developed by Art. Lebedev Studio and released under theGPL.
Originally, Parser was merely a simple macro processing language. The latest 3rd revision (March 2006) introduced object-oriented programming features.
The compiler for the language was developed in C++ by studio employees Konstantin Morshnev and Alexander Petrosyan to automate often repeated tasks, especially maintenance of already existing websites. It was used in many web projects of the studio. Since revision 3 it was released as free software and it is now used in other websites, mostly in Russia (according to a partial list at the language's website).
The language supports technologies needed for common web design tasks: XMLDocument Object Model (DOM), Perl Compatible Regular Expressions (PCRE) and others.

CGI, the Common Gateway Interface, defines a standard for communication between HTTP servers and other programs, so that the content of a web page can come from a program, rather than from a static HTML page. CGI programs can be written in any language - CGI is not a programming language. CGI programs allow the web site to be interactive, rather than merely a digital pamphlet.


2012年7月27日 星期五

保密協議 NDA - non-disclosure agreement


non-disclosure agreement (NDA), also known as a confidentiality agreement (CA), confidential disclosure agreement (CDA), proprietary information agreement (PIA), or secrecy agreement, is a legal contract between at least two parties that outlines confidential material, knowledge, or information that the parties wish to share with one another for certain purposes, but wish to restrict access to or by third parties. It is a contract through which the parties agree not to disclose information covered by the agreement. An NDA creates a confidential relationship between the parties to protect any type of confidential and proprietary information or trade secrets. As such, an NDA protects nonpublic business information.
NDAs are commonly signed when two companiesindividuals, or other entities (such as partnerships, societies, etc.) are considering doing business and need to understand the processes used in each others business for the purpose of evaluating the potential business relationship. NDAs can be "mutual", meaning both parties are restricted in their use of the materials provided, or they can restrict the use of material by a single party.
It is also possible for an employee to sign an NDA or NDA-like agreement with an employer. In fact, some employment agreements will include a clause restricting employees' use and dissemination of company-owned "confidential information."

2012年7月21日 星期六

3GPP

The term "3GPP specification" covers all GSM (including GPRS and EDGE), W-CDMA and LTE (including LTE-Advanced) specifications. The following terms are also used to describe networks using the 3G specifications: UTRAN, UMTS (in Europe) and FOMA (in Japan).



The 3rd Generation Partnership Project (3GPP) is a collaboration between groups of telecommunications associations, known as the Organizational Partners. The initial scope of 3GPP was to make a globally applicable third-generation (3Gmobile phone system specification based on evolved Global System for Mobile Communications (GSM) specifications within the scope of the International Mobile Telecommunications-2000 project of the International Telecommunication Union (ITU). The scope was later enlarged[1] to include the development and maintenance of:
3GPP standardization encompasses Radio, Core Network and Service architecture.[2] The project was established in December 1998 and should not be confused with 3rd Generation Partnership Project 2 (3GPP2), which specifies standards for another 3G technology based on IS-95 (CDMA), commonly known as CDMA2000. The 3GPP support team (also known as the "Mobile Competence Centre") is located at the ETSI headquarters in Sophia-Antipolis (France).[3]

資料來源: http://www.3gpp.org/
http://en.wikipedia.org/wiki/3GPP

2012年7月18日 星期三

CCIR vs EIA


CCIR stands for Comittee Consultatif International Radiotelecommunique. This is the committee that recommended the standards for B/W television accepted by most of Europe, Australia and others. This is why when we refer to equipment that complies with the B/W TV standards we call it CCIR compatible. The same "type" of standard, but later extended to colour signals, was called PAL. The name comes from the concept used for the colour reproduction by alternate phase changes of the colour carrier at each new line, hence: Phase Alternate Line-PAL.
EIA stands for Electronics Industry Association, an association that created the standard for B/W television in the USA, Canada and Japan, where it is often referred to as RS-170, it being the recommendation code of the EIA proposal. When B/W TV was upgraded to colour, it was named by the group that created the recommendation: National Television Systems Committee, or abbreviated NTSC.

2012年7月17日 星期二

parallel releases


Need for parallel releases

If you need to develop multiple versions of your system in parallel, consider using separate projects, one for each version. For example, your organization may need to work on a patch release and a new release at the same time. In this situation, both projects use mostly the same set of components. (Note that multiple projects can modify the same set of components.) When work on the patch release project is complete, you integrate it with the new release project.
If you anticipate that your team will develop and release numerous versions of your system over time, you may want to create a mainline project. A mainline project serves as a single point of integration for related projects over a period of time.
Figure 1 shows the initial set of components planned for the Transaction Builder system. A team of 30 developers work on the system. Because a high degree of integration between components is required, and most developers work on several components, the project manager included all components in one project. You can use multiple UCM projects for your development.

2012年7月10日 星期二

Pelco D/P protocols


Introduction

This is GPL software. Do with it as you want, but feed us back any improvements.
This is a full C# classes to control a PELCO PTZ cameras, matrix switching systems,
reciever devices and more via RS422/485 'P' and 'D' protocol.
It supports all of the commands including UP, DOWN, IN, OUT, LEFT, RIGHT, NEAR, FAR, as well as other extended commands.
To use this, you need to put a RS232->RS422 adapter on the output of your desired serial port.
The Pelco doesn't return ANY usefull info back, so you only really need 2-wire support (one way) communications out. However, I advice to read it in order to know if the command was recieved by the device.
This section describes the protocol used when sending commands to an Intercept Dome in the “P” version protocol and Coaxitron series equipment and with Pelco’s “D” version receivers. Those protocols use no parity, one start bit, eight data bits, and one stop bit. The recommended baud rate is 4800 (4800, 8, N, 1, 1).

Theory

In those protocols the messages structure are different. However both of protocols using RS-485 port to send and recieve messages.
All values below are shown in hexadecimal (base 16).
Pelco P message structure
Byte
Value
Function
1
$A0
STX (start transmission)
2
$00 to $1F
Address
3
Data byte 1
(see below)
4
Data byte 2
(see below)
5
Data byte 3
(see below)
6
Data byte 4
(see below)
7
$AF
ETX (end transmission)
8
$00-$FF
Check Sum
Byte 1 is always $A0
Byte 2 is the receiver address, set by DIP switch in the receiver
Byte 3-6, see below
Byte 7 is always $AF
Byte 8 is an XOR sum of Bytes 1-7
The protocol is “zero indexed” so that the hexadecimal address sent in the protocol for the first receiver is $00 which corresponds to address 1.
Pelco D message structure
The “D” protocol has some added overhead to improve the reliability of transmissions. The format for a message is:
Word 1
Word 2
Word 3
Word 4
Word 5
Word 6
Word 7
Synch Byte
Address
Command 1
Command 2
Data 1
Data 2
Check Sum
The synchronization byte is always $FF.
The address is the logical address of the receiver/driver being controlled.
But in Pelco D protocol they are quite different:

Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Command 1
Sense
Reserved
Reserved
Auto / Manual Scan
Camera On / Off
Iris Close
Iris Open
Focus Near
Command 2
Focus Far
Zoom Wide
Zoom Tele
Down
Up
Left
Right
Always 0

The sense bit (command 1 bit 7) indicates the meaning of bits 4 and 3. If the sense bit is on and bits 4 and 3 are on the command will enable autoscan and turn the camera on. If the sense bit is off and bits 4 and 3 are on the command will enable manual scan and turn the camera off. Of course, if either bit 4 or bit 3 are off then no action will be taken for those features.
The reserved bits (6 and 5) should be set to 0.
Word 5 contains the pan speed. Pan speed is in the range $00 (stop) to $3F (high speed) and $FF for “turbo” speed. Turbo speed is the maximum speed the device can obtain and is considered separately because it is not generally a smooth step from high speed to turbo. That is, going from one speed to the next usually looks smooth and will provide for smooth motion with the exception of going into and out of turbo speed.
Word 6 contains the tilt speed. Tilt speed is in the range $00 (stop) to $3F (maximum speed).
Word 7 is the check sum. The check sum is the sum of bytes (excluding the synchronization byte) modulo 256.

Extended Command Set

In addition to the “PTZ” commands shown above, there are control commands that allow you access to the more advanced features of some equipment.
For Pelco P protocol the extended command set will have bit 0 of data byte 2 set and will follow the format in the following table:

Command
Data byte 1
Data byte 2
Data byte 3
Data byte 4
Set Preset XX
00
03
00
01 to FF
Clear Preset XX
00
05
00
01 to FF
Go To Preset XX
00
07
00
01 to FF
Flip (rotate 180º)
00
07
00
21
Zero Pan Position
00
07
00
22
Auto scan
00
09
00
00
Stop auto scan
00
0B
00
00
Remote Reset
00
0F
00
00
Zone Start
00
11
00
01 to 08
Zone End
00
13
00
01 to 08
Write char to screen
00
15
0 to 28
0 to 7F
Clear Screen
00
17
00
00
Alarm Ack
00
19
00
01 to 08
Zone Scan On
00
1B
00
00
Zone Scan Off
00
1D
00
00
Pattern Start
00
1F
00
00
Pattern Stop
00
21
00
00
Run Pattern
00
23
00
00
Zoom Lens Speed
00
25
00
00 to 03
Focus Lens Speed
00
27
00
00 to 03

In Pelco D implementation they are as following:

Command
Word 3
Word 4
Word 5
Word 6
Set Preset
00
03
00
01 to 20
Clear Preset
00
05
00
01 to 20
Go To Preset
00
07
00
01 to 20
Flip (180° about)
00
07
00
21
Go To Zero Pan
00
07
00
22
Set Auxiliary
00
09
00
01 to 08
Clear Auxiliary
00
0B
00
01 to 08
Remote Reset
00
0F
00
00
Set Zone Start
00
11
00
01 to 08
Set Zone End
00
13
00
01 to 08
Write Char. To Screen
00
15
X Position 00 to 28
ASCII Value
Clear Screen
00
17
00
00
Alarm Acknowledge
00
19
00
Alarm No.
Zone Scan On
00
1B
00
00
Zone Scan Off
00
1D
00
00
Set Pattern Start
00
1F
00
00
Set Pattern Stop
00
21
00
00
Run Pattern
00
23
00
00
Set Zoom Speed
00
25
00
00 to 03
Set Focus Speed
00
27
00
00 to 03

Please note that in Pelco P implementaiton the checksum is calculation by XOR binary sum of bytes 1-7, but in D one is by madulo 256 sum of bytes 1-6
0A        00001010
88        10001000
Subtotal  10010010  92
90        10010000
Subtotal  00100010  22   (modulo 256 allows the high bit to roll off)
00        00000000
Subtotal  00100010  22
40        01000000
01100010  62  
Final check sum value


The response of devices not really important, however just to know that in Pelco P the response will be ACK command, when in Pelco D the response to one of these commands is four bytes long. The first byte is the synchronization character (FF), the second byte is the receiver address, the third byte contains the alarm information and the fourth byte is the check sum.