Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.659.612 Times

Data::SecsPack 0.06

  Date Added: April 13, 2010  |  Visits: 539

Data::SecsPack

Report Broken Link
Printer Friendly Version


Product Homepage
Download (74 downloads)



Data::SecsPack is a Perl module pack and unpack numbers in accordance with SEMI E5-94. SYNOPSIS ##### # Subroutine interface # use Data::SecsPack qw(bytes2int config float2binary ifloat2binary int2bytes pack_float pack_int pack_num str2float str2int unpack_float unpack_int unpack_num); $big_integer = bytes2int( @bytes ); $old_value = config( $option ); $old_value = config( $option => $new_value); ($binary_magnitude, $binary_exponent) = float2binary($magnitude, $exponent, @options); ($binary_magnitude, $binary_exponent) = ifloat2binary($imagnitude, $iexponent, @options); @bytes = int2bytes( $big_integer ); ($format, $floats) = pack_float($format, @string_floats, [@options]); ($format, $integers) = pack_int($format, @string_integers, [@options]); ($format, $numbers, @string) = pack_num($format, @strings, [@options]); $float = str2float($string, [@options]); (@strings, @floats) = str2float(@strings, [@options]); $integer = str2int($string, [@options]); (@strings, @integers) = str2int(@strings, [@options]); @ingegers = unpack_int($format, $integer_string, @options); @floats = unpack_float($format, $float_string, @options); @numbers = unpack_num($format, $number_string), @options; ##### # Class, Object interface # # For class interface, use Data::SecsPack instead of $self # use Data::SecsPack; $secspack = Data::SecsPack; # uses built-in config object $secspack = new Data::SecsPack(@options); $big_integer = bytes2int( @bytes ); ($binary_magnitude, $binary_exponent) = $secspack->float2binary($magnitude, $exponent, @options); ($binary_magnitude, $binary_exponent) = $secspack->ifloat2binary($imagnitude, $iexponent, @options); @bytes = $secspack->int2bytes( $big_integer ); ($format, $floats) = $secspack->pack_float($format, @string_integers, [@options]); ($format, $integers) = $secspack->pack_int($format, @string_integers, [@options]); ($format, $numbers, @strings) = $secspack->pack_num($format, @strings, [@options]); $integer = $secspack->str2int($string, [@options]) (@strings, @integers) = $secspack->str2int(@strings, [@options]); $float = $secspack->str2float($string, [@options]); (@strings, @floats) = $secspack->str2float(@strings, [@options]); @ingegers = $secspack->unpack_int($format, $integer_string, @options); @floats = $secspack->unpack_float($format, $float_string, @options); @numbers = $secspack->unpack_num($format, $number_string, @options); Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions. The subroutines in the Data::SecsPack module packs and unpacks numbers in accordance with SEMI E5-94. The E5-94 establishes the standard for communication between the equipment used to fabricate semiconductors and the host computer that controls the fabrication. The equipment in a semiconductor factory (fab) or any other fab contains every conceivable known microprocessor and operating system known to man. And there are a lot of specialize real-time embedded processors and speciallize real-time embedded operating systems in addition to the those in the PC world. The communcication between host and equipment used packed nested list data structures that include arrays of characters, integers and floats. The standard has been in place and widely used in China, Germany, Korea, Japan, France, Italy and the most remote corners on this planent for decades. The basic data structure and packed data formats have not changed for decades. This stands in direct contradiction to the common conceptions of many in the Perl community and most other communities. The following quote is taken from page 761, Programming Perl third edition, discussing the pack subroutine: "Floating-point numbers are in the native machine format only. Because of the variety of floating format and lack of a standard "network" represenation, no facility for interchange has been made. This means that packed floating-point data written on one machine may not be readable on another. That is a problem even when both machines use IEEE floating-point arithmetic, because the endian-ness of memory representation is not part of the IEEE spec." There are a lot of things that go over the net that have industry or military standards but no RFCs. So unless you dig them out, you will never know they exist. While RFC and military standards may be freely copyied, industry standards are usually copyrighted. This means if you want to read the standard, you have to pay whatever the market bears. ISO standards, SEMI stardards, American National Standards, IEEE standards beside being boring are expensive. In other words, you do not see them flying out the door at the local Barnes and Nobles. In fact, you will not even find them inside the door. It very easy to run these non RFC standard protocols over the net. Out of 64,000 ports, pick a port of opportunity (hopefully not one of those low RFC preassigned ports) and configure the equipment and host to the same IP and port. Many times the software will allow a remote console that is watch only. The watch console may even be a web server on port 80. If there is a remote soft console, you can call up or e-mail the equipment manufacturers engineer in say Glouster, MA, USA and tell him the IP and port so he can watch his manchine mangle a cassette of wafers with a potential retail value of half million dollars. SEMI E5-94 and their precessors do standardize the endian-ness of floating point, the packing of nested data, used in many programming languages, and much, much more. The endian-ness of SEMI E5-94 is the first MSB byte, floats sign bit first. Maybe this is because it makes it easy to spot numbers in a packed data structure. The nested data has many performance advantages over the common SQL culture of viewing and representing data as tables. The automated fabs of the world make use of SEMI E5-94 nested data not only for real-time communication (TCP/IP RS-2332 etc) between machines but also for snail-time processing as such things as logs and performance data. Does this standard communications protocol ensure that everything goes smoothly without any glitches with this wild mixture of hardware and software talking to each other in real time? Of course not. Bytes get reverse. Data gets jumbled from point A to point B. Machine time to test software is non-existance. Big ticket, multi-million dollar fab equipment has to work to earn its keep. And, then there is the everyday business of suiting up, with humblizing hair nets, going through air and other showers with your favorite or not so favorite co-worker just to get into the clean room. And make sure not to do anything that will scatch a wafer with a lot of Intel Pentiums on them. It is totally amazing that the product does get out the door..

Requirements: No special requirements
Platforms: Linux
Keyword: Datasecspack Format In Accordance In Accordance With Ip Numbers Options Pack Perl Module Rfc Secspack Semi String Unpack
Users rating: 0/10

License: Freeware Size: 102.4 KB
USER REVIEWS
More Reviews or Write Review


DATA::SECSPACK RELATED
Libraries  -  NetAddr::IP::Find 0.03
NetAddr::IP::Find is a Perl module to find IP addresses in plain text. SYNOPSIS use NetAddr::IP::Find; $num_found = find_ipaddrs($text, &callback); This is a module for finding IP addresses in plain text. Functions NetAddr::IP::Find...
3.07 KB  
Libraries  -  NetAddr::IP::UtilPP 4.004
NetAddr::IP::UtilPP is a Perl module with pure Perl functions for NetAddr::IP::Util. SYNOPSIS use NetAddr::IP::UtilPP qw( hasbits isIPv4 shiftleft addconst add128 sub128 notcontiguous ipv4to6 mask4to6 ipanyto6 maskanyto6 ipv6to4...
97.28 KB  
Libraries  -  String::MFN 1.27
String::MFN is a Perl module to Normalize a string in the manner of the mfn utility. SYNOPSIS use String::MFN; my $sane_string = mfn($retarded_string); ... Normalizes a string. Normalization, in brief, means modifying the string to...
8.19 KB  
Libraries  -  NetAddr::IP 4.004
NetAddr::IP is a Perl module that can manage IPv4 and IPv6 addresses and subnets. SYNOPSIS use NetAddr::IP qw( Compact Coalesce Zero Ones V4mask V4net :aton :old_storable :old_nth ); my $ip = new NetAddr::IP loopback; print "The...
97.28 KB  
Games  -  Learning Numbers for Kids 1.0
Learning Numbers for Kids is a game of simple mental calculation and basic math skills. Its an addictive puzzle game that will help kindergartners and kids under the age range of 5-10 learn numbers in an exciting way!! With Learning Numbers...
9.3 MB  
Libraries  -  Spreadsheet::WriteExcelXML 0.10
Spreadsheet::WriteExcelXML is a Perl module that can create an Excel file in XML format. SYNOPSIS To write a string, a formatted string, a number and a formula to the first worksheet in an Excel XML spreadsheet called perl.xls: use...
143.36 KB  
Libraries  -  DBIx::SQLCrosstab::Format 1.17
DBIx::SQLCrosstab::Format is a Perl module with formats results created by DBIx::SQLCrosstab. SYNOPSIS use DBIx::SQLCrosstab::Format; my $dbh=DBI->connect("dbi:driver:database" "user","password", {RaiseError=>1}) or die "error in connection...
66.56 KB  
Libraries  -  SQL::Preproc 0.10
SQL::Preproc is a Perl module to embed SQL in your Perl (ala SQL preprocessors). SYNOPSIS use SQL::Preproc subclass => Chart, emit => 1, keepsql => 1, syntax => [ Teradata ], pponly => 1, relax => 1, alias => 1, debug => 1; use DBI;...
52.22 KB  
Libraries  -  DateTime::Format::Roman 0.03
DateTime::Format::Roman is a Perl module with roman day numbering for DateTime objects. SYNOPSIS use DateTime::Format::Roman; my $formatter = DateTime::Format::Roman->new( pattern => %d %f %b %y ); my $dt = DateTime->new( year => 2003,...
11.26 KB  
Libraries  -  Parse::Nibbler 1.10
Parse::Nibbler is Perl module to parse huge files using grammars written in pure perl. Create a parser object using the ->new method. This method is provided by the Parse::Nibbler module and should not be overridden. The main functionality of...
33.79 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by freedesktop.org, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB  
Libraries  -  wolfSSL 3.11.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
2.73 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB