diff --git a/openair1/EMOS/DOC/measurement_manual.tex b/openair1/EMOS/DOC/measurement_manual.tex
deleted file mode 100644
index b48e7190eb..0000000000
--- a/openair1/EMOS/DOC/measurement_manual.tex
+++ /dev/null
@@ -1,105 +0,0 @@
-\documentclass[10pt,a4paper]{article}
-%\usepackage{epsfig,amsmath,amsfonts,url,subfigure,verbatim}
-
-\begin{document}
-\author{Florian Kaltenberger (\texttt{florian.kaltenberger@eurecom.fr})}
-\title{EMOS Multiuser Measurement Manual}
-
-\maketitle
-
-\section{EMOS Multiuser Measurement Manual}
-
-\subsection{Checklist}
-
-Each user should have the following equipment
-
-\begin{itemize}
-\item Laptop
-\item Power supply
-\item Car power adaptor
-\item GPS
-\item CBMIMO1 Card (Availiable cards: 2, 6, 7, 11. Card 10 has a bad frequency response and card 12 crashes after some time)
-\item 2 Batteries
-\item Antennas
-\item This Manual
-\item Route and Time
-\item Walkie Talkie
-\end{itemize}
-
-\subsection{Startup}
-\begin{itemize}
-\item Login using the name written on the laptop (password {\tt linux})
-\item Power up the CBMIMO1 card, connect the antennas to the two outer connectors on the card, and insert it in the card slot
-\item Connect the USB GPS receiver
-\item Open a terminal window and change directory:\\
- {\tt cd EMOS/emos\_gui}
-\item Load the kernel module as root:\\
- {\tt sudo make install\_cbmimo1\_softmodem\_emos}\\
- (provide password {\tt linux} if asked)\\
- The leds on the card should now be ``moving''
-\item Start the GPS daemon as root:\\
- {\tt sudo gpsd -f /dev/ttyUSB0} (provide password {\tt linux} if asked)
-\item Start the GUI:\\
- {\tt cd src}\\
- {\tt ./emos\_gui -n4}
-%Start with {\tt ./emos\_gui -nx}, where {\tt x} is the number of base station antennas.
-\end{itemize}
-
-\subsection{Operation}
-\begin{itemize}
-
-\item Turn on the GUI by clicking the ``PWR'' button.
-
-\item Make sure, there are no error messages.
-
-\item If the terminal can synchronize to the base station, the displays should turn on and the two rightmost leds on the card should stay on.
-
-\item Bring the GUI into multiuser mode by pressing the ``terminal mode'' button.
-
-\item Make sure you set the terminal number to the number indicated on your laptop.
-
-\item Now you are ready to turn on the recorder by pressing ``record''. The terminal now waits for the base station to signal the recording flag. Upon receiving the flag, the terminal will record the estimated channel. When the recording flag goes off, the data is stored to file, the file index is increased, and the terminal goes into standby again.
-\end{itemize}
-
-\subsection{Troubleshooting}
-
-\paragraph{Card does not synchronize}
-Most probably you are in an area with no or too little signal.
-\begin{itemize}
-\item Make sure you stay on the measurement routes.
-\item Make sure the antennas are connected correctly.
-\item Check for other error messages on the GUI.
-\end{itemize}
-
-\paragraph{Channel displays do not refresh}
-Most probably the card has crashed or there is a problem with the fifo.
-\begin{itemize}
-\item Stop recording and exit the GUI
-\item Remove the kernel module:\\
- {\tt cd ~/EMOS/emos\_gui}\\
- {\tt sudo make remove\_cbmimo1\_emos}
-\item Remove the card and the power
-\item Load the kernel module as described above
-\item Restart the GUI
-\end{itemize}
-
-\paragraph{No GPS data availiable}
-\begin{itemize}
-\item Make sure the GPS is connected correctly and that it can see the satelites (led on GPS constantly on)
-\item Have you started the GPS daemon {\tt gpsd -f /dev/ttyUSB0}
-\item Restart the GUI
-\end{itemize}
-
-\paragraph{GUI does not record or records permanently}
-\begin{itemize}
-\item Make sure you are in multiuser mode and you turned on record
-\item Make sure there is enough disk space
-\item Make sure that the record path (``config'' button) is set to ~/EMOS/data/
-\end{itemize}
-
-\paragraph{Computer freezes}
-\begin{itemize}
-\item Reboot
-\end{itemize}
-
-\end{document}
\ No newline at end of file
diff --git a/openair1/EMOS/DUMP/COPYING b/openair1/EMOS/DUMP/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/DUMP/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/DUMP/Makefile b/openair1/EMOS/DUMP/Makefile
deleted file mode 100644
index cd8bec5885..0000000000
--- a/openair1/EMOS/DUMP/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-SRC = emos_dump.c dump_size.c
-
-OBJ = emos_dump.o dump_size.o
-
-CFLAGS += $(shell rtai-config --lxrt-cflags)
-LDFLAGS = $(shell rtai-config --lxrt-ldflags) -lpthread -llxrt -lm -lgps -lforms
-
-CFLAGS += -m32 -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES
-
-CFLAGS += -DPHYSIM -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1
-
-CFLAGS += -DOPENAIR_LTE -DENABLE_FXP -DOPENAIR1 #-DDLSCH_THREAD -DULSCH_THREAD
-
-CFLAGS += -DEMOS -DEXMIMO
-
-all: emos_dump dump_size
-
-$(OBJ): %.o : %.c
- @echo Compiling $< ...
- @$(CC) -c $(CFLAGS) -o $@ $<
-
-emos_dump: emos_dump.c
- $(CC) $(CFLAGS) $(LDFLAGS) emos_dump.c -o emos_dump
-
-dump_size: dump_size.c
- $(CC) $(CFLAGS) $(LDFLAGS) dump_size.c -o dump_size
-
-clean:
- rm -rf emos_dump dump_size
- rm -rf $(OBJ)
-
-show:
- @echo $(CFLAGS)
- @echo $(OBJ)
-
-beautiful:
- astyle --style=gnu -s2 $(SRC)
diff --git a/openair1/EMOS/DUMP/dump_size.c b/openair1/EMOS/DUMP/dump_size.c
deleted file mode 100644
index e436cdf6a9..0000000000
--- a/openair1/EMOS/DUMP/dump_size.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "gps.h"
-#include "SCHED/phy_procedures_emos.h"
-
-int main(void)
-{
- printf("MAX_CQI_BITS = %d;\n",MAX_CQI_BITS);
- printf("PHY_measurements_size = %d;\n",sizeof(PHY_MEASUREMENTS));
- printf("PHY_measurements_eNb_size = %d;\n",sizeof(PHY_MEASUREMENTS_eNB));
- //printf("UCI_data_t_size = %d;\n",sizeof(UCI_DATA_t));
- //printf("DCI_alloc_t_size = %d;\n",sizeof(DCI_ALLOC_t));
- printf("eNb_UE_stats_size = %d;\n",sizeof(LTE_eNB_UE_stats));
- printf("fifo_dump_emos_UE_size = %d;\n",sizeof(fifo_dump_emos_UE));
- printf("fifo_dump_emos_eNb_size = %d;\n",sizeof(fifo_dump_emos_eNB));
- printf("gps_fix_t_size = %d\n",sizeof(struct gps_fix_t));
-
- return(0);
-}
diff --git a/openair1/EMOS/DUMP/emos_dump.c b/openair1/EMOS/DUMP/emos_dump.c
deleted file mode 100644
index c88246798b..0000000000
--- a/openair1/EMOS/DUMP/emos_dump.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/*! \file emod_dump.c
-* \brief reads data from a fifo and dumps it to disk
-* \author F. Kaltenberger, Leonardo Cardoso
-* \date 2012
-* \version 0.2
-* \company Eurecom
-* \email: florian.kaltenberger@eurecom.fr
-* \note
-* \warning
-*/
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "SCHED/phy_procedures_emos.h"
-#include "emos_dump.h"
-
-int end=0;
-
-static void endme(int dummy)
-{
- printf("SIGINT received\n");
- end=1;
-}
-
-/*
-#define TIMESTAMP_SIZE 8
-#define PDU_ERRORS_SIZE 4
-#define RX_RSSI_SIZE 2
-#define COMPLEX16_SIZE 4
-#define NO_OF_OFDM_CARRIERS 256
-#define CHANNEL_BUFFER_SIZE (NB_ANTENNAS*COMPLEX16_SIZE*NO_OF_OFDM_CARRIERS+TIMESTAMP_SIZE+PDU_ERRORS_SIZE+RX_RSSI_SIZE) //in bytes
-*/
-#define NO_ESTIMATES_DISK 100 //No. of estimates that are aquired before dumped to disk
-
-int main (int argc, char **argv)
-{
- char c, eNB_flag=0;
- char *fifo2file_buffer, *fifo2file_ptr;
-
- int fifo, counter=0, bytes;
-
- FILE *dumpfile_id;
- char dumpfile_name[1024];
- time_t starttime_tmp;
- struct tm starttime;
-
- int channel_buffer_size;
-
- time_t timer;
- struct tm *now;
-
- struct gps_data_t *gps_data = NULL;
- struct gps_fix_t dummy_gps_data;
-
- while ((c = getopt (argc, argv, "he")) != -1) {
- switch (c) {
- case 'e':
- eNB_flag=1;
- break;
-
- case 'h':
- printf("EMOS FIFO to file dump.\n");
- printf("Usage: %s -h(elp) -e(NB) (default=ue)\n",argv[0]);
- exit(0);
-
- default:
- break;
- }
- }
-
- timer = time(NULL);
- now = localtime(&timer);
-
- memset(&dummy_gps_data,1,sizeof(struct gps_fix_t));
-
- gps_data = gps_open("127.0.0.1","2947");
-
- if (gps_data == NULL) {
- printf("Could not open GPS\n");
- //exit(-1);
- }
-
-#if GPSD_API_MAJOR_VERSION>=4
- else if (gps_stream(gps_data, WATCH_ENABLE,NULL) != 0)
-#else
- else if (gps_query(gps_data, "w+x") != 0)
-#endif
- {
- //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data);
- printf("Error sending command to GPS\n");
- //exit(-1);
- }
-
- if (eNB_flag==1)
- channel_buffer_size = sizeof(fifo_dump_emos_eNB);
- else
- channel_buffer_size = sizeof(fifo_dump_emos_UE);
-
- // allocate memory for NO_FRAMES_DISK channes estimations
- fifo2file_buffer = malloc(NO_ESTIMATES_DISK*channel_buffer_size);
- fifo2file_ptr = fifo2file_buffer;
-
- if (fifo2file_buffer == NULL) {
- printf("Cound not allocate memory for fifo2file_buffer\n");
- exit(EXIT_FAILURE);
- }
-
- if ((fifo = open(CHANSOUNDER_FIFO_DEV, O_RDONLY)) < 0) {
- fprintf(stderr, "Error opening the fifo\n");
- exit(EXIT_FAILURE);
- }
-
-
- time(&starttime_tmp);
- localtime_r(&starttime_tmp,&starttime);
- snprintf(dumpfile_name,1024,"%s_data_%d%02d%02d_%02d%02d%02d.EMOS",
- (eNB_flag==1) ? "eNB" : "UE",
- 1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, starttime.tm_min, starttime.tm_sec);
-
- dumpfile_id = fopen(dumpfile_name,"w");
-
- if (dumpfile_id == NULL) {
- fprintf(stderr, "Error opening dumpfile\n");
- exit(EXIT_FAILURE);
- }
-
- signal(SIGINT, endme);
-
- printf("starting dump, channel_buffer_size=%d ...\n",channel_buffer_size);
-
- while (!end) {
- bytes = rtf_read_all_at_once(fifo, fifo2file_ptr, channel_buffer_size);
- /*
- if (eNB_flag==1)
- printf("eNB: count %d, frame %d, read: %d bytes from the fifo\n",counter, ((fifo_dump_emos_eNB*)fifo2file_ptr)->frame_tx,bytes);
- else
- printf("UE: count %d, frame %d, read: %d bytes from the fifo\n",counter, ((fifo_dump_emos_UE*)fifo2file_ptr)->frame_rx,bytes);
- */
-
- fifo2file_ptr += channel_buffer_size;
- counter ++;
-
- if (counter == NO_ESTIMATES_DISK) {
- //reset stuff
- fifo2file_ptr = fifo2file_buffer;
- counter = 0;
-
- //flush buffer to disk
- if (eNB_flag==1)
- printf("eNB: count %d, frame %d, flushing buffer to disk\n",
- counter, ((fifo_dump_emos_eNB*)fifo2file_ptr)->frame_tx);
- else
- printf("UE: count %d, frame %d, flushing buffer to disk\n",
- counter, ((fifo_dump_emos_UE*)fifo2file_ptr)->frame_rx);
-
-
- if (fwrite(fifo2file_buffer, sizeof(char), NO_ESTIMATES_DISK*channel_buffer_size, dumpfile_id) != NO_ESTIMATES_DISK*channel_buffer_size) {
- fprintf(stderr, "Error writing to dumpfile\n");
- exit(EXIT_FAILURE);
- }
-
- if (gps_data) {
- if (gps_poll(gps_data) != 0) {
- printf("problem polling data from gps\n");
- } else {
- printf("lat %g, lon %g\n",gps_data->fix.latitude,gps_data->fix.longitude);
- }
-
- if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- printf("Error writing to dumpfile, stopping recording\n");
- exit(EXIT_FAILURE);
- }
- } else {
- printf("WARNING: No GPS data available, storing dummy packet\n");
-
- if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- printf("Error writing to dumpfile, stopping recording\n");
- exit(EXIT_FAILURE);
- }
- }
- }
- }
-
- free(fifo2file_buffer);
- fclose(dumpfile_id);
- close(fifo);
-
- return 0;
-
-}
-
diff --git a/openair1/EMOS/DUMP/emos_dump.h b/openair1/EMOS/DUMP/emos_dump.h
deleted file mode 100644
index 4f65d0a6bb..0000000000
--- a/openair1/EMOS/DUMP/emos_dump.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#define CHANSOUNDER_FIFO_DEV "/dev/rtf3"
diff --git a/openair1/EMOS/GPS/COPYING b/openair1/EMOS/GPS/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/GPS/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/GPS/Makefile b/openair1/EMOS/GPS/Makefile
deleted file mode 100644
index 4ae707f60b..0000000000
--- a/openair1/EMOS/GPS/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-gps_trace: gps.c
- gcc gps.c -Wall -g -I/usr/include/X11 -lgps -lforms -o gps_trace
-
-read_iw: read_iw.c
- gcc read_iw.c -Wall -g -o read_iw
\ No newline at end of file
diff --git a/openair1/EMOS/GPS/gps.c b/openair1/EMOS/GPS/gps.c
deleted file mode 100644
index eecfe0ded3..0000000000
--- a/openair1/EMOS/GPS/gps.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include
-#include
-#include
-#include
-#include
-#include
-
-struct gps_data_t *gps_data = NULL;
-struct gps_fix_t dummy_gps_data;
-FILE *dumpfile_id = NULL;
-
-
-void gps_data_callback(int gps_fd, void* data)
-{
- //char tmptxt[1024];
- time_t timer;
- struct tm *now;
-
- timer = time(NULL);
-
- //printf("GPS timer called\n");
- if (gps_data) {
- if (gps_poll(gps_data) != 0) {
- //sprintf(tmptxt,"Error polling data from GPS, gps_data = %x", gps_data);
- printf("Error polling data from GPS\n");
- } else
- now = localtime(&timer);
-
- printf("%04d%02d%02d%02d%02d%02d,%g,%g\n",
- now->tm_year+1900,now->tm_mon+1,now->tm_mday,now->tm_hour, now->tm_min, now->tm_sec,
- //asctime(localtime(&timer)),
- gps_data->fix.latitude,gps_data->fix.longitude);
- }
-
- //fl_set_timer(ob, 0.05);
-
- //write GPS
- if (gps_data) {
- if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- printf("Error writing to dumpfile, stopping recording\n");
- }
- } else {
- printf("WARNING: No GPS data available, storing dummy packet\n");
-
- if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- printf("Error writing to dumpfile, stopping recording\n");
- }
- }
-}
-
-void stop_gps(int sig)
-{
-
- // stop gps
- if (gps_data)
- fl_remove_io_callback(gps_data->gps_fd, FL_READ , &gps_data_callback);
-
- // close the GPS
- if (gps_data)
- gps_close(gps_data);
-
- fclose(dumpfile_id);
- dumpfile_id = NULL;
-
- fl_finish();
-
- exit(0);
-}
-
-int main(int argc, char *argv[])
-{
-
- time_t timer;
- char log_filename[256], date_str[128];
- struct tm *now;
-
- timer = time(NULL);
- now = localtime(&timer);
-
- // open GPS
- gps_data = gps_open("127.0.0.1","2947");
-
- if (gps_data == NULL) {
- printf("Could not open GPS\n");
- exit(-1);
- } else if (gps_stream(gps_data, WATCH_ENABLE,NULL) != 0) {
- //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data);
- printf("Error sending command to GPS\n");
- exit(-1);
- }
-
- strftime(date_str, 128, "%Y%m%d_%H%M%S", now);
- sprintf(log_filename,"gps_trace_%s.log", date_str);
- dumpfile_id = fopen(log_filename,"w");
-
- if (dumpfile_id == NULL) {
- printf("Error opening dumpfile\n");
- exit(-1);
- }
-
- signal(SIGINT, stop_gps);
-
- fl_initialize(&argc, argv, "GPS Tracer", 0, 0);
-
- if (gps_data)
- fl_add_io_callback(gps_data->gps_fd, FL_READ, &gps_data_callback, NULL);
-
- fl_do_forms();
-
- exit(0);
-}
-
diff --git a/openair1/EMOS/GPS/load_gps_trace.m b/openair1/EMOS/GPS/load_gps_trace.m
deleted file mode 100644
index fb0ab8dd0d..0000000000
--- a/openair1/EMOS/GPS/load_gps_trace.m
+++ /dev/null
@@ -1,85 +0,0 @@
-function [gps_data, NFrames] = load_gps_trace(filename, NFrames_max, decimation)
-%
-% EMOS GPS trace import filter
-%
-% [gps_data, NFrames] =
-% load_estimates_lte(filename, NFrames_max)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% decimation - read every 'decimation' frame
-%
-% Returns:
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20120123 0.1 Created based on load_estimates
-
-if nargin < 3
- decimation = 1;
-end
-if nargin < 2
- NFrames_max = Inf;
-end
-
-gps_data_struct = struct(...
- 'timestamp', double(0),...
- 'mode', int32(0),...
- 'ept',double(0),...
- 'latitude',double(0),...
- 'longitude',double(0),...
- 'eph',double(0),...
- 'altitude',double(0),...
- 'epv',double(0),...
- 'track',double(0),...
- 'epd',double(0),...
- 'speed',double(0),...
- 'eps',double(0),...
- 'climb',double(0),...
- 'epc',double(0));
-
-gps_data_struct_a = cstruct(gps_data_struct,[],4);
-
-gps_fix_t_size = gps_data_struct_a.size;
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/gps_fix_t_size);
- if (mod(info_file.bytes,gps_fix_t_size) ~= 0)
- warning('File size not a multiple of buffer size. File might be corrupt.');
- end
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-gps_data = repmat(gps_data_struct,1,NFrames);
-
-l = 1;
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while (~feof(fid) && (l <= min(sum(NFrames_file(1:n)),NFrames_max)))
-
- %read GPS data
- gps_data(l) = binread(fid,gps_data_struct,1,4,'l');
- l=l+1;
- end
-
- fclose(fid);
-end
-
diff --git a/openair1/EMOS/GPS/read_iw.c b/openair1/EMOS/GPS/read_iw.c
deleted file mode 100644
index fbd75e5d35..0000000000
--- a/openair1/EMOS/GPS/read_iw.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include
-#include
-#include
-#include
-
-int main(int argc, char *argv[])
-{
-
- FILE *file_id = NULL;
-
- struct iw_struct {
- char wday[8];
- char mon[8];
- int day;
- int hour;
- int min;
- int sec;
- int year;
- char addr[32];
- char dev[32];
- int inactive_time;
- int rx_bytes;
- int rx_packets;
- int tx_bytes;
- int tx_packets;
- int tx_retries;
- int tx_failed;
- int signal;
- int signal_ctl0;
- int signal_ctl1;
- float tx_bitrate;
- int tx_mcs;
- int tx_bw;
- char tx_gi1[32];
- char tx_gi2[32];
- float rx_bitrate;
- int rx_mcs;
- int rx_bw;
- char rx_gi1[32];
- char rx_gi2[32];
- } iw_field;
-
- char line[256];
-
- int i;
-
- if (argc < 2) {
- printf("Program requires an argument (filename)\n");
- return(-1);
- }
-
- file_id = fopen(argv[1],"r");
-
- if (file_id == NULL) {
- printf("Error opening file %s\n", argv[1]);
- return(-1);
- }
-
- i=0;
-
- while (~feof(file_id)) {
- fgets(line, 256, file_id);
-
- if (feof(file_id))
- break;
-
- sscanf(line,"%s %s %d %d:%d:%d GMT %d",
- iw_field.wday,
- iw_field.mon,
- &iw_field.day,
- &iw_field.hour,
- &iw_field.min,
- &iw_field.sec,
- &iw_field.year);
- fgets(line, 256, file_id);
- sscanf(line,"Station %s (on %s",
- iw_field.addr,
- iw_field.dev);
- fgets(line, 256, file_id);
- sscanf(line," inactive time: %d ms",
- &iw_field.inactive_time);
- fgets(line, 256, file_id);
- sscanf(line," rx bytes: %d",
- &iw_field.rx_bytes);
- fgets(line, 256, file_id);
- sscanf(line," rx packets: %d",
- &iw_field.rx_packets);
- fgets(line, 256, file_id);
- sscanf(line," tx bytes: %d",
- &iw_field.tx_bytes);
- fgets(line, 256, file_id);
- sscanf(line," tx packets: %d",
- &iw_field.tx_packets);
- fgets(line, 256, file_id);
- sscanf(line," tx retries: %d",
- &iw_field.tx_retries);
- fgets(line, 256, file_id);
- sscanf(line," tx failed: %d",
- &iw_field.tx_failed);
- fgets(line, 256, file_id);
- sscanf(line," signal: %d dBm",
- &iw_field.signal);
- fgets(line, 256, file_id);
- sscanf(line," signal_ctl0: %d dBm",
- &iw_field.signal_ctl0);
- fgets(line, 256, file_id);
- sscanf(line," signal_ctl1: %d dBm",
- &iw_field.signal_ctl1);
- fgets(line, 256, file_id);
- sscanf(line," tx bitrate: %e MBit/s MCS %d %dMhz %s %s",
- &iw_field.tx_bitrate,
- &iw_field.tx_mcs,
- &iw_field.tx_bw,
- iw_field.tx_gi1,
- iw_field.tx_gi2);
- fgets(line, 256, file_id);
- sscanf(line," rx bitrate: %e MBit/s MCS %d %dMhz %s %s",
- &iw_field.rx_bitrate,
- &iw_field.rx_mcs,
- &iw_field.rx_bw,
- iw_field.rx_gi1,
- iw_field.rx_gi2);
-
- //printf("read set %d, time %d:%d:%d\n",i,iw_field.hour,iw_field.min,iw_field.sec);
- if (i==0) {
- printf("num, date; inactive_time; rx_bytes; rx_packets; tx_bytes; tx_packets; tx_retries; tx_failed; signal; signal0; signal1; tx_bitrate; tx_mcs; rx_bitrate; rx_mcs\n");
- }
-
- printf("%d; %d-%s-%d %d:%d:%d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %e; %d; %e; %d\n",
- i,
- iw_field.day,
- iw_field.mon,
- iw_field.year,
- iw_field.hour,
- iw_field.min,
- iw_field.sec,
- iw_field.inactive_time,
- iw_field.rx_bytes,
- iw_field.rx_packets,
- iw_field.tx_bytes,
- iw_field.tx_packets,
- iw_field.tx_retries,
- iw_field.tx_failed,
- iw_field.signal,
- iw_field.signal_ctl0,
- iw_field.signal_ctl1,
- iw_field.tx_bitrate,
- iw_field.tx_mcs,
- iw_field.rx_bitrate,
- iw_field.rx_mcs);
-
- i=i+1;
- }
-
- fclose(file_id);
-
- return (0);
-}
diff --git a/openair1/EMOS/GUI/AUTHORS b/openair1/EMOS/GUI/AUTHORS
deleted file mode 100644
index 6890b9612f..0000000000
--- a/openair1/EMOS/GUI/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Leonardo Cardoso
diff --git a/openair1/EMOS/GUI/COPYING b/openair1/EMOS/GUI/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/GUI/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/GUI/ChangeLog b/openair1/EMOS/GUI/ChangeLog
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/openair1/EMOS/GUI/Doxyfile b/openair1/EMOS/GUI/Doxyfile
deleted file mode 100644
index 722c5e1841..0000000000
--- a/openair1/EMOS/GUI/Doxyfile
+++ /dev/null
@@ -1,275 +0,0 @@
-# Doxyfile 1.4.1-KDevelop
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = emos_gui.kdevelop
-PROJECT_NUMBER = 0.1
-OUTPUT_DIRECTORY =
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ABBREVIATE_BRIEF = "The $name class" \
- "The $name widget" \
- "The $name file" \
- is \
- provides \
- specifies \
- contains \
- represents \
- a \
- an \
- the
-ALWAYS_DETAILED_SEC = NO
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /homes/cardoso/Devel/openairinterface/emos_dump/
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = NO
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = NO
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-TAB_SIZE = 8
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = YES
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = YES
-GENERATE_TESTLIST = YES
-GENERATE_BUGLIST = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = YES
-SHOW_DIRECTORIES = YES
-FILE_VERSION_FILTER =
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = /homes/cardoso/Devel/openairinterface/emos_ofdm/emos_gui
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.idl \
- *.odl \
- *.cs \
- *.php \
- *.php3 \
- *.inc \
- *.m \
- *.mm \
- *.dox \
- *.C \
- *.CC \
- *.C++ \
- *.II \
- *.I++ \
- *.H \
- *.HH \
- *.H++ \
- *.CS \
- *.PHP \
- *.PHP3 \
- *.M \
- *.MM \
- *.C \
- *.H \
- *.tlh \
- *.diff \
- *.patch \
- *.moc \
- *.xpm \
- *.dox
-RECURSIVE = yes
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS = *
-EXAMPLE_RECURSIVE = NO
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION = YES
-VERBATIM_HEADERS = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 5
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = html
-HTML_FILE_EXTENSION = .html
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = NO
-ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = YES
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-USE_PDFLATEX = NO
-LATEX_BATCHMODE = NO
-LATEX_HIDE_INDICES = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = yes
-XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
-XML_PROGRAMLISTING = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = NO
-EXPAND_ONLY_PREDEF = NO
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED =
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE = emos_gui.tag
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = YES
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = NO
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-GROUP_GRAPHS = YES
-UML_LOOK = NO
-TEMPLATE_RELATIONS = NO
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-CALL_GRAPH = NO
-GRAPHICAL_HIERARCHY = YES
-DIRECTORY_GRAPH = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-MAX_DOT_GRAPH_DEPTH = 1000
-DOT_TRANSPARENT = NO
-DOT_MULTI_TARGETS = NO
-GENERATE_LEGEND = YES
-DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
diff --git a/openair1/EMOS/GUI/INSTALL b/openair1/EMOS/GUI/INSTALL
deleted file mode 100644
index 02a4a0740a..0000000000
--- a/openair1/EMOS/GUI/INSTALL
+++ /dev/null
@@ -1,167 +0,0 @@
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.in' is used to create `configure' by a program
-called `autoconf'. You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes a while. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Type `make install' to install the programs and any data files and
- documentation.
-
- 4. You can remove the program binaries and object files from the
- source code directory by typing `make clean'.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made.
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
diff --git a/openair1/EMOS/GUI/Makefile.am b/openair1/EMOS/GUI/Makefile.am
deleted file mode 100644
index 661f7a3c5e..0000000000
--- a/openair1/EMOS/GUI/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-# not a GNU package. You can remove this line, if
-# have all needed files, that a GNU package needs
-AUTOMAKE_OPTIONS = foreign 1.4
-
-SUBDIRS = src
-
-install_cbmimo1_softmodem_emos:
- make fifos
- insmod device_driver/openair_rf_softmodem_emos.ko ;
-
-remove_cbmimo1_emos:
- rmmod openair_rf
-
-fifos:
- @for i in `seq 0 64`;\
- do \
- have_rtfX=`ls /dev/ |grep -c rtf$$i`;\
- if test "$$have_rtfX" == 0 ;then \
- mknod -m 666 /dev/rtf$$i c 150 $$i; \
- fi;\
- done
-
-
diff --git a/openair1/EMOS/GUI/Makefile.cvs b/openair1/EMOS/GUI/Makefile.cvs
deleted file mode 100644
index d16070234d..0000000000
--- a/openair1/EMOS/GUI/Makefile.cvs
+++ /dev/null
@@ -1,8 +0,0 @@
-default: all
-
-all:
- aclocal
- autoheader
- automake
- autoconf
-
diff --git a/openair1/EMOS/GUI/Makefile.in b/openair1/EMOS/GUI/Makefile.in
deleted file mode 100644
index a38fe9ee93..0000000000
--- a/openair1/EMOS/GUI/Makefile.in
+++ /dev/null
@@ -1,595 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
- TODO config.guess config.sub depcomp install-sh ltmain.sh \
- missing mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-exec-recursive install-info-recursive \
- install-recursive installcheck-recursive installdirs-recursive \
- pdf-recursive ps-recursive uninstall-info-recursive \
- uninstall-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EXEEXT = @EXEEXT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-
-# not a GNU package. You can remove this line, if
-# have all needed files, that a GNU package needs
-AUTOMAKE_OPTIONS = foreign 1.4
-SUBDIRS = src
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-am--refresh:
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-
-config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) stamp-h1; \
- else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: $(am__configure_deps)
- cd $(top_srcdir) && $(AUTOHEADER)
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-uninstall-info-am:
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- mkdir $(distdir)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(mkdir_p) "$(distdir)/$$subdir" \
- || exit 1; \
- distdir=`$(am__cd) $(distdir) && pwd`; \
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
- (cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$top_distdir" \
- distdir="$$distdir/$$subdir" \
- distdir) \
- || exit 1; \
- fi; \
- done
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r $(distdir)
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && cd $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
-distuninstallcheck:
- @cd $(distuninstallcheck_dir) \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile config.h
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-recursive
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
- check-am clean clean-generic clean-recursive ctags \
- ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
- dist-tarZ dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-recursive distclean-tags \
- distcleancheck distdir distuninstallcheck dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive \
- mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-info-am
-
-
-install_cbmimo1_softmodem_emos:
- make fifos
- insmod device_driver/openair_rf_softmodem_emos.ko ;
-
-remove_cbmimo1_emos:
- rmmod openair_rf
-
-fifos:
- @for i in `seq 0 64`;\
- do \
- have_rtfX=`ls /dev/ |grep -c rtf$$i`;\
- if test "$$have_rtfX" == 0 ;then \
- mknod -m 666 /dev/rtf$$i c 150 $$i; \
- fi;\
- done
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/openair1/EMOS/GUI/NEWS b/openair1/EMOS/GUI/NEWS
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/openair1/EMOS/GUI/README b/openair1/EMOS/GUI/README
deleted file mode 100644
index b9d445efca..0000000000
--- a/openair1/EMOS/GUI/README
+++ /dev/null
@@ -1,4 +0,0 @@
-to compile run
-./src/make_links
-./configure
-make
\ No newline at end of file
diff --git a/openair1/EMOS/GUI/TODO b/openair1/EMOS/GUI/TODO
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/openair1/EMOS/GUI/config.guess b/openair1/EMOS/GUI/config.guess
deleted file mode 100755
index ad5281e66e..0000000000
--- a/openair1/EMOS/GUI/config.guess
+++ /dev/null
@@ -1,1466 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-08-03'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner .
-# Please send patches to . Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to ."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerppc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[45])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include
- #include
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- x86:Interix*:[34]*)
- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
- echo cris-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
- echo frv-unknown-linux-gnu
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- or32:Linux:*:*)
- echo or32-unknown-linux-gnu
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #ifdef __INTEL_COMPILER
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes .
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- *86) UNAME_PROCESSOR=i686 ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <
-# include
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
-cat >&2 < in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/openair1/EMOS/GUI/config.h.in b/openair1/EMOS/GUI/config.h.in
deleted file mode 100644
index 5a1898acfb..0000000000
--- a/openair1/EMOS/GUI/config.h.in
+++ /dev/null
@@ -1,55 +0,0 @@
-/* config.h.in. Generated from configure.in by autoheader. */
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the header file. */
-#undef HAVE_UNISTD_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
diff --git a/openair1/EMOS/GUI/config.sub b/openair1/EMOS/GUI/config.sub
deleted file mode 100755
index 1c366dfde9..0000000000
--- a/openair1/EMOS/GUI/config.sub
+++ /dev/null
@@ -1,1579 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-07-08'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to . Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to ."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | bfin \
- | c4x | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | fr30 | frv \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64vr | mips64vrel \
- | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | ms1 \
- | msp430 \
- | ns16k | ns32k \
- | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b \
- | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
- | we32k \
- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k)
- basic_machine=$basic_machine-unknown
- ;;
- m32c)
- basic_machine=$basic_machine-unknown
- ;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | ms1-* \
- | msp430-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tron-* \
- | v850-* | v850e-* | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa-* \
- | ymp-* \
- | z8k-*)
- ;;
- m32c-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16c)
- basic_machine=cr16c-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
- ;;
- decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
- ;;
- sei)
- basic_machine=mips-sei
- os=-seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tic55x | c55x*)
- basic_machine=tic55x-unknown
- os=-coff
- ;;
- tic6x | c6x*)
- basic_machine=tic6x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto-qnx*)
- ;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux-dietlibc)
- os=-linux-dietlibc
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -os400*)
- os=-os400
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -tpf*)
- os=-tpf
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -aros*)
- os=-aros
- ;;
- -kaos*)
- os=-kaos
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
- ;;
- *-ibm)
- os=-aix
- ;;
- *-knuth)
- os=-mmixware
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -os400*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -tpf*)
- vendor=ibm
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/openair1/EMOS/GUI/configure b/openair1/EMOS/GUI/configure
deleted file mode 100755
index 9fbc54ac83..0000000000
--- a/openair1/EMOS/GUI/configure
+++ /dev/null
@@ -1,4789 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
- if (eval ":") 2>/dev/null; then
- as_have_required=yes
-else
- as_have_required=no
-fi
-
- if test $as_have_required = yes && (eval ":
-(as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=\$LINENO
- as_lineno_2=\$LINENO
- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
- :
-else
- as_candidate_shells=
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- case $as_dir in
- /*)
- for as_base in sh bash ksh sh5; do
- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
- done;;
- esac
-done
-IFS=$as_save_IFS
-
-
- for as_shell in $as_candidate_shells $SHELL; do
- # Try only shells that exist, to save several forks.
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
- CONFIG_SHELL=$as_shell
- as_have_required=yes
- if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
- (exit $1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
- break
-fi
-
-fi
-
- done
-
- if test "x$CONFIG_SHELL" != x; then
- for as_var in BASH_ENV ENV
- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- done
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
- if test $as_have_required = no; then
- echo This script requires a shell more modern than all the
- echo shells that I found on your system. Please install a
- echo modern shell, or manually run the script under such a
- echo shell if you do have one.
- { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
- echo No shell found that supports shell functions.
- echo Please tell bug-autoconf@gnu.org about your system,
- echo including any error possibly output before this message.
- echo This can help us improve future autoconf versions.
- echo Configuration will now proceed without shell functions.
-}
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-exec 7<&0 &1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="configure.in"
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_dependency_tracking
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { $as_echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
- { (exit 1); exit 1; }; } ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; }
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- { $as_echo "$as_me: error: working directory cannot be determined" >&2
- { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
- { (exit 1); exit 1; }; }
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
- { (exit 1); exit 1; }; }
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L if you have libraries in a
- nonstandard directory
- LIBS libraries to pass to the linker, e.g. -l
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if
- you have headers in a nonstandard directory
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.63
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.63. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args '$ac_arg'"
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) $as_unset $ac_var ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test -r "$ac_site_file"; then
- { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-am__api_version="1.9"
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
-done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:$LINENO: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE=emos_gui
- VERSION=0.1
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compiler -v >&5") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
- fi
- fi
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_compiler_gnu=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- CFLAGS=""
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-#include
-#include
-#include
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_c89=$ac_arg
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:$LINENO: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-
-
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-
-if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-AM_PROG_LIBTOOL
-
-ac_config_files="$ac_config_files Makefile src/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) $as_unset $ac_var ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
- { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
- else
- { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-
-# Save the log message, to keep $[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.63. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTION]... [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to ."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.63,
- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2008 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- { $as_echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-
- *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp=
- trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} ||
-{
- $as_echo "$as_me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr='
'
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\).*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\).*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' >$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
- { (exit 1); exit 1; }; }
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_t=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_t"; then
- break
- elif $ac_last_try; then
- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
- { (exit 1); exit 1; }; }
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' >$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
- { (exit 1); exit 1; }; }
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
- { (exit 1); exit 1; }; };;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
- { (exit 1); exit 1; }; };;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- ac_file_inputs="$ac_file_inputs '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { as_dir="$ac_dir"
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; }
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
-
- rm -f "$tmp/stdin"
- case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
- esac \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
- } >"$tmp/config.h" \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; }
- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$tmp/config.h" "$ac_file" \
- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
- { (exit 1); exit 1; }; }
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-$as_echo "$as_me: error: could not create -" >&2;}
- { (exit 1); exit 1; }; }
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- "$ac_file" | "$ac_file":* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { as_dir=$dirpart/$fdir
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
-
- esac
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
- { (exit 1); exit 1; }; }
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/openair1/EMOS/GUI/configure.in b/openair1/EMOS/GUI/configure.in
deleted file mode 100644
index 9b640d8f88..0000000000
--- a/openair1/EMOS/GUI/configure.in
+++ /dev/null
@@ -1,10 +0,0 @@
-AC_INIT(configure.in)
-
-AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(emos_gui, 0.1)
-
-AC_LANG_C
-AC_PROG_CC
-AM_PROG_LIBTOOL
-
-AC_OUTPUT(Makefile src/Makefile)
diff --git a/openair1/EMOS/GUI/depcomp b/openair1/EMOS/GUI/depcomp
deleted file mode 100755
index 4c20c6c944..0000000000
--- a/openair1/EMOS/GUI/depcomp
+++ /dev/null
@@ -1,441 +0,0 @@
-#! /bin/sh
-
-# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva .
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-# `libtool' can also be set to `yes' or `no'.
-
-depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
- "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
- tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'. On the theory
-## that the space means something, we add a space to the output as
-## well.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like `#:fec' to the end of the
- # dependency line.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr '
-' ' ' >> $depfile
- echo >> $depfile
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> $depfile
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. This file always lives in the current directory.
- # Also, the AIX compiler puts `$object:' at the start of each line;
- # $object doesn't have directory information.
- stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
- tmpdepfile="$stripped.u"
- outname="$stripped.o"
- if test "$libtool" = yes; then
- "$@" -Wc,-M
- else
- "$@" -M
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
-
- if test -f "$tmpdepfile"; then
- # Each line is of the form `foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-icc)
- # Must come before tru64.
-
- # Intel's C compiler understands `-MD -MF file'. However
- # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want:
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
-
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-tru64)
- # The Tru64 AIX compiler uses -MD to generate dependencies as a side
- # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in `foo.d' instead, so we check for that too.
- # Subdirectories are respected.
-
- tmpdepfile1="$object.d"
- tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
- if test "$libtool" = yes; then
- "$@" -Wc,-MD
- else
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- else
- tmpdepfile="$tmpdepfile2"
- fi
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a space and a tab in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- test -z "$dashmflag" && dashmflag=-M
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*) # this is libtool, let us make it quiet
- for arg
- do # cycle over the arguments
- case "$arg" in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- # X makedepend
- (
- shift
- cleared=no
- for arg in "$@"; do
- case $cleared in no)
- set ""; shift
- cleared=yes
- esac
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift;;
- -*)
- ;;
- *)
- set fnord "$@" "$arg"; shift;;
- esac
- done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tail +3 "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" -E |
- sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/openair1/EMOS/GUI/emos_gui.kdevelop b/openair1/EMOS/GUI/emos_gui.kdevelop
deleted file mode 100644
index 5b85f23067..0000000000
--- a/openair1/EMOS/GUI/emos_gui.kdevelop
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
- Leonardo Cardoso
- sampaio@eurecom.fr
- 0.1
- KDevAutoProject
- C
-
- C
- Code
-
-
- .
- false
-
-
-
-
- src/emos_gui
- default
-
-
- src/emos_gui
- true
- executable
- /
- -n 4
- true
-
-
-
-
-
-
-
- optimized
- kdevgccoptions
- kdevgppoptions
- kdevg77options
- -O2 -g0
-
-
-
-
- -lforms
-
-
-
-
-
-
-
- --enable-debug=full
- debug
- kdevgccoptions
- kdevgppoptions
- kdevg77options
- -O0 -g3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- kdevgccoptions
- kdevgppoptions
- kdevg77options
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
- false
- 1
- false
-
- 0
-
-
-
-
- ada
- ada_bugs_gcc
- bash
- bash_bugs
- clanlib
- w3c-dom-level2-html
- fortran_bugs_gcc
- gnome1
- gnustep
- gtk
- gtk_bugs
- haskell
- haskell_bugs_ghc
- java_bugs_gcc
- java_bugs_sun
- kde2book
- libstdc++
- opengl
- pascal_bugs_fp
- php
- php_bugs
- perl
- perl_bugs
- python
- python_bugs
- qt-kdev3
- ruby
- ruby_bugs
- sdl
- stl
- w3c-svg
- sw
- w3c-uaag10
- wxwidgets_bugs
-
-
- Guide to the Qt Translation Tools
- Qt Assistant Manual
- Qt Designer Manual
- Qt Reference Documentation
- qmake User Guide
-
-
- KDE Libraries (Doxygen)
-
-
-
-
-
-
-
-
-
-
-
-
- false
- false
-
-
- *.o,*.lo,CVS
- false
-
-
-
-
- Doxygen Documentation Collection
- emos_gui.tag
-
-
-
- emos_gui
- emos_gui
- Emos_gui
- EMOS_GUI
- Leonardo Cardoso
-
- sampaio@eurecom.fr
- Custom
- -I/usr/include
- -lm
- 0.1
- 2007
- /homes/cardoso/Devel/openairinterface/emos_ofdm/emos_gui
-
-
-
- .h
- .cpp
-
-
-
-
- false
- 3
-
-
-
- true
- true
- true
- false
- true
- true
- true
- 250
- 400
- 250
-
-
-
- set
- m_,_
- theValue
- true
- true
-
-
-
-
-
- -n 4
-
- libtool
-
-
-
- true
- true
- false
-
-
- false
- true
- 10
-
-
-
diff --git a/openair1/EMOS/GUI/install-sh b/openair1/EMOS/GUI/install-sh
deleted file mode 100755
index 36f96f3e03..0000000000
--- a/openair1/EMOS/GUI/install-sh
+++ /dev/null
@@ -1,276 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd=$cpprog
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd=$stripprog
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "$0: no input file specified" >&2
- exit 1
-else
- :
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d "$dst" ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f "$src" ] || [ -d "$src" ]
- then
- :
- else
- echo "$0: $src does not exist" >&2
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "$0: no destination specified" >&2
- exit 1
- else
- :
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d "$dst" ]
- then
- dst=$dst/`basename "$src"`
- else
- :
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
- '
-IFS="${IFS-$defaultIFS}"
-
-oIFS=$IFS
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS=$oIFS
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp=$pathcomp$1
- shift
-
- if [ ! -d "$pathcomp" ] ;
- then
- $mkdirprog "$pathcomp"
- else
- :
- fi
-
- pathcomp=$pathcomp/
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd "$dst" &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename "$dst"`
- else
- dstfile=`basename "$dst" $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename "$dst"`
- else
- :
- fi
-
-# Make a couple of temp file names in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
- rmtmp=$dstdir/#rm.$$#
-
-# Trap to clean up temp files at exit.
-
- trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
- trap '(exit $?); exit' 1 2 13 15
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd "$src" "$dsttmp" &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
-
-# Now remove or move aside any old file at destination location. We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons. In this case, the final cleanup
-# might fail but the new file should still install successfully.
-
-{
- if [ -f "$dstdir/$dstfile" ]
- then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
- $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
- {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
- }
- else
- :
- fi
-} &&
-
-# Now rename the file to the real destination.
-
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-
-fi &&
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-
-{
- (exit 0); exit
-}
diff --git a/openair1/EMOS/GUI/ltmain.sh b/openair1/EMOS/GUI/ltmain.sh
deleted file mode 100644
index b36e997fea..0000000000
--- a/openair1/EMOS/GUI/ltmain.sh
+++ /dev/null
@@ -1,6343 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit , 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell, and then maybe $echo will work.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-win32_libid () {
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
- grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
- win32_nmres=`eval $NM -f posix -A $1 | \
- sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
- if test "X$win32_nmres" = "Ximport" ; then
- win32_libid_type="x86 archive import"
- else
- win32_libid_type="x86 archive static"
- fi
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $echo $win32_libid_type
-}
-
-# End of Shell function definitions
-#####################################
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
- arg="$1"
- shift
-
- case $arg in
- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
- esac
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- execute_dlfiles)
- execute_dlfiles="$execute_dlfiles $arg"
- ;;
- tag)
- tagname="$arg"
-
- # Check whether tagname contains only valid characters
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- $echo "$progname: invalid tag name: $tagname" 1>&2
- exit 1
- ;;
- esac
-
- case $tagname in
- CC)
- # Don't test for the "default" C tag, as we know, it's there, but
- # not specially marked.
- ;;
- *)
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
- taglist="$taglist $tagname"
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
- else
- $echo "$progname: ignoring unknown tag $tagname" 1>&2
- fi
- ;;
- esac
- ;;
- *)
- eval "$prev=\$arg"
- ;;
- esac
-
- prev=
- prevopt=
- continue
- fi
-
- # Have we seen a non-optional argument yet?
- case $arg in
- --help)
- show_help=yes
- ;;
-
- --version)
- $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
- $echo
- $echo "Copyright (C) 2003 Free Software Foundation, Inc."
- $echo "This is free software; see the source for copying conditions. There is NO"
- $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
- exit 0
- ;;
-
- --config)
- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
- done
- exit 0
- ;;
-
- --debug)
- $echo "$progname: enabling shell trace mode"
- set -x
- ;;
-
- --dry-run | -n)
- run=:
- ;;
-
- --features)
- $echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- $echo "enable shared libraries"
- else
- $echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- $echo "enable static libraries"
- else
- $echo "disable static libraries"
- fi
- exit 0
- ;;
-
- --finish) mode="finish" ;;
-
- --mode) prevopt="--mode" prev=mode ;;
- --mode=*) mode="$optarg" ;;
-
- --preserve-dup-deps) duplicate_deps="yes" ;;
-
- --quiet | --silent)
- show=:
- ;;
-
- --tag) prevopt="--tag" prev=tag ;;
- --tag=*)
- set tag "$optarg" ${1+"$@"}
- shift
- prev=tag
- ;;
-
- -dlopen)
- prevopt="-dlopen"
- prev=execute_dlfiles
- ;;
-
- -*)
- $echo "$modename: unrecognized option \`$arg'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-
- *)
- nonopt="$arg"
- break
- ;;
- esac
-done
-
-if test -n "$prevopt"; then
- $echo "$modename: option \`$prevopt' requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
-fi
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-if test -z "$show_help"; then
-
- # Infer the operation mode.
- if test -z "$mode"; then
- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
- $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
- case $nonopt in
- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
- mode=link
- for arg
- do
- case $arg in
- -c)
- mode=compile
- break
- ;;
- esac
- done
- ;;
- *db | *dbx | *strace | *truss)
- mode=execute
- ;;
- *install*|cp|mv)
- mode=install
- ;;
- *rm)
- mode=uninstall
- ;;
- *)
- # If we have no mode, but dlfiles were specified, then do execute mode.
- test -n "$execute_dlfiles" && mode=execute
-
- # Just use the default operation mode.
- if test -z "$mode"; then
- if test -n "$nonopt"; then
- $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
- else
- $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
- fi
- fi
- ;;
- esac
- fi
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$execute_dlfiles" && test "$mode" != execute; then
- $echo "$modename: unrecognized option \`-dlopen'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$modename --help --mode=$mode' for more information."
-
- # These modes are in order of execution frequency so that they run quickly.
- case $mode in
- # libtool compile mode
- compile)
- modename="$modename: compile"
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_output=
- arg_mode=normal
- libobj=
-
- for arg
- do
- case "$arg_mode" in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- if test -n "$libobj" ; then
- $echo "$modename: you cannot specify \`-o' more than once" 1>&2
- exit 1
- fi
- arg_mode=target
- continue
- ;;
-
- -static)
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
-
- # Double-quote args containing other shell metacharacters.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- lastarg="$lastarg $arg"
- done
- IFS="$save_ifs"
- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
- # Add the arguments to base_compile.
- base_compile="$base_compile $lastarg"
- continue
- ;;
-
- * )
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
- case $lastarg in
- # Double-quote args containing other shell metacharacters.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- lastarg="\"$lastarg\""
- ;;
- esac
-
- base_compile="$base_compile $lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- $echo "$modename: you must specify an argument for -Xcompile"
- exit 1
- ;;
- target)
- $echo "$modename: you must specify a target with \`-o'" 1>&2
- exit 1
- ;;
- *)
- # Get the name of the library object.
- [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- xform='[cCFSifmso]'
- case $libobj in
- *.ada) xform=ada ;;
- *.adb) xform=adb ;;
- *.ads) xform=ads ;;
- *.asm) xform=asm ;;
- *.c++) xform=c++ ;;
- *.cc) xform=cc ;;
- *.ii) xform=ii ;;
- *.class) xform=class ;;
- *.cpp) xform=cpp ;;
- *.cxx) xform=cxx ;;
- *.f90) xform=f90 ;;
- *.for) xform=for ;;
- *.java) xform=java ;;
- esac
-
- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
- case $libobj in
- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
- *)
- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
- exit 1
- ;;
- esac
-
- # Infer tagged configuration to use if any are available and
- # if one wasn't chosen via the "--tag" command line option.
- # Only attempt this if the compiler in the base compile
- # command doesn't match the default compiler.
- if test -n "$available_tags" && test -z "$tagname"; then
- case $base_compile in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
- case "$base_compile " in
- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- $echo "$modename: unable to infer tagged configuration"
- $echo "$modename: specify a tag with \`--tag'" 1>&2
- exit 1
-# else
-# $echo "$modename: using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-
- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$obj"; then
- xdir=
- else
- xdir=$xdir/
- fi
- lobj=${xdir}$objdir/$objname
-
- if test -z "$base_compile"; then
- $echo "$modename: you must specify a compilation command" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- $run $rm $removelist
- trap "$run $rm $removelist; exit 1" 1 2 15
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- removelist="$removelist $output_obj $lockfile"
- trap "$run $rm $removelist; exit 1" 1 2 15
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $run ln "$0" "$lockfile" 2>/dev/null; do
- $show "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
- $echo $srcfile > "$lockfile"
- fi
-
- if test -n "$fix_srcfile_path"; then
- eval srcfile=\"$fix_srcfile_path\"
- fi
-
- $run $rm "$libobj" "${libobj}T"
-
- # Create a libtool object file (analogous to a ".la" file),
- # but don't create it if we're doing a dry run.
- test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then
- $echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- $show "$mv $output_obj $lobj"
- if $run $mv $output_obj $lobj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # Append the name of the PIC object to the libtool object file.
- test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then
- $echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- $show "$mv $output_obj $obj"
- if $run $mv $output_obj $obj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # Append the name of the non-PIC object the libtool object file.
- # Only append if the libtool object file exists.
- test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- else
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- fi
- build_libtool_libs=no
- build_old_libs=yes
- prefer_static_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- base_compile="$base_compile $arg"
- shift
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
- ;;
- *) qarg=$arg ;;
- esac
- libtool_args="$libtool_args $qarg"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- compile_command="$compile_command @OUTPUT@"
- finalize_command="$finalize_command @OUTPUT@"
- ;;
- esac
-
- case $prev in
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- compile_command="$compile_command @SYMFILE@"
- finalize_command="$finalize_command @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- else
- dlprefiles="$dlprefiles $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- if test ! -f "$arg"; then
- $echo "$modename: symbol file \`$arg' does not exist"
- exit 1
- fi
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat $save_arg`
- do
-# moreargs="$moreargs $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- # If there is no directory component, then add one.
- case $arg in
- */* | *\\*) . $arg ;;
- *) . ./$arg ;;
- esac
-
- if test -z "$pic_object" || \
- test -z "$non_pic_object" ||
- test "$pic_object" = none && \
- test "$non_pic_object" = none; then
- $echo "$modename: cannot find name of object for \`$arg'" 1>&2
- exit 1
- fi
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- dlfiles="$dlfiles $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles $pic_object"
- prev=
- fi
-
- # A PIC object.
- libobjs="$libobjs $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- non_pic_objects="$non_pic_objects $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- fi
- else
- # Only an error if not doing a dry-run.
- if test -z "$run"; then
- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
- exit 1
- else
- # Dry-run case.
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
- libobjs="$libobjs $pic_object"
- non_pic_objects="$non_pic_objects $non_pic_object"
- fi
- fi
- done
- else
- $echo "$modename: link input file \`$save_arg' does not exist"
- exit 1
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
- exit 1
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) rpath="$rpath $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) xrpath="$xrpath $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- xcompiler)
- compiler_flags="$compiler_flags $qarg"
- prev=
- compile_command="$compile_command $qarg"
- finalize_command="$finalize_command $qarg"
- continue
- ;;
- xlinker)
- linker_flags="$linker_flags $qarg"
- compiler_flags="$compiler_flags $wl$qarg"
- prev=
- compile_command="$compile_command $wl$qarg"
- finalize_command="$finalize_command $wl$qarg"
- continue
- ;;
- xcclinker)
- linker_flags="$linker_flags $qarg"
- compiler_flags="$compiler_flags $qarg"
- prev=
- compile_command="$compile_command $qarg"
- finalize_command="$finalize_command $qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- compile_command="$compile_command $link_static_flag"
- finalize_command="$finalize_command $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
- continue
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: more than one -exported-symbols argument is not allowed"
- exit 1
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
- exit 1
- fi
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "*) ;;
- *)
- deplibs="$deplibs -L$dir"
- lib_search_path="$lib_search_path $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$dir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-pw32* | *-*-beos*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-freebsd*-gnu*)
- # prevent being parsed by the freebsd regexp below
- ;;
- *-*-mingw* | *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- deplibs="$deplibs -framework System"
- continue
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-freebsd*-gnu*)
- # prevent being parsed by the freebsd regexp below
- ;;
- *-*-openbsd*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- deplibs="$deplibs $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # gcc -m* arguments should be passed to the linker via $compiler_flags
- # in order to pass architecture information to the linker
- # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo
- # but this is not reliable with gcc because gcc may use -mfoo to
- # select a different linker, different libraries, etc, while
- # -Wl,-mfoo simply passes -mfoo to the linker.
- -m*)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- if test "$with_gcc" = "yes" ; then
- compiler_flags="$compiler_flags $arg"
- fi
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- # The PATH hackery in wrapper scripts is required on Windows
- # in order for the loader to find any dlls it needs.
- $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
- $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
- exit 1
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- continue
- ;;
-
- -static)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -Wc,*)
- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- case $flag in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- flag="\"$flag\""
- ;;
- esac
- arg="$arg $wl$flag"
- compiler_flags="$compiler_flags $flag"
- done
- IFS="$save_ifs"
- arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
- ;;
-
- -Wl,*)
- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- case $flag in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- flag="\"$flag\""
- ;;
- esac
- arg="$arg $wl$flag"
- compiler_flags="$compiler_flags $wl$flag"
- linker_flags="$linker_flags $flag"
- done
- IFS="$save_ifs"
- arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- add_flags="$add_flags $arg"
- ;;
-
- *.$objext)
- # A standard object.
- objs="$objs $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- # If there is no directory component, then add one.
- case $arg in
- */* | *\\*) . $arg ;;
- *) . ./$arg ;;
- esac
-
- if test -z "$pic_object" || \
- test -z "$non_pic_object" ||
- test "$pic_object" = none && \
- test "$non_pic_object" = none; then
- $echo "$modename: cannot find name of object for \`$arg'" 1>&2
- exit 1
- fi
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- dlfiles="$dlfiles $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles $pic_object"
- prev=
- fi
-
- # A PIC object.
- libobjs="$libobjs $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- non_pic_objects="$non_pic_objects $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- fi
- else
- # Only an error if not doing a dry-run.
- if test -z "$run"; then
- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
- exit 1
- else
- # Dry-run case.
-
- # Extract subdirectory from the argument.
- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$arg"; then
- xdir=
- else
- xdir="$xdir/"
- fi
-
- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
- libobjs="$libobjs $pic_object"
- non_pic_objects="$non_pic_objects $non_pic_object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- deplibs="$deplibs $arg"
- old_deplibs="$old_deplibs $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- dlfiles="$dlfiles $arg"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- dlprefiles="$dlprefiles $arg"
- prev=
- else
- deplibs="$deplibs $arg"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
- add_flags="$add_flags $arg"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- fi
- done # argument parsing loop
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Infer tagged configuration to use if any are available and
- # if one wasn't chosen via the "--tag" command line option.
- # Only attempt this if the compiler in the base link
- # command doesn't match the default compiler.
- if test -n "$available_tags" && test -z "$tagname"; then
- case $base_compile in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
- case $base_compile in
- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
- # The compiler in $compile_command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- $echo "$modename: unable to infer tagged configuration"
- $echo "$modename: specify a tag with \`--tag'" 1>&2
- exit 1
-# else
-# $echo "$modename: using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$output_objdir" = "X$output"; then
- output_objdir="$objdir"
- else
- output_objdir="$output_objdir/$objdir"
- fi
- # Create the object directory.
- if test ! -d "$output_objdir"; then
- $show "$mkdir $output_objdir"
- $run $mkdir $output_objdir
- status=$?
- if test "$status" -ne 0 && test ! -d "$output_objdir"; then
- exit $status
- fi
- fi
-
- # Determine the type of output
- case $output in
- "")
- $echo "$modename: you must specify an output file" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- case $host in
- *cygwin* | *mingw* | *pw32*)
- # don't eliminate duplcations in $postdeps and $predeps
- duplicate_compiler_generated_deps=yes
- ;;
- *)
- duplicate_compiler_generated_deps=$duplicate_deps
- ;;
- esac
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- libs="$libs $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
- esac
- pre_post_deps="$pre_post_deps $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
- case $linkmode in
- lib)
- passes="conv link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
- exit 1
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
- for pass in $passes; do
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
- esac
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
- continue
- fi
- if test "$pass" = conv && test "$allow_undefined" = yes; then
- deplibs="$deplib $deplibs"
- continue
- fi
- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
- for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
- for search_ext in .la $shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if (${SED} -e '2q' $lib |
- grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- library_names=
- old_library=
- case $lib in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
- test "X$ladir" = "X$lib" && ladir="."
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- ;;
- *)
- $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la) lib="$deplib" ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- if test "$deplibs_check_method" != pass_all; then
- $echo
- $echo "*** Warning: Trying to link with static lib archive $deplib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because the file extensions .$libext of this argument makes me believe"
- $echo "*** that it is just a static archive that I should not used here."
- else
- $echo
- $echo "*** Warning: Linking the shared library $output against the"
- $echo "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- newdlprefiles="$newdlprefiles $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- newdlfiles="$newdlfiles $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
- if test "$found" = yes || test -f "$lib"; then :
- else
- $echo "$modename: cannot find the library \`$lib'" 1>&2
- exit 1
- fi
-
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- exit 1
- fi
-
- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
- test "X$ladir" = "X$lib" && ladir="."
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
-
- # Read the .la file
- case $lib in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- tmp_libs=
- for deplib in $dependency_libs; do
- #echo "Adding $deplib to \$deplibs"
- deplibs="$deplib $deplibs"
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
- exit 1
- fi
- # It is a libtool convenience library, so add in its objects.
- convenience="$convenience $ladir/$objdir/$old_library"
- old_convenience="$old_convenience $ladir/$objdir/$old_library"
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- $echo "$modename: \`$lib' is not a convenience library" 1>&2
- exit 1
- fi
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- for l in $old_library $library_names; do
- linklib="$l"
- done
- if test -z "$linklib"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
- exit 1
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
- exit 1
- fi
- if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- dlprefiles="$dlprefiles $lib $dependency_libs"
- else
- newdlfiles="$newdlfiles $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
- abs_ladir="$ladir"
- fi
- ;;
- esac
- laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- $echo "$modename: warning: library \`$lib' was moved." 1>&2
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$libdir"
- absdir="$libdir"
- fi
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- notinst_path="$notinst_path $abs_ladir"
- fi # $installed = yes
- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir"; then
- $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
- exit 1
- fi
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- newdlprefiles="$newdlprefiles $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- newdlprefiles="$newdlprefiles $dir/$dlname"
- else
- newdlprefiles="$newdlprefiles $dir/$linklib"
- fi
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- newlib_search_path="$newlib_search_path $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var"; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath " in
- *" $dir "*) ;;
- *" $absdir "*) ;;
- *) temp_rpath="$temp_rpath $dir" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
- if test "$installed" = no; then
- notinst_deplibs="$notinst_deplibs $lib"
- need_relink=yes
- fi
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some systems (darwin)
- if test "$shouldnotlink" = yes && test "$pass" = link ; then
- $echo
- if test "$linkmode" = prog; then
- $echo "*** Warning: Linking the executable $output against the loadable module"
- else
- $echo "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $echo "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- realname="$2"
- shift; shift
- libname=`eval \\$echo \"$libname_spec\"`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw*)
- major=`expr $current - $age`
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
- newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- $show "extracting exported symbol list from \`$soname'"
- save_ifs="$IFS"; IFS='~'
- eval cmds=\"$extract_expsyms_cmds\"
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- $show "generating import library for \`$soname'"
- save_ifs="$IFS"; IFS='~'
- eval cmds=\"$old_archive_from_expsyms_cmds\"
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5* ) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a module then we can not link against it, someone
- # is ignoring the new warnings I added
- if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
- $echo "** Warning, lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- $echo
- $echo "** And there doesn't seem to be a static archive available"
- $echo "** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$dir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case "$libdir" in
- [\\/]*)
- add_dir="-L$inst_prefix_dir$libdir $add_dir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- $echo "$modename: configuration error: unsupported hardcode properties"
- exit 1
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes && \
- test "$hardcode_minus_L" != yes && \
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case "$libdir" in
- [\\/]*)
- add_dir="-L$inst_prefix_dir$libdir $add_dir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- $echo
- $echo "*** Warning: This system can not link to static lib archive $lib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- $echo "*** But as you try to build a module library, libtool will still create "
- $echo "*** a static module, that should work as long as the dlopening application"
- $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- $echo
- $echo "*** However, this would only work if libtool was able to extract symbol"
- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- $echo "*** not find such a program. So, this module is probably useless."
- $echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- convenience="$convenience $dir/$old_library"
- old_convenience="$old_convenience $dir/$old_library"
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- #if test -n "$dependency_libs" &&
- # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
- # test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) xrpath="$xrpath $temp_xrpath";;
- esac;;
- *) temp_deplibs="$temp_deplibs $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- #fi
-
- newlib_search_path="$newlib_search_path $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- if test "X$duplicate_deps" = "Xyes" ; then
- case "$tmp_libs " in
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
- esac
- fi
- tmp_libs="$tmp_libs $deplib"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$deplib" && dir="."
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
- absdir="$dir"
- fi
- ;;
- esac
- if grep "^installed=no" $deplib > /dev/null; then
- path="$absdir/$objdir"
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- if test -z "$libdir"; then
- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- if test "$absdir" != "$libdir"; then
- # Sure, some shells/systems don't implement the -ef.
- # Those will have to live with the warning.
- test "$absdir" -ef "$libdir" > /dev/null 2>&1 ||
- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
- fi
- path="$absdir"
- fi
- depdepl=
- case $host in
- *-*-darwin*)
- # we do not want to link against static libs, but need to link against shared
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$path/$depdepl" ; then
- depdepl="$path/$depdepl"
- fi
- # do not add paths which are already there
- case " $newlib_search_path " in
- *" $path "*) ;;
- *) newlib_search_path="$newlib_search_path $path";;
- esac
- path=""
- fi
- ;;
- *)
- path="-L$path"
- ;;
- esac
-
- ;;
- -l*)
- case $host in
- *-*-darwin*)
- # Again, we only want to link against shared libraries
- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
- for tmp in $newlib_search_path ; do
- if test -f "$tmp/lib$tmp_libs.dylib" ; then
- eval depdepl="$tmp/lib$tmp_libs.dylib"
- break
- fi
- done
- path=""
- ;;
- *) continue ;;
- esac
- ;;
- *) continue ;;
- esac
- case " $deplibs " in
- *" $depdepl "*) ;;
- *) deplibs="$deplibs $depdepl" ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$deplibs $path" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) lib_search_path="$lib_search_path $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) tmp_libs="$tmp_libs $deplib" ;;
- esac
- ;;
- *) tmp_libs="$tmp_libs $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- tmp_libs="$tmp_libs $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
- fi
-
- if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
- fi
-
- if test -n "$xrpath"; then
- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
- fi
-
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
- fi
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- objs="$objs$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
- eval shared_ext=\"$shrext\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- if test "$module" = no; then
- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
- eval shared_ext=\"$shrext\"
- eval libname=\"$libname_spec\"
- else
- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
- exit 1
- else
- $echo
- $echo "*** Warning: Linking the shared library $output against the non-libtool"
- $echo "*** objects $objs is not portable!"
- libobjs="$libobjs $objs"
- fi
- fi
-
- if test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
- fi
-
- set dummy $rpath
- if test "$#" -gt 2; then
- $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
- fi
- install_libdir="$2"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
- fi
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- IFS="$save_ifs"
-
- if test -n "$8"; then
- $echo "$modename: too many parameters to \`-version-info'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$2"
- number_minor="$3"
- number_revision="$4"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- darwin|linux|osf|windows)
- current=`expr $number_major + $number_minor`
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- current=`expr $number_major + $number_minor - 1`
- age="$number_minor"
- revision="$number_minor"
- ;;
- esac
- ;;
- no)
- current="$2"
- revision="$3"
- age="$4"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
- *)
- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- case $revision in
- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
- *)
- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- case $age in
- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
- *)
- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- major=.`expr $current - $age`
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- minor_current=`expr $current + 1`
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current";
- ;;
-
- irix | nonstopux)
- major=`expr $current - $age + 1`
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- iface=`expr $revision - $loop`
- loop=`expr $loop - 1`
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux)
- major=.`expr $current - $age`
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- major=.`expr $current - $age`
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- iface=`expr $current - $loop`
- loop=`expr $loop - 1`
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- verstring="$verstring:${current}.0"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- major=`expr $current - $age`
- versuffix="-$major"
- ;;
-
- *)
- $echo "$modename: unknown library version type \`$version_type'" 1>&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
- fi
-
- if test "$mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$echo "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- removelist="$removelist $p"
- ;;
- *) ;;
- esac
- done
- if test -n "$removelist"; then
- $show "${rm}r $removelist"
- $run ${rm}r $removelist
- fi
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- for path in $notinst_path; do
- lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
- deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
- dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
- done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- temp_xrpath="$temp_xrpath -R$libdir"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) dlfiles="$dlfiles $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) dlprefiles="$dlprefiles $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- deplibs="$deplibs -framework System"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-freebsd*-gnu*)
- # Prevent $arg from being parsed by the freebsd regexp below.
- if test "$build_libtool_need_lc" = "yes"; then
- deplibs="$deplibs -lc"
- fi
- ;;
- *-*-openbsd* | *-*-freebsd*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- deplibs="$deplibs -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $rm conftest.c
- cat > conftest.c </dev/null`
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null \
- | grep " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
- | ${SED} 10q \
- | $EGREP "$file_magic_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- $echo
- $echo "*** Warning: linker path does not have real file for library $a_deplib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $echo "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $echo "*** with $libname and none of the candidates passed a file format test"
- $echo "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- else
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- fi
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method
- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
- for a_deplib in $deplibs; do
- name="`expr $a_deplib : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test -n "$name" && test "$name" != "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval $echo \"$potent_lib\" 2>/dev/null \
- | ${SED} 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- $echo
- $echo "*** Warning: linker path does not have real file for library $a_deplib."
- $echo "*** I have the capability to make that library automatically link in when"
- $echo "*** you link to this library. But I can only do this if you have a"
- $echo "*** shared version of the library, which you do not appear to have"
- $echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $echo "*** with $libname and none of the candidates passed a file format test"
- $echo "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- else
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- fi
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
- -e 's/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
- done
- fi
- if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
- | grep . >/dev/null; then
- $echo
- if test "X$deplibs_check_method" = "Xnone"; then
- $echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- $echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- $echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- fi
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- $echo
- $echo "*** Warning: libtool could not satisfy all declared inter-library"
- $echo "*** dependencies of module $libname. Therefore, libtool will create"
- $echo "*** a static module, that should work as long as the dlopening"
- $echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- $echo
- $echo "*** However, this would only work if libtool was able to extract symbol"
- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- $echo "*** not find such a program. So, this module is probably useless."
- $echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- $echo "*** The inter-library dependencies that have been dropped here will be"
- $echo "*** automatically added whenever a program is linked with this library"
- $echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- $echo
- $echo "*** Since this library must not contain undefined symbols,"
- $echo "*** because either the platform does not support them or"
- $echo "*** it was explicitly requested with -no-undefined,"
- $echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- dep_rpath="$dep_rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- if test -n "$hardcode_libdir_flag_spec_ld"; then
- eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
- else
- eval dep_rpath=\"$hardcode_libdir_flag_spec\"
- fi
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- realname="$2"
- shift; shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- for link
- do
- linknames="$linknames $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- $show "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $run $rm $export_symbols
- eval cmds=\"$export_symbols_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- if len=`expr "X$cmd" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- $show "$cmd"
- $run eval "$cmd" || exit $?
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- $show "using reloadable object file for export list..."
- skipped_export=:
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex"; then
- $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
- $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- $show "$mv \"${export_symbols}T\" \"$export_symbols\""
- $run eval '$mv "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- tmp_deplibs="$tmp_deplibs $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "$mkdir $gentop"
- $run $mkdir "$gentop"
- status=$?
- if test "$status" -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case $xlib in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "$mkdir $xdir"
- $run $mkdir "$xdir"
- status=$?
- if test "$status" -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- # We will extract separately just the conflicting names and we will no
- # longer touch any unique names. It is faster to leave these extract
- # automatically by $AR in one run.
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $AR t "$xabs" | sort | uniq -cd | while read -r count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
- i=`expr $i + 1`
- done
- done
- fi
-
- libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
- done
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- linker_flags="$linker_flags $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$mode" = relink; then
- $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
- fi
-
- # Add all flags from the command line. We here create a library,
- # but those flags were only added to compile_command and
- # finalize_command, which are only used when creating executables.
- # So do it by hand here.
- compiler_flags="$compiler_flags $add_flags"
- # Only add it to commands which use CC, instead of LD, i.e.
- # only to $compiler_flags
- #linker_flags="$linker_flags $add_flags"
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval cmds=\"$module_expsym_cmds\"
- else
- eval cmds=\"$module_cmds\"
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval cmds=\"$archive_expsym_cmds\"
- else
- eval cmds=\"$archive_cmds\"
- fi
- fi
-
- if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise.
- $echo "creating reloadable object files..."
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- delfiles=
- last_robj=
- k=1
- output=$output_objdir/$save_output-${k}.$objext
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- eval test_cmds=\"$reload_cmds $objlist $last_robj\"
- if test "X$objlist" = X ||
- { len=`expr "X$test_cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len"; }; then
- objlist="$objlist $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
- fi
- last_robj=$output_objdir/$save_output-${k}.$objext
- k=`expr $k + 1`
- output=$output_objdir/$save_output-${k}.$objext
- objlist=$obj
- len=1
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
- if ${skipped_export-false}; then
- $show "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $run $rm $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
- fi
-
- # Set up a command to remove the reloadale object files
- # after they are used.
- i=0
- while test "$i" -lt "$k"
- do
- i=`expr $i + 1`
- delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
- done
-
- $echo "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval cmds=\"$archive_expsym_cmds\"
- else
- eval cmds=\"$archive_cmds\"
- fi
-
- # Append the command to remove the reloadable object files
- # to the just-reset $cmds.
- eval cmds=\"\$cmds~$rm $delfiles\"
- fi
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$mode" = relink; then
- $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
- exit 0
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
- $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
- fi
-
- if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
- fi
-
- if test -n "$xrpath"; then
- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
- fi
-
- case $output in
- *.lo)
- if test -n "$objs$old_deplibs"; then
- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
- exit 1
- fi
- libobj="$output"
- obj=`$echo "X$output" | $Xsed -e "$lo2o"`
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $run $rm $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${obj}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "$mkdir $gentop"
- $run $mkdir "$gentop"
- status=$?
- if test "$status" -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case $xlib in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "$mkdir $xdir"
- $run $mkdir "$xdir"
- status=$?
- if test "$status" -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- # We will extract separately just the conflicting names and we will no
- # longer touch any unique names. It is faster to leave these extract
- # automatically by $AR in one run.
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $AR t "$xabs" | sort | uniq -cd | while read -r count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
- i=`expr $i + 1`
- done
- done
- fi
-
- reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
- done
- fi
- fi
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- eval cmds=\"$reload_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- exit 0
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $run eval "echo timestamp > $libobj" || exit $?
- exit 0
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- eval cmds=\"$reload_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- exit 0
- ;;
-
- prog)
- case $host in
- *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
- esac
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
- fi
-
- if test "$preload" = yes; then
- if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
- test "$dlopen_self_static" = unknown; then
- $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
- fi
- fi
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
- ;;
- esac
-
- case $host in
- *darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- if test "$tagname" = CXX ; then
- compile_command="$compile_command ${wl}-bind_at_load"
- finalize_command="$finalize_command ${wl}-bind_at_load"
- fi
- ;;
- esac
-
- compile_command="$compile_command $compile_deplibs"
- finalize_command="$finalize_command $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$libdir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- fi
-
- dlsyms=
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- dlsyms="${outputname}S.c"
- else
- $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
- fi
- fi
-
- if test -n "$dlsyms"; then
- case $dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${outputname}.nm"
-
- $show "$rm $nlist ${nlist}S ${nlist}T"
- $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
- # Parse the name list into a source file.
- $show "creating $output_objdir/$dlsyms"
-
- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- $show "generating symbol list for \`$output'"
-
- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- for arg in $progfiles; do
- $show "extracting global C symbols from \`$arg'"
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- $run eval '$mv "$nlist"T "$nlist"'
- fi
-
- if test -n "$export_symbols_regex"; then
- $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- $run eval '$mv "$nlist"T "$nlist"'
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$output.exp"
- $run $rm $export_symbols
- $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- else
- $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
- $run eval 'mv "$nlist"T "$nlist"'
- fi
- fi
-
- for arg in $dlprefiles; do
- $show "extracting global C symbols from \`$arg'"
- name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
- $run eval '$echo ": $name " >> "$nlist"'
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -z "$run"; then
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $mv "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if grep -v "^: " < "$nlist" |
- if sort -k 3 /dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- grep -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
- else
- $echo '/* NONE */' >> "$output_objdir/$dlsyms"
- fi
-
- $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
- $echo >> "$output_objdir/$dlsyms" "\
- {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- fi
-
- pic_flag_for_symtable=
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- case "$compile_command " in
- *" -static "*) ;;
- *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
- esac;;
- *-*-hpux*)
- case "$compile_command " in
- *" -static "*) ;;
- *) pic_flag_for_symtable=" $pic_flag";;
- esac
- esac
-
- # Now compile the dynamic symbol file.
- $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
- $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
- # Clean up the generated files.
- $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
- $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
- # Transform the symbol file into the correct name.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
- ;;
- *)
- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
- exit 1
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
- fi
-
- # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
- # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
- # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
- # This does not apply on AIX for ia64, which uses a SysV linker.
- case "$host" in
- ia64-*-aix5*) ;;
- *-*-aix4* | *-*-aix5*)
- compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
- finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
- esac
-
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- # Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- $show "$link_command"
- $run eval "$link_command"
- status=$?
-
- # Delete the generated files.
- if test -n "$dlsyms"; then
- $show "$rm $output_objdir/${outputname}S.${objext}"
- $run $rm "$output_objdir/${outputname}S.${objext}"
- fi
-
- exit $status
- fi
-
- if test -n "$shlibpath_var"; then
- # We should set the shlibpath_var
- rpath=
- for dir in $temp_rpath; do
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*)
- # Absolute path.
- rpath="$rpath$dir:"
- ;;
- *)
- # Relative path: add a thisdir entry.
- rpath="$rpath\$thisdir/$dir:"
- ;;
- esac
- done
- temp_rpath="$rpath"
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- rpath="$rpath$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $run $rm $output
- # Link the executable and exit
- $show "$link_command"
- $run eval "$link_command" || exit $?
- exit 0
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
- $echo "$modename: \`$output' will be relinked during installation" 1>&2
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- $show "$link_command"
- $run eval "$link_command" || exit $?
-
- # Now create the wrapper script.
- $show "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
- relink_command="$var=\"$var_value\"; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
- fi
-
- # Quote $echo for shipping.
- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
- case $0 in
- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
- *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
- esac
- qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
- else
- qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
- fi
-
- # Only actually do things if our run command is non-null.
- if test -z "$run"; then
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- cwrappersource=`$echo ${objdir}/lt-${output}.c`
- cwrapper=`$echo ${output}.exe`
- $rm $cwrappersource $cwrapper
- trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
-
- cat > $cwrappersource <> $cwrappersource<<"EOF"
-#include
-#include
-#include
-#include
-#include
-#include
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2
-#define DIR_SEPARATOR_2 '\\'
-#endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int i;
-
- program_name = (char *) xstrdup ((char *) basename (argv[0]));
- newargz = XMALLOC(char *, argc+2);
-EOF
-
- cat >> $cwrappersource <> $cwrappersource <<"EOF"
- newargz[1] = fnqualify(argv[0]);
- /* we know the script has the same name, without the .exe */
- /* so make sure newargz[1] doesn't end in .exe */
- strendzap(newargz[1],".exe");
- for (i = 1; i < argc; i++)
- newargz[i+1] = xstrdup(argv[i]);
- newargz[argc+1] = NULL;
-EOF
-
- cat >> $cwrappersource <> $cwrappersource <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void * p = (void *) malloc (num);
- if (!p)
- lt_fatal ("Memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-char *
-basename (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha (name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return (char *) base;
-}
-
-char *
-fnqualify(const char *path)
-{
- size_t size;
- char *p;
- char tmp[LT_PATHMAX + 1];
-
- assert(path != NULL);
-
- /* Is it qualified already? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha (path[0]) && path[1] == ':')
- return xstrdup (path);
-#endif
- if (IS_DIR_SEPARATOR (path[0]))
- return xstrdup (path);
-
- /* prepend the current directory */
- /* doesn't handle '~' */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal ("getcwd failed");
- size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
- p = XMALLOC(char, size);
- sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
- return p;
-}
-
-char *
-strendzap(char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert(str != NULL);
- assert(pat != NULL);
-
- len = strlen(str);
- patlen = strlen(pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp(str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode,
- const char * message, va_list ap)
-{
- fprintf (stderr, "%s: %s: ", program_name, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
- va_end (ap);
-}
-EOF
- # we should really use a build-platform specific compiler
- # here, but OTOH, the wrappers (shell script and this C one)
- # are only useful if you want to execute the "real" binary.
- # Since the "real" binary is built for $host, then this
- # wrapper might as well be built for $host, too.
- $run $LTCC -s -o $cwrapper $cwrappersource
- ;;
- esac
- $rm $output
- trap "$rm $output; exit 1" 1 2 15
-
- $echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variable:
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$echo are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- echo=\"$qecho\"
- file=\"\$0\"
- # Make sure echo works.
- if test \"X\$1\" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
- # Yippee, \$echo works!
- :
- else
- # Restart under the correct shell, and then maybe \$echo will work.
- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
- fi
- fi\
-"
- $echo >> $output "\
-
- # Find the directory that this script lives in.
- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
- done
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $echo >> $output "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" || \\
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $mkdir \"\$progdir\"
- else
- $rm \"\$progdir/\$file\"
- fi"
-
- $echo >> $output "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $echo \"\$relink_command_output\" >&2
- $rm \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $rm \"\$progdir/\$program\";
- $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $rm \"\$progdir/\$file\"
- fi"
- else
- $echo >> $output "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $echo >> $output "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $echo >> $output "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- # fixup the dll searchpath if we need to.
- if test -n "$dllsearchpath"; then
- $echo >> $output "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- $echo >> $output "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2*)
- $echo >> $output "\
- exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
- ;;
-
- *)
- $echo >> $output "\
- exec \$progdir/\$program \${1+\"\$@\"}
-"
- ;;
- esac
- $echo >> $output "\
- \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
- exit 1
- fi
- else
- # The program doesn't exist.
- \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
- \$echo \"This script is just a wrapper for \$program.\" 1>&2
- $echo \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
- chmod +x $output
- fi
- exit 0
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "$mkdir $gentop"
- $run $mkdir "$gentop"
- status=$?
- if test "$status" -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- # Add in members from convenience archives.
- for xlib in $addlibs; do
- # Extract the objects.
- case $xlib in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "$mkdir $xdir"
- $run $mkdir "$xdir"
- status=$?
- if test "$status" -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- # We will extract separately just the conflicting names and we will no
- # longer touch any unique names. It is faster to leave these extract
- # automatically by $AR in one run.
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $AR t "$xabs" | sort | uniq -cd | while read -r count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
- i=`expr $i + 1`
- done
- done
- fi
-
- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
- done
- fi
-
- compiler_flags="$compiler_flags $add_flags"
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- eval cmds=\"$old_archive_from_new_cmds\"
- else
- eval cmds=\"$old_archive_cmds\"
-
- if len=`expr "X$cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # the command line is too long to link in one step, link in parts
- $echo "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- # GNU ar 2.10+ was changed to match POSIX; thus no paths are
- # encoded into archives. This makes 'ar r' malfunction in
- # this piecewise linking case whenever conflicting object
- # names appear in distinct ar calls; check, warn and compensate.
- if (for obj in $save_oldobjs
- do
- $echo "X$obj" | $Xsed -e 's%^.*/%%'
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
- AR_FLAGS=cq
- fi
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- for obj in $save_oldobjs
- do
- oldobjs="$objlist $obj"
- objlist="$objlist $obj"
- eval test_cmds=\"$old_archive_cmds\"
- if len=`expr "X$test_cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~$old_archive_cmds\"
- fi
- fi
- fi
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- done
-
- if test -n "$generated"; then
- $show "${rm}r$generated"
- $run ${rm}r$generated
- fi
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- $show "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
- relink_command="$var=\"$var_value\"; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
- # Only create the output if not a dry run.
- if test -z "$run"; then
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- if test -z "$libdir"; then
- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- newdependency_libs="$newdependency_libs $libdir/$name"
- ;;
- *) newdependency_libs="$newdependency_libs $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
- for lib in $dlfiles; do
- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- if test -z "$libdir"; then
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- newdlfiles="$newdlfiles $libdir/$name"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- if test -z "$libdir"; then
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- exit 1
- fi
- newdlprefiles="$newdlprefiles $libdir/$name"
- done
- dlprefiles="$newdlprefiles"
- fi
- $rm $output
- # place dlname in correct position for cygwin
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
- esac
- $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then
- $echo >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- fi
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
- ;;
- esac
- exit 0
- ;;
-
- # libtool install mode
- install)
- modename="$modename: install"
-
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
- # Aesthetically quote it.
- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$arg "
- arg="$1"
- shift
- else
- install_prog=
- arg="$nonopt"
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$install_prog$arg"
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- for arg
- do
- if test -n "$dest"; then
- files="$files $dest"
- dest="$arg"
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f) prev="-f" ;;
- -g) prev="-g" ;;
- -m) prev="-m" ;;
- -o) prev="-o" ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*) ;;
-
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- prev=
- else
- dest="$arg"
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$install_prog $arg"
- done
-
- if test -z "$install_prog"; then
- $echo "$modename: you must specify an install program" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prev' option requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- $echo "$modename: no file or destination specified" 1>&2
- else
- $echo "$modename: you must specify a destination" 1>&2
- fi
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Strip any trailing slash from the destination.
- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
- test "X$destdir" = "X$dest" && destdir=.
- destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files
- if test "$#" -gt 2; then
- $echo "$modename: \`$dest' is not a directory" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- staticlibs="$staticlibs $file"
- ;;
-
- *.la)
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- library_names=
- old_library=
- relink_command=
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) current_libdirs="$current_libdirs $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) future_libdirs="$future_libdirs $libdir" ;;
- esac
- fi
-
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
- test "X$dir" = "X$file/" && dir=
- dir="$dir$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- if test "$inst_prefix_dir" = "$destdir"; then
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
- exit 1
- fi
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- $echo "$modename: warning: relinking \`$file'" 1>&2
- $show "$relink_command"
- if $run eval "$relink_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
- exit 1
- fi
- fi
-
- # See the names of the shared library.
- set dummy $library_names
- if test -n "$2"; then
- realname="$2"
- shift
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- $show "$install_prog $dir/$srcname $destdir/$realname"
- $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
- if test -n "$stripme" && test -n "$striplib"; then
- $show "$striplib $destdir/$realname"
- $run eval "$striplib $destdir/$realname" || exit $?
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- for linkname
- do
- if test "$linkname" != "$realname"; then
- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
- fi
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- eval cmds=\"$postinstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- # Install the pseudo-library for information purposes.
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- instname="$dir/$name"i
- $show "$install_prog $instname $destdir/$name"
- $run eval "$install_prog $instname $destdir/$name" || exit $?
-
- # Maybe install the static library, too.
- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
-
- # Install the libtool object if requested.
- if test -n "$destfile"; then
- $show "$install_prog $file $destfile"
- $run eval "$install_prog $file $destfile" || exit $?
- fi
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
- $show "$install_prog $staticobj $staticdest"
- $run eval "$install_prog \$staticobj \$staticdest" || exit $?
- fi
- exit 0
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- file=`$echo $file|${SED} 's,.exe$,,'`
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin*|*mingw*)
- wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
- notinst_deplibs=
- relink_command=
-
- # To insure that "foo" is sourced, and not "foo.exe",
- # finese the cygwin/MSYS system by explicitly sourcing "foo."
- # which disallows the automatic-append-.exe behavior.
- case $build in
- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
- *) wrapperdot=${wrapper} ;;
- esac
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . ${wrapperdot} ;;
- *) . ./${wrapperdot} ;;
- esac
-
- # Check the variables that should have been set.
- if test -z "$notinst_deplibs"; then
- $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
- exit 1
- fi
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- # If there is no directory component, then add one.
- case $lib in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
- fi
- libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
- finalize=no
- fi
- done
-
- relink_command=
- # To insure that "foo" is sourced, and not "foo.exe",
- # finese the cygwin/MSYS system by explicitly sourcing "foo."
- # which disallows the automatic-append-.exe behavior.
- case $build in
- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
- *) wrapperdot=${wrapper} ;;
- esac
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . ${wrapperdot} ;;
- *) . ./${wrapperdot} ;;
- esac
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- if test "$finalize" = yes && test -z "$run"; then
- tmpdir="/tmp"
- test -n "$TMPDIR" && tmpdir="$TMPDIR"
- tmpdir="$tmpdir/libtool-$$"
- if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
- else
- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
- continue
- fi
- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
- $show "$relink_command"
- if $run eval "$relink_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
- ${rm}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- $echo "$modename: warning: cannot relink \`$file'" 1>&2
- fi
- else
- # Install the binary that we compiled earlier.
- file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyways
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
- ;;
- esac
- ;;
- esac
- $show "$install_prog$stripme $file $destfile"
- $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
- test -n "$outputname" && ${rm}r "$tmpdir"
- ;;
- esac
- done
-
- for file in $staticlibs; do
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
-
- $show "$install_prog $file $oldlib"
- $run eval "$install_prog \$file \$oldlib" || exit $?
-
- if test -n "$stripme" && test -n "$striplib"; then
- $show "$old_striplib $oldlib"
- $run eval "$old_striplib $oldlib" || exit $?
- fi
-
- # Do each command in the postinstall commands.
- eval cmds=\"$old_postinstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- done
-
- if test -n "$future_libdirs"; then
- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
- fi
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- test -n "$run" && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $0 --finish$current_libdirs'
- else
- exit 0
- fi
- ;;
-
- # libtool finish mode
- finish)
- modename="$modename: finish"
- libdirs="$nonopt"
- admincmds=
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for dir
- do
- libdirs="$libdirs $dir"
- done
-
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- eval cmds=\"$finish_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || admincmds="$admincmds
- $cmd"
- done
- IFS="$save_ifs"
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $run eval "$cmds" || admincmds="$admincmds
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- exit 0
-
- $echo "----------------------------------------------------------------------"
- $echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $echo " $libdir"
- done
- $echo
- $echo "If you ever happen to want to link against installed libraries"
- $echo "in a given directory, LIBDIR, you must either use libtool, and"
- $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- $echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- $echo " during execution"
- fi
- if test -n "$runpath_var"; then
- $echo " - add LIBDIR to the \`$runpath_var' environment variable"
- $echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $echo " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $echo " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- $echo
- $echo "See any operating system documentation about shared libraries for"
- $echo "more information, such as the ld(1) and ld.so(8) manual pages."
- $echo "----------------------------------------------------------------------"
- exit 0
- ;;
-
- # libtool execute mode
- execute)
- modename="$modename: execute"
-
- # The first argument is the command name.
- cmd="$nonopt"
- if test -z "$cmd"; then
- $echo "$modename: you must specify a COMMAND" 1>&2
- $echo "$help"
- exit 1
- fi
-
- # Handle -dlopen flags immediately.
- for file in $execute_dlfiles; do
- if test ! -f "$file"; then
- $echo "$modename: \`$file' is not a file" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- dir=
- case $file in
- *.la)
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Read the libtool library.
- dlname=
- library_names=
-
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
-
- if test -f "$dir/$objdir/$dlname"; then
- dir="$dir/$objdir"
- else
- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
- exit 1
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
- ;;
-
- *)
- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -*) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- # If there is no directory component, then add one.
- case $file in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
- args="$args \"$file\""
- done
-
- if test -z "$run"; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- if test "${save_LC_ALL+set}" = set; then
- LC_ALL="$save_LC_ALL"; export LC_ALL
- fi
- if test "${save_LANG+set}" = set; then
- LANG="$save_LANG"; export LANG
- fi
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
- $echo "export $shlibpath_var"
- fi
- $echo "$cmd$args"
- exit 0
- fi
- ;;
-
- # libtool clean and uninstall mode
- clean | uninstall)
- modename="$modename: $mode"
- rm="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) rm="$rm $arg"; rmforce=yes ;;
- -*) rm="$rm $arg" ;;
- *) files="$files $arg" ;;
- esac
- done
-
- if test -z "$rm"; then
- $echo "$modename: you must specify an RM program" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- rmdirs=
-
- origobjdir="$objdir"
- for file in $files; do
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$dir" = "X$file"; then
- dir=.
- objdir="$origobjdir"
- else
- objdir="$dir/$origobjdir"
- fi
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- test "$mode" = uninstall && objdir="$dir"
-
- # Remember objdir for removal later, being careful to avoid duplicates
- if test "$mode" = clean; then
- case " $rmdirs " in
- *" $objdir "*) ;;
- *) rmdirs="$rmdirs $objdir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if (test -L "$file") >/dev/null 2>&1 \
- || (test -h "$file") >/dev/null 2>&1 \
- || test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- . $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- rmfiles="$rmfiles $objdir/$n"
- done
- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
- test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
- if test "$mode" = uninstall; then
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- eval cmds=\"$postuninstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd"
- if test "$?" -ne 0 && test "$rmforce" != yes; then
- exit_status=1
- fi
- done
- IFS="$save_ifs"
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- eval cmds=\"$old_postuninstall_cmds\"
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd"
- if test "$?" -ne 0 && test "$rmforce" != yes; then
- exit_status=1
- fi
- done
- IFS="$save_ifs"
- fi
- # FIXME: should reinstall the best remaining shared library.
- fi
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
- # Read the .lo file
- . $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" \
- && test "$pic_object" != none; then
- rmfiles="$rmfiles $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" \
- && test "$non_pic_object" != none; then
- rmfiles="$rmfiles $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- file=`$echo $file|${SED} 's,.exe$,,'`
- noexename=`$echo $name|${SED} 's,.exe$,,'`
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- rmfiles="$rmfiles $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- relink_command=
- . $dir/$noexename
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- rmfiles="$rmfiles $objdir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- rmfiles="$rmfiles $objdir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- $show "$rm $rmfiles"
- $run $rm $rmfiles || exit_status=1
- done
- objdir="$origobjdir"
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- $show "rmdir $dir"
- $run rmdir $dir >/dev/null 2>&1
- fi
- done
-
- exit $exit_status
- ;;
-
- "")
- $echo "$modename: you must specify a MODE" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
- ;;
- esac
-
- if test -z "$exec_cmd"; then
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
- fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
- eval exec $exec_cmd
- exit 1
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
- --config show all configuration variables
- --debug enable verbose shell tracing
--n, --dry-run display commands without modifying any files
- --features display basic configuration information and exit
- --finish same as \`--mode=finish'
- --help display this help message and exit
- --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
- --quiet same as \`--silent'
- --silent don't print informational messages
- --tag=TAG use configuration variables from tag TAG
- --version print version information
-
-MODE must be one of the following:
-
- clean remove files from the build directory
- compile compile a source file into a libtool object
- execute automatically set library path, then run a program
- finish complete the installation of libtool libraries
- install install libraries or executables
- link create a library or an executable
- uninstall remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to ."
- exit 0
- ;;
-
-clean)
- $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
-compile)
- $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -prefer-pic try to building PIC objects only
- -prefer-non-pic try to building non-PIC objects only
- -static always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
-execute)
- $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
-finish)
- $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
-install)
- $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
-link)
- $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
-uninstall)
- $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
-*)
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/openair1/EMOS/GUI/missing b/openair1/EMOS/GUI/missing
deleted file mode 100755
index 6a37006e8f..0000000000
--- a/openair1/EMOS/GUI/missing
+++ /dev/null
@@ -1,336 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard , 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-run=:
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
-
-case "$1" in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.4 - GNU automake"
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
- aclocal*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case "$f" in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1Help2man' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit 1
- fi
- ;;
-
- makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- tar)
- shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case "$firstarg" in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case "$firstarg" in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/openair1/EMOS/GUI/mkinstalldirs b/openair1/EMOS/GUI/mkinstalldirs
deleted file mode 100755
index d2d5f21b61..0000000000
--- a/openair1/EMOS/GUI/mkinstalldirs
+++ /dev/null
@@ -1,111 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman
-# Created: 1993-05-16
-# Public domain
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage" 1>&2
- exit 0
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-case $dirmode in
- '')
- if mkdir -p -- . 2>/dev/null; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- fi
- ;;
-esac
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# End:
-# mkinstalldirs ends here
diff --git a/openair1/EMOS/GUI/src/COPYING b/openair1/EMOS/GUI/src/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/GUI/src/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/GUI/src/Eurecom_Logo.png b/openair1/EMOS/GUI/src/Eurecom_Logo.png
deleted file mode 100644
index a499d213a5..0000000000
Binary files a/openair1/EMOS/GUI/src/Eurecom_Logo.png and /dev/null differ
diff --git a/openair1/EMOS/GUI/src/Eurecom_Logo.xpm b/openair1/EMOS/GUI/src/Eurecom_Logo.xpm
deleted file mode 100644
index 03dda9e4d9..0000000000
--- a/openair1/EMOS/GUI/src/Eurecom_Logo.xpm
+++ /dev/null
@@ -1,554 +0,0 @@
-/* XPM */
-static char * Eurecom_Logo_xpm[] = {
-"106 50 501 2",
-" c None",
-". c #FFFFFF",
-"+ c #FCFCFC",
-"@ c #DADADC",
-"# c #D5D5D6",
-"$ c #E2E2E3",
-"% c #F7F7F7",
-"& c #C2C2C4",
-"* c #BDBEC1",
-"= c #DBDADC",
-"- c #EFEFEF",
-"; c #BDC0C3",
-"> c #BFC0C3",
-", c #BEC0C3",
-"' c #BDBFC3",
-") c #B2BEC4",
-"! c #B2BEC5",
-"~ c #B3BFC5",
-"{ c #DBE6EA",
-"] c #EFFAFE",
-"^ c #F9FDFF",
-"/ c #FEFFFE",
-"( c #FBFBFB",
-"_ c #F4F4F4",
-": c #B8DEEC",
-"< c #16B0EB",
-"[ c #21B7F0",
-"} c #22B8F0",
-"| c #BFEAFA",
-"1 c #FEFEFD",
-"2 c #FEFEFE",
-"3 c #87D7F3",
-"4 c #02ADEF",
-"5 c #0AAEED",
-"6 c #D8F2FB",
-"7 c #F0F0F1",
-"8 c #EEEEEF",
-"9 c #EEEFEF",
-"0 c #74C9EA",
-"a c #34B3E3",
-"b c #35B3E3",
-"c c #35B3E4",
-"d c #37B6E6",
-"e c #3DBCEB",
-"f c #3DBCEC",
-"g c #47C1EF",
-"h c #F1FAFD",
-"i c #C2C1C3",
-"j c #BBBDC0",
-"k c #BBBDC1",
-"l c #BABDC0",
-"m c #BCBEC1",
-"n c #D3D6D8",
-"o c #F9FDFD",
-"p c #F8FDFD",
-"q c #F9FDFC",
-"r c #FAFDFD",
-"s c #FDFEFF",
-"t c #F6F6F7",
-"u c #BEBFC1",
-"v c #E1E1E1",
-"w c #FFFFFE",
-"x c #F6F6F6",
-"y c #DCDCDE",
-"z c #DDDDDF",
-"A c #DCDDDE",
-"B c #AFCDDA",
-"C c #52B5DC",
-"D c #5DB6D9",
-"E c #5AB6DA",
-"F c #59B6DA",
-"G c #5CB6DA",
-"H c #5BB6DA",
-"I c #5BB6D9",
-"J c #6BC6E8",
-"K c #80D1F0",
-"L c #80D1EF",
-"M c #DCF2F8",
-"N c #86D8F7",
-"O c #13B2EF",
-"P c #D6F1F9",
-"Q c #FDFDFD",
-"R c #5EC9F0",
-"S c #06AEEF",
-"T c #05AEEF",
-"U c #07AFEF",
-"V c #26B9F1",
-"W c #EEF9FC",
-"X c #FAFAFA",
-"Y c #CBCDD0",
-"Z c #C9C9CB",
-"` c #C6C8CA",
-" . c #A5C2CC",
-".. c #9BC1CE",
-"+. c #9AC0CD",
-"@. c #9BC0CD",
-"#. c #99BFCC",
-"$. c #97BECB",
-"%. c #98BECC",
-"&. c #ABD2E0",
-"*. c #C4ECF9",
-"=. c #C5EDFB",
-"-. c #CDEFFA",
-";. c #FCFEFC",
-">. c #F2F2F2",
-",. c #C0C0C3",
-"'. c #BEBEC1",
-"). c #BEBEC0",
-"!. c #BFBEC0",
-"~. c #C0BFC0",
-"{. c #E2E1E1",
-"]. c #EDECEC",
-"^. c #C4C4C6",
-"/. c #C5C4C6",
-"(. c #BCC1C5",
-"_. c #9CBECB",
-":. c #9BBECB",
-"<. c #9DBECB",
-"[. c #9EBECA",
-"}. c #A5BCC4",
-"|. c #A0BDC8",
-"1. c #9BBECC",
-"2. c #BFDDE9",
-"3. c #CBEEFB",
-"4. c #CAEEFB",
-"5. c #CAEEFA",
-"6. c #E9F8FB",
-"7. c #AEE4F9",
-"8. c #03ADEF",
-"9. c #B1E3F4",
-"0. c #FDFEFC",
-"a. c #DAF3FC",
-"b. c #9BDDF6",
-"c. c #61CBF4",
-"d. c #67CDF4",
-"e. c #F7FDFD",
-"f. c #FEFFFD",
-"g. c #DDDCDD",
-"h. c #DEDDDE",
-"i. c #F7F6F6",
-"j. c #F8F8F8",
-"k. c #E5E6E7",
-"l. c #E8E8E9",
-"m. c #E3E4E5",
-"n. c #E1E1E2",
-"o. c #E5E4E5",
-"p. c #D0CFCF",
-"q. c #BAB9BA",
-"r. c #C4C3C3",
-"s. c #F8F7F8",
-"t. c #D2D1D2",
-"u. c #BCBBBB",
-"v. c #C3C1C2",
-"w. c #E7E9EA",
-"x. c #E9E9EA",
-"y. c #DDDDDD",
-"z. c #EDEDED",
-"A. c #DCDCDC",
-"B. c #F0F1F2",
-"C. c #7D7C7D",
-"D. c #2A2728",
-"E. c #2D2A2B",
-"F. c #393637",
-"G. c #DAD9DA",
-"H. c #B3B2B2",
-"I. c #312D2E",
-"J. c #EEEEEE",
-"K. c #514F50",
-"L. c #858384",
-"M. c #B0AEAF",
-"N. c #292627",
-"O. c #2F2C2D",
-"P. c #312E2F",
-"Q. c #2E2C2D",
-"R. c #4B4848",
-"S. c #CDCCCD",
-"T. c #EAE9EA",
-"U. c #343031",
-"V. c #2C292A",
-"W. c #757374",
-"X. c #FBFAFB",
-"Y. c #9F9D9E",
-"Z. c #403D3E",
-"`. c #3A3738",
-" + c #4A4748",
-".+ c #373435",
-"++ c #6F6D6F",
-"@+ c #F3F4F5",
-"#+ c #C1C0C1",
-"$+ c #4D4A4B",
-"%+ c #363334",
-"&+ c #4B4849",
-"*+ c #373434",
-"=+ c #333031",
-"-+ c #A1A1A3",
-";+ c #5D5A5B",
-">+ c #2A2627",
-",+ c #B3B1B2",
-"'+ c #4A4A4C",
-")+ c #282526",
-"!+ c #BDBFC1",
-"~+ c #484546",
-"{+ c #7E7C7C",
-"]+ c #E6E6E7",
-"^+ c #E7E7E7",
-"/+ c #E5E7E8",
-"(+ c #807E7F",
-"_+ c #4D4C4E",
-":+ c #E2E1E2",
-"<+ c #7E7C7D",
-"[+ c #4F4E50",
-"}+ c #F0F0F0",
-"|+ c #D7D9DA",
-"1+ c #434041",
-"2+ c #4E4D4F",
-"3+ c #F6F7F7",
-"4+ c #BFBEBF",
-"5+ c #2B2728",
-"6+ c #CDCDCE",
-"7+ c #E7E6E7",
-"8+ c #F1F2F2",
-"9+ c #F7F7F8",
-"0+ c #767475",
-"a+ c #B5B6B7",
-"b+ c #FAF9F9",
-"c+ c #BAB9B9",
-"d+ c #615E5F",
-"e+ c #ABAAAB",
-"f+ c #2D292A",
-"g+ c #989798",
-"h+ c #F2F4F5",
-"i+ c #F3F3F3",
-"j+ c #7F7D7E",
-"k+ c #221E1F",
-"l+ c #CBCBCB",
-"m+ c #322F30",
-"n+ c #484646",
-"o+ c #797778",
-"p+ c #828081",
-"q+ c #2B2829",
-"r+ c #E8E8E8",
-"s+ c #292526",
-"t+ c #B7B5B6",
-"u+ c #F8F9F9",
-"v+ c #BDBCBD",
-"w+ c #252122",
-"x+ c #E6E6E6",
-"y+ c #F7F8F8",
-"z+ c #4B4A4B",
-"A+ c #8B898A",
-"B+ c #3F3D3F",
-"C+ c #F2F2F3",
-"D+ c #8D8B8C",
-"E+ c #474445",
-"F+ c #F5F5F5",
-"G+ c #A5A4A4",
-"H+ c #2F2B2C",
-"I+ c #9B999A",
-"J+ c #383536",
-"K+ c #808183",
-"L+ c #C6C5C5",
-"M+ c #4D494A",
-"N+ c #3E3A3B",
-"O+ c #7B7A7A",
-"P+ c #F7F6F7",
-"Q+ c #292628",
-"R+ c #D0D2D3",
-"S+ c #F0EFEF",
-"T+ c #EAEAEA",
-"U+ c #B2B1B1",
-"V+ c #8C8A8B",
-"W+ c #3F3D3E",
-"X+ c #B4B3B3",
-"Y+ c #504D4E",
-"Z+ c #737272",
-"`+ c #5A5758",
-" @ c #706D6E",
-".@ c #F2F1F1",
-"+@ c #3F3B3C",
-"@@ c #868485",
-"#@ c #7D7B7B",
-"$@ c #474547",
-"%@ c #F2F3F4",
-"&@ c #555253",
-"*@ c #696667",
-"=@ c #999898",
-"-@ c #D6D6D6",
-";@ c #E3E2E2",
-">@ c #E9E9E9",
-",@ c #444142",
-"'@ c #B5B4B4",
-")@ c #585556",
-"!@ c #7A7879",
-"~@ c #322E2F",
-"{@ c #353132",
-"]@ c #C2C1C2",
-"^@ c #5D5B5C",
-"/@ c #737374",
-"(@ c #C2C1C1",
-"_@ c #D1D0D0",
-":@ c #787676",
-"<@ c #454243",
-"[@ c #DFDFDF",
-"}@ c #FEFDFE",
-"|@ c #CCCBCC",
-"1@ c #262223",
-"2@ c #CFCECE",
-"3@ c #747375",
-"4@ c #636263",
-"5@ c #868484",
-"6@ c #F1F1F1",
-"7@ c #3D393A",
-"8@ c #B8B9BA",
-"9@ c #737172",
-"0@ c #7C7B7C",
-"a@ c #AAA9A9",
-"b@ c #5B595A",
-"c@ c #696767",
-"d@ c #D7D6D6",
-"e@ c #D5D5D5",
-"f@ c #EBEBEC",
-"g@ c #A8A6A7",
-"h@ c #8F8D8E",
-"i@ c #E6E5E5",
-"j@ c #CBCBCC",
-"k@ c #282425",
-"l@ c #B7B6B6",
-"m@ c #D7D6D7",
-"n@ c #E4E3E3",
-"o@ c #A9A8A8",
-"p@ c #DFDEDF",
-"q@ c #383435",
-"r@ c #9E9D9E",
-"s@ c #373536",
-"t@ c #B2B3B5",
-"u@ c #6A6768",
-"v@ c #494647",
-"w@ c #ECEBEC",
-"x@ c #CFCECF",
-"y@ c #EAEAEB",
-"z@ c #373335",
-"A@ c #AAA8A9",
-"B@ c #5C5A5B",
-"C@ c #6B696A",
-"D@ c #CBCACB",
-"E@ c #D8D7D7",
-"F@ c #595758",
-"G@ c #6A696A",
-"H@ c #D9D8D8",
-"I@ c #878585",
-"J@ c #9B9A9B",
-"K@ c #3B3839",
-"L@ c #9D9B9C",
-"M@ c #343132",
-"N@ c #D5D4D4",
-"O@ c #BEBDBD",
-"P@ c #272324",
-"Q@ c #D8D8D9",
-"R@ c #9A9B9C",
-"S@ c #242122",
-"T@ c #CECDCE",
-"U@ c #9C9B9C",
-"V@ c #3E3C3D",
-"W@ c #F0F2F2",
-"X@ c #231F20",
-"Y@ c #DAD9D9",
-"Z@ c #7B797A",
-"`@ c #514E4F",
-" # c #332F30",
-".# c #A1A2A3",
-"+# c #ABA9AA",
-"@# c #262324",
-"## c #CAC9C9",
-"$# c #696768",
-"%# c #5E5C5D",
-" c #AFAEAF",
-"*# c #CFD0D1",
-"=# c #E2E4E5",
-"-# c #9A9899",
-";# c #EDEEEE",
-"># c #4C4A4C",
-",# c #716F6F",
-"'# c #A9A7A8",
-")# c #E4E4E4",
-"!# c #C0BFBF",
-"~# c #656466",
-"{# c #686566",
-"]# c #9E9C9D",
-"^# c #F9F9F9",
-"/# c #59595A",
-"(# c #F1F0F1",
-"_# c #B8B7B8",
-":# c #B9B8B8",
-"<# c #605D5E",
-"[# c #4E4B4C",
-"}# c #F4F3F3",
-"|# c #959494",
-"1# c #FAF9FA",
-"2# c #605E60",
-"3# c #8D8C8D",
-"4# c #595657",
-"5# c #403C3D",
-"6# c #DADBDD",
-"7# c #E8E7E8",
-"8# c #E6E5E6",
-"9# c #747172",
-"0# c #706E6F",
-"a# c #9C9A9B",
-"b# c #6F6D6D",
-"c# c #E3E3E3",
-"d# c #CCCCCC",
-"e# c #575455",
-"f# c #ABADAE",
-"g# c #9F9FA0",
-"h# c #E6E6E5",
-"i# c #302D2E",
-"j# c #8E8C8D",
-"k# c #2E2B2C",
-"l# c #7A7878",
-"m# c #C3C2C3",
-"n# c #524F50",
-"o# c #484547",
-"p# c #C6C6C6",
-"q# c #DFDEDE",
-"r# c #4C494A",
-"s# c #525051",
-"t# c #A7A6A6",
-"u# c #CDCCCC",
-"v# c #DBDADA",
-"w# c #D3D3D3",
-"x# c #B6B4B5",
-"y# c #A4A3A4",
-"z# c #E2E4E4",
-"A# c #D9D8D9",
-"B# c #D8D7D8",
-"C# c #FDFCFC",
-"D# c #D0D0D0",
-"E# c #EEEDEE",
-"F# c #A5A3A4",
-"G# c #AFAEAE",
-"H# c #D3D2D3",
-"I# c #C5C4C4",
-"J# c #A7A5A5",
-"K# c #D4D3D3",
-"L# c #F3F4F4",
-"M# c #F9F9FA",
-"N# c #FBFAFA",
-"O# c #D4D3D4",
-"P# c #D2D2D4",
-"Q# c #DEDEDF",
-"R# c #EAE9E9",
-"S# c #C3C4C6",
-"T# c #E9EAEB",
-"U# c #F5F5F6",
-"V# c #BFC1C2",
-"W# c #C6C5C6",
-"X# c #ECECEC",
-"Y# c #F6F7F8",
-"Z# c #DBDBDC",
-"`# c #FDFCFD",
-" $ c #F4F3F2",
-".$ c #D4D5D6",
-"+$ c #E1E0E1",
-"@$ c #E2E2E2",
-"#$ c #BCBEBF",
-"$$ c #DCDEE0",
-"%$ c #CECECF",
-"&$ c #D3D5D6",
-"*$ c #C5C4C5",
-"=$ c #CACACA",
-"-$ c #ACABAC",
-";$ c #BFBFC0",
-">$ c #CECECE",
-",$ c #C2C2C3",
-"'$ c #DBDADB",
-")$ c #C9C9CA",
-"!$ c #C8C7C8",
-"~$ c #CDCFD0",
-"{$ c #C9CACA",
-"]$ c #E3E3E4",
-"^$ c #E8EAEA",
-"/$ c #B7B6B7",
-"($ c #E4E4E5",
-"_$ c #C5C5C6",
-":$ c #E0E0E0",
-"<$ c #BBBABB",
-"[$ c #D2D4D5",
-"}$ c #CCCCCD",
-"|$ c #CACACB",
-"1$ c #FEFFFF",
-"2$ c #E4E6E7",
-"3$ c #D7D9DB",
-"4$ c #D7D7D8",
-"5$ c #D8DADB",
-"6$ c #F9FAF9",
-"7$ c #B0AFB0",
-"8$ c #FEFDFD",
-"9$ c #D7D7D7",
-"0$ c #C9C9C9",
-"a$ c #DEDEDE",
-"b$ c #C9C8C9",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + @ # # # # # # # # # # # # # # # # # # # # $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % & * * * * * * * * * * * * * * * * * * * * = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ; ; > , ; ; ; ' ) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ) { ] ] ] ] ] ] ] ^ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( _ _ _ _ _ _ _ : < < < < < < < < < < < < < [ } } } } } } } | 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 9 9 9 9 9 9 0 a a a a a a b a c a c a d e e e e e e f g h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 i * * * * * * * * j j j j j j k l m l m j n o p p q q q r s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t u * * * * * * * * * * * * * * * * * * * * v w w w w w w w / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x y z z z z z A B C D D E F F D D G F F H I J K K K K K K L M / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 O P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q Q Q Q Q Q Q Q R S S S S S T S S S T S S S U U U U U U U V W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X Y Z Z Z Z Z Z ` ...+.@.@.#.$.@.@.@.%.#.@.&.*.=.=.=.=.=.=.-.;.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.,.* * * * * * * '.).!.!.!.!.!.!.!.!.!.!.~.{.1 1 1 1 1 1 / 1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].^././././././.(._.:.<.[.}.|.<.<.|.}.[.<.1.2.3.4.4.4.4.4.5.6.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Q Q Q Q Q Q Q 7.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.9.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.a.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w 0.b.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.d.e.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 f.. . . . . . . . . . . . . . . . . . . . f.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . - g.g.g.g.g.h.i.. . . . % h.j.. . . . k.l.. . . . . % h.g.g.m.X . . . . . . . Q n.g.g.g.g.g.o.2 . . . . . . >.p.q.r.{.2 . . . . . . . s.t.u.v.w.. . . . . . . . x.y.x . . . . z.A.B.. . . . . . . . ",
-". . . . . . . . C.D.E.E.E.E.F.G.. . . . H.I.J.. . . ( K.L.. . . . . M.N.O.P.Q.R.S.. . . . . . T.U.V.E.E.E.E.W.Q . . . . X.Y.Z.`. +.+V.++@+. . . 2 2 #+$+%+&+*+=+-+2 . . . . . ( ;+>+,+. . . _ '+)+!+. . . . . . . . ",
-". . . . . . . Q ~+{+]+]+]+^+/++ . . . 2 (+_+X . . . :+V.q.. . . . 2 <+[+- }+|+1+2+3+. . . . . 4+5+6+7+7+7+k.8+. . . . 9+0+`.a+b+. s.c+d+x . . . 2 e+f+g+h+. i+j+k+l+. . . . . ^+m+n+o+. . Q p+m+q+^+. . . . . . . . ",
-". . . . . . . r+s+t+. . . . . . . . . u+_+<+2 . . . v+w+x+. . . . y+z+L.2 . . A+B+C+. . . . . D+E+F+. . . . . . . . . G+E.t.. . . . 2 i+2 . . . y.H+I++ . . . J.J+K+. . . . 2 L+O.Y.M+x . ~.N+O+~+P+. . . . . . . . ",
-". . . . . . . 4+Q+R+S+S+S+S+b+. . . . T+q+U+. . . . V+W+Q . . . . T+D.X+. . + Y+Z++ . . . . 2 `+ @- S+S+S+.@. . . . F++@@@2 . . . . 2 . . . . . #@$@%@. . . . 2 &@*@. . . . 2 =@Y+-@P.;@>@,@'@)@!@2 . . . . . . . . ",
-". . . . . . . A+k+~@{@{@{@=+S.. . . . ]@>+A.. . . X ^@/@. . . . . ~.w+(@v _@:@<@[@. . . . . B.~@>+{@{@{@{@d+}@. . . |@1@2@. . . . . . . . . . i.F.D+. . . . . Q $+3@. . . . + 4@5@6@7@8@9@0@}+V.a@. . . . . . . . . ",
-". . . . . . Q b@c@d@d@d@d@e@X . . . . D+1+i+. . . f@=+g@. . . . . h@k+U.I.s+o+i@. . . . . . j@k@l@d@d@d@m@n@. . . . o@m+x+. . . . . . . . . . p@k@l@. . . . . J.q@r@. . . . i+s@t@Q u@$+v@w@x@k@m@. . . . . . . . . ",
-". . . . . . y@z@A@. . . . . . . . . . B@C@. . . . D@1@E@. . . . . F@G@z.H@%+I@2 . . . . . . J@K@_ . . . . . . . . . L@M@>@. . . . . . . . . . N@1@O@. . . . . '@P@p@. . . . Q@O.h.. R@S@T@2 U@V@W@. . . . . . . . . ",
-". . . . . . l+X@Y@. . . . . . . . . . E+p+. . . 2 Z@`@x . . . . }+ #.#. . +#@###. . . . . 2 $#%#. . . . . . . . . . w+*#. . . . . W@. . . . =#N.-#. . . . ;#>#,#. . . . . '#<@_ . )#!#. . ~#{#2 . . . . . . . . . ",
-". . . . . . ]#.+}+^#^#^#^#Q . . . . . /#Y+(#. Q _#>+:#. . . . . T@s+t.. . j.<#[#}#. . . . >.Z.|#1#^#^#^#X . . . . . r+P.2#S+. . i+Y.3#. . . . + 4#5#6#. . 7#;+~+8#. . . . . 9#0#2 . . . . F+K@a#. . . . . . . . . . ",
-". . . . . Q b#k@I.I.I.I.`.c#. . . . . d#{@.+e#~+F.f#2 . . . . . g#`._ . . . h#i#j#Q . . . Y@k#H+I.I.I.I.l#. . . . . . m#Z.=+&@n#F.o#p#. . . . . q#r#5+s#s#m+C@7#2 . . . . + v@t#. . . . . -@i#u#. . . . . . . . . . ",
-". . . . . 2 v#_@_@_@_@_@w#( . . . . . 2 i@x#y#u.7#w . . . . . . z#A#. . . . . g.B#C#. . . >._@_@_@_@_@D#^+. . . . . . . E#!#F#G#H#j.. . . . . . . i+I#J#G#e@Q . . . . . . + K#6@. . . . . .@_@^#. . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . Q L#+ . . . . . . . . . . . . . . . . ^#. . . . . Q + . . . . . . . . . . . . . . . 2 X . . . . . . . . . . . Q . . . . ( 2 . . . . . . . . . . . . . . . 2 M#. . . . N#. . . . . . . . . . . . . . . . . ",
-". . . . . O#P#- . . . + Q#x . . . 2 :+R#. . . . S#y.. . . . T#.@. . . U#A.+ . . . . . . . . . v V#. . . . i+A.( . . . - W#2 . . . c#^#2 . . X#Q#Q . . . Y#Z#`#. . . $.$. . . 1#$ . . . C#+$F+. . . . . . . . . . . ",
-". . . . . @$#$>.. . . $$%$&$. . . }+D@W#. . . Q *$!#. . . . =$X . . . G.-$F+. . . . . . . . Q e+;$2 . . . >$,$6@. . . @$'$. . . Q )$Q . . 2 p#!$% . . . ~${$>@. . . q#]$. . . ^$v#. . . 6@/$_ . . . . . . . . . . . ",
-". . . . . t.%$y+. . . ($_$6@. . . :$<$8#. . . % A.[$. . . w N@. . . . }$|$1$. . . . . . . . 2$^+3$Q . . . 4$5$6$. . . @$[@. . . ^#v#. . . ( 7$R+8$. . . 9$0$Q . . . a$j.. . . ]+}+. . . J.b$_ . . . . . . . . . . . ",
-". . . . . 2 2 . . . . . 2 . . . . J.x 2 . . . . 2 2 . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . 2 2 . . . . 2 . . . . . . . . Q >@2 . . . . . 2 . . . . . . . . 2 2 . . . . . 2 . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/openair1/EMOS/GUI/src/FFT.c b/openair1/EMOS/GUI/src/FFT.c
deleted file mode 100644
index f2c5c9545d..0000000000
--- a/openair1/EMOS/GUI/src/FFT.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-
-// ******* FFT function **********************************************************
-
-#define PI 3.14159264359
-#define SWAP(a,b) tempr=(a); (a)=(b); (b)=tempr
-
-void FFT(float *data, // the vector with the outputs
- // real part in even indexes
- // imaginary part in the odd indexes
- // for power conservation, the output should be normalized by 1/sqrt(nn)
- unsigned long nn, // number of complex samples
- int isign) // isign = 1 -> FFT, -1 -> iFFT
-
-{
- unsigned long n,mmax,m,j,istep,i;
- float wtemp,wr,wpr,wpi,wi,theta;
- float tempr,tempi;
-
- n = nn << 1;
- j = 1;
-
- for( i = 1 ; i < n ; i += 2) { // The bit-reversal
- if(j > i) {
- SWAP(data[j-1],data[i-1]); // Exchanging the two complex number
- SWAP(data[j],data[i]);
- }
-
- m = n >> 1;
-
- while((m >= 2)&&(j > m)) {
- j -= m;
- m >>= 1;
- }
-
- j += m;
- }
-
- mmax = 2;
-
- while(n > mmax) {
- istep = mmax << 1;
- theta = isign*(-2*PI/mmax);
- wtemp = sin(0.5 * theta);
- wpr = -2.0 * wtemp * wtemp;
- wpi = sin(theta);
- wr = 1.0;
- wi = 0.0;
-
- for (m = 1; m < mmax; m += 2) {
- for (i = m; i <= n; i += istep) {
- j = i + mmax;
- tempr = wr*data[j-1] - wi*data[j];
- tempi = wr*data[j] + wi*data[j-1];
- data[j-1] = data[i-1] - tempr;
- data[j] = data[i] - tempi;
- data[i-1] += tempr;
- data[i] += tempi;
- }
-
- wr = (wtemp=wr)*wpr - wi*wpi + wr;
- wi = wi*wpr + wtemp*wpi + wi;
- }
-
- mmax = istep;
- }
-}
-
-
diff --git a/openair1/EMOS/GUI/src/Makefile.am b/openair1/EMOS/GUI/src/Makefile.am
deleted file mode 100644
index 279534da4a..0000000000
--- a/openair1/EMOS/GUI/src/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-include $(OPENAIR_HOME)/common/utils/Makefile.inc
-TOP_DIR = $(OPENAIR1_DIR)
-bin_PROGRAMS = emos_gui
-emos_gui_SOURCES = emos_gui.c emos_gui_forms.c emos_callbacks.c \
-$(TOP_DIR)/PHY/CONFIG/openair_configure.c $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c FFT.c matrix_util.c
-
-# set the include path found by configure
-INCLUDES = -I$(TOP_DIR) -I/usr/realtime/include -I/usr/include/X11 $(all_includes)
-
-# the library search path.
-emos_gui_LDFLAGS = $(all_libraries)
-noinst_HEADERS = emos_gui.h emos_gui_forms.h matrix_util.h
-AM_CFLAGS = -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DEMOS -DNODE_RG -DCBMIMO1 -DPHY_CONTEXT
-emos_gui_LDADD = -L/usr/lib -L/usr/local/lib -L/usr/realtime/lib\
- -L/usr/X11R6/lib -lm -lforms -llxrt -lpthread -lX11 -lXpm -lgps
-
diff --git a/openair1/EMOS/GUI/src/Makefile.in b/openair1/EMOS/GUI/src/Makefile.in
deleted file mode 100644
index b326acd84e..0000000000
--- a/openair1/EMOS/GUI/src/Makefile.in
+++ /dev/null
@@ -1,446 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-bin_PROGRAMS = emos_gui$(EXEEXT)
-subdir = src
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS)
-am_emos_gui_OBJECTS = emos_gui.$(OBJEXT) emos_gui_forms.$(OBJEXT) \
- emos_callbacks.$(OBJEXT) openair_configure.$(OBJEXT) \
- openair_readconfigfile.$(OBJEXT) FFT.$(OBJEXT) \
- matrix_util.$(OBJEXT)
-emos_gui_OBJECTS = $(am_emos_gui_OBJECTS)
-emos_gui_DEPENDENCIES =
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(emos_gui_SOURCES)
-DIST_SOURCES = $(emos_gui_SOURCES)
-HEADERS = $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EXEEXT = @EXEEXT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-TOP_DIR = $(OPENAIR1_DIR)
-emos_gui_SOURCES = emos_gui.c emos_gui_forms.c emos_callbacks.c \
-$(TOP_DIR)/PHY/CONFIG/openair_configure.c $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c FFT.c matrix_util.c
-
-
-# set the include path found by configure
-INCLUDES = -I$(TOP_DIR) -I/usr/realtime/include -I/usr/include/X11 $(all_includes)
-
-# the library search path.
-emos_gui_LDFLAGS = $(all_libraries)
-noinst_HEADERS = emos_gui.h emos_gui_forms.h matrix_util.h
-AM_CFLAGS = -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DEMOS -DNODE_RG -DCBMIMO1 -DPHY_CONTEXT -msse2 -mmmx -msse
-emos_gui_LDADD = -L/usr/lib -L/usr/local/lib -L/usr/realtime/lib\
- -L/usr/X11R6/lib -lm -lforms -llxrt -lpthread -lX11 -lXpm -lgps
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
- done
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-emos_gui$(EXEEXT): $(emos_gui_OBJECTS) $(emos_gui_DEPENDENCIES)
- @rm -f emos_gui$(EXEEXT)
- $(LINK) $(emos_gui_LDFLAGS) $(emos_gui_OBJECTS) $(emos_gui_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FFT.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emos_callbacks.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emos_gui.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emos_gui_forms.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix_util.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openair_configure.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openair_readconfigfile.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-openair_configure.o: $(TOP_DIR)/PHY/CONFIG/openair_configure.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_configure.o -MD -MP -MF "$(DEPDIR)/openair_configure.Tpo" -c -o openair_configure.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_configure.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_configure.Tpo" "$(DEPDIR)/openair_configure.Po"; else rm -f "$(DEPDIR)/openair_configure.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_configure.c' object='openair_configure.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_configure.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_configure.c
-
-openair_configure.obj: $(TOP_DIR)/PHY/CONFIG/openair_configure.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_configure.obj -MD -MP -MF "$(DEPDIR)/openair_configure.Tpo" -c -o openair_configure.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_configure.Tpo" "$(DEPDIR)/openair_configure.Po"; else rm -f "$(DEPDIR)/openair_configure.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_configure.c' object='openair_configure.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_configure.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_configure.c'; fi`
-
-openair_readconfigfile.o: $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_readconfigfile.o -MD -MP -MF "$(DEPDIR)/openair_readconfigfile.Tpo" -c -o openair_readconfigfile.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_readconfigfile.Tpo" "$(DEPDIR)/openair_readconfigfile.Po"; else rm -f "$(DEPDIR)/openair_readconfigfile.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' object='openair_readconfigfile.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_readconfigfile.o `test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' || echo '$(srcdir)/'`$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c
-
-openair_readconfigfile.obj: $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT openair_readconfigfile.obj -MD -MP -MF "$(DEPDIR)/openair_readconfigfile.Tpo" -c -o openair_readconfigfile.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/openair_readconfigfile.Tpo" "$(DEPDIR)/openair_readconfigfile.Po"; else rm -f "$(DEPDIR)/openair_readconfigfile.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c' object='openair_readconfigfile.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o openair_readconfigfile.obj `if test -f '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; then $(CYGPATH_W) '$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; else $(CYGPATH_W) '$(srcdir)/$(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c'; fi`
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-exec install-exec-am \
- install-info install-info-am install-man install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/openair1/EMOS/GUI/src/emos_callbacks.c b/openair1/EMOS/GUI/src/emos_callbacks.c
deleted file mode 100644
index 2c82c9e9d5..0000000000
--- a/openair1/EMOS/GUI/src/emos_callbacks.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifdef HAVE_CONFIG_H
-#include
-#endif
-
-#include
-#include
-
-#include
-#include "emos_gui.h"
-#include "emos_gui_forms.h"
-
diff --git a/openair1/EMOS/GUI/src/emos_gui.c b/openair1/EMOS/GUI/src/emos_gui.c
deleted file mode 100644
index 3921b5cb0d..0000000000
--- a/openair1/EMOS/GUI/src/emos_gui.c
+++ /dev/null
@@ -1,1808 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifdef HAVE_CONFIG_H
-#include
-#endif
-
-// System includes
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-// Realtime includes
-//#include
-#include
-
-// Xform includes
-#include
-
-// Openair includes
-#include "PHY/types.h"
-#include "PHY/defs.h"
-#include "PHY/vars.h"
-#ifdef CBMIMO1
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#endif
-#ifdef PLATON
-#include "daq.h"
-#endif
-
-#include "PHY/CONFIG/vars.h"
-#include "MAC_INTERFACE/vars.h"
-//#include "PHY/TOOLS/defs.h"
-
-// Program includes
-#include "emos_gui.h"
-#include "emos_gui_forms.h"
-#include "matrix_util.h"
-
-
-// Definition of the main form
-FD_main_frm *main_frm;
-Window main_wnd;
-FD_config_dialog *config_frm;
-Window config_wnd;
-
-// Diverse variables and default values
-int power = TERM_OFF;
-int record = REC_OFF;
-int record_multi = REC_OFF;
-int terminal_mode = TERM_MODE_SINGL;
-int file_index = 0;
-int emos_ready = EMOS_READY;
-int openair_dev_fd;
-double screen_refresh_period = 1; // in seconds
-//int screen_refresh_in_frames = 0; // in frames
-int fifo_fd;
-int frame_counter = 0;
-int rec_frame_counter = 0;
-FILE *dumpfile_id = NULL;
-char data_buffer[CHANNEL_BUFFER_SIZE];
-int values_in_memory=0;
-long long start_time;
-int num_tx_ant = 2;
-int num_ch = 2;
-int terminal_idx = 0;
-int pdu_errors[2] = {0,0};
-int pdu_errors_last[2] = {0,0};
-int domain_selector = TIME_DOMAIN;
-int noise_selector = SNR;
-int chsch_index;
-int is_cluster_head = 0;
-int node_id = 8;
-int tx_gain = 0;
-CHBCH_RX_t rxmode = ML;
-
-unsigned char tx_gain_table_c[36] = {
- 113, 111, 0, 0, //-20dBm
- 119, 118, 0, 0, //-15dBm
- 126, 125, 0, 0, //-10dBm
- 133, 131, 0, 0, //-5dBm
- 139, 138, 0, 0, //0dBm
- 147, 145, 0, 0, //5dBm
- 152, 151, 0, 0, //10dBm
- 160, 158, 0, 0, //15dBm
- 177, 173, 30, 17
-}; //20dBm
-unsigned int *tx_gain_table = (unsigned int*) tx_gain_table_c;
-
-
-fifo_read_emos *fifo_output = NULL;
-char *fifo_buffer = NULL;
-char *fifo_ptr = NULL;
-char date_string[1024] = "date: ";
-char dumpfile_dir[1024] = "$HOME/EMOS/data/";
-
-// GUI variables
-float power1_memory[2][SCREEN_MEMORY_SIZE];
-float power2_memory[2][SCREEN_MEMORY_SIZE];
-float noise1_memory[2][SCREEN_MEMORY_SIZE];
-float noise2_memory[2][SCREEN_MEMORY_SIZE];
-float snr1_memory[2][SCREEN_MEMORY_SIZE];
-float snr2_memory[2][SCREEN_MEMORY_SIZE];
-// float bw1_memory[];
-// float bw2_memory[];
-float capacity_memory[SCREEN_MEMORY_SIZE];
-float time_memory[SCREEN_MEMORY_SIZE];
-float ***channel = NULL; // this variable is of size [NB_ANTENNAS](num_tx_ant][NUMBER_OF_OFDM_CARRIERS_EMOS]
-struct complexf ***channelT = NULL; // this variable is of size [NUMBER_OF_OFDM_CARRIERS_EMOS][NB_ANTENNAS](num_tx_ant]
-float *subcarrier_ind = NULL;
-float *delay_ind = NULL;
-
-//Openair variables
-PHY_CONFIG PHY_config_mem;
-PHY_CONFIG *PHY_config;
-
-// GPS
-//char gpsd_buffer[GPSD_BUFFER_SIZE];
-//int gpsd_fd;
-struct gps_data_t *gps_data = NULL;
-struct gps_fix_t dummy_gps_data;
-
-// Function prototypes
-void exit_callback(FL_OBJECT *ob, long user_data);
-void power_callback(FL_OBJECT *ob, long user_data);
-void terminal_mode_callback(FL_OBJECT *ob, long user_data);
-//void use_gps_callback(FL_OBJECT *ob, long user_data);
-//void set_origin_callback(FL_OBJECT *ob, long user_data);
-void refresh_callback(FL_OBJECT *ob, long user_data);
-void record_callback(FL_OBJECT *ob, long user_data);
-void new_data_callback(FL_OBJECT *ob, long user_data);
-void time_freq_callback(FL_OBJECT *ob, long user_data);
-void noise_snr_callback(FL_OBJECT *ob, long user_data);
-void gps_data_callback(FL_OBJECT *ob, long user_data);
-
-void initialize_interface();
-void stop_interface();
-void refresh_interface();
-int open_dumpfile();
-
-void message(const char *msg);
-void error(const char *msg);
-
-int mac_phy_init();
-
-// void get_gps_time_position(int socknum, char *buffer, int buffersize);
-// int open_gpsd_socket();
-// void update_gps_data(struct gps_data_t *gps_data, char *buf);
-
-int help()
-{
- printf("Valid options + default values: -c %d (# CHs), -n %d (# TX ant), -g %d (TX gain (dBm)), -h (help)\n", num_ch, num_tx_ant, tx_gain);
-}
-
-int main(int argc, char *argv[])
-{
- char temp_text[1024];
- char c;
- int ar,at,as;
- long temp = 0;
- int ioctl_result;
-
- printf("sizeof(fifo_read_emos) = %x\n",sizeof(fifo_read_emos));
- printf("sizeof(gps_fix_t) = %x\n",sizeof(struct gps_fix_t));
-
- while ((c = getopt (argc, argv, "hn:c:g:")) != -1) {
- switch (c) {
- case 'h':
- help ();
- exit (1);
-
- /*
- case 'b':
- is_cluster_head = atoi (optarg);
- break;
- case 'i':
- node_id = atoi (optarg);
- break;
- */
- case 'g':
- tx_gain = atoi (optarg);
- break;
-
- case 'n':
- num_tx_ant = atoi (optarg);
- break;
-
- case 'c':
- num_ch = atoi (optarg);
- break;
-
- default:
- help ();
- exit (-1);
- break;
- }
- }
-
- // Initialize the buffers for the channels according to the number of TX antennas
- channel = (float***) malloc(NB_ANTENNAS_RX * sizeof(float**));
-
- if (!channel)
- error("Cannot allocate channel (1)");
-
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++) {
- // Loops over the receive antennas
- channel[ar] = (float**) malloc(num_ch * num_tx_ant * sizeof(float*));
-
- if (!channel[ar])
- error("Cannot allocate channel (2)");
-
- for (at = 0; at < num_tx_ant*num_ch; at++) {
- // Loops over the transmit antennas
- channel[ar][at] = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float));
-
- if (!channel[ar][at])
- error("Cannot allocate channel (3)");
- }
- }
-
- channelT = (struct complexf***) malloc(NUMBER_OF_USEFUL_CARRIERS_EMOS * sizeof(struct complexf**));
-
- if (!channelT)
- error("Cannot allocate channelT (1)");
- else {
- for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++) {
- channelT[as] = (struct complexf**) malloc(NB_ANTENNAS_RX * sizeof(struct complexf*));
-
- if (!channelT[as])
- error("Cannot allocate channelT (2)");
- else {
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++) {
- // Loops over the transmit antennas
- channelT[as][ar] = (struct complexf*) malloc(num_tx_ant * sizeof(struct complexf));
-
- if (!channelT[as][ar])
- error("Cannot allocate channelT (3)");
- }
- }
- }
- }
-
- subcarrier_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float));
-
- if (!subcarrier_ind)
- error("Cannot allocate subcarrier_ind");
-
- for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++)
- subcarrier_ind[as] = //(NUMBER_OF_OFDM_CARRIERS_EMOS/2 + as * num_tx_ant)%NUMBER_OF_OFDM_CARRIERS_EMOS;
- as * num_tx_ant - NUMBER_OF_OFDM_CARRIERS_EMOS/2;
-
- delay_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float));
-
- if (!delay_ind)
- error("Cannot allocate delay_ind");
-
- for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++)
- delay_ind[as] = as / 7.68e6;
-
- fl_initialize(&argc, argv, "EMOS terminal GUI", 0, 0);
- main_frm = create_form_main_frm();
- config_frm = create_form_config_dialog();
-
- // Get time stamp of startup time (for time difference calculations)
- start_time = rt_get_time_ns();
-
- fl_set_timer(main_frm->refresh_timer, screen_refresh_period);
- fl_suspend_timer(main_frm->refresh_timer);
-
- //fl_set_timer(main_frm->gps_timer, 0.05);
- //fl_suspend_timer(main_frm->gps_timer);
-
- stop_interface();
-
- main_wnd = fl_show_form(main_frm->main_frm, FL_PLACE_HOTSPOT, FL_FULLBORDER, "EMOS terminal GUI");
-
- // Check for openair device
- if ((openair_dev_fd = open("/dev/openair0", O_RDWR,0)) < 0) {
- //Could not find the module
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-
- emos_ready = EMOS_NOT_READY;
-
- error("Openair module not found. Load modules first!");
- } else {
- mac_phy_init();
- }
-
- //screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3);
-
- // set the default dumfile directory
- sprintf(dumpfile_dir,"%s/EMOS/data/",getenv("HOME"));
- printf("Default directory = %s\n",dumpfile_dir);
-
- fl_do_forms();
-
- return EXIT_SUCCESS;
-}
-
-
-void initialize_interface()
-{
- char temp_label[1024];
-
- // Pannel widgets
- /////////////////////////////
-
- // Screen widgets
- /////////////////////////////
-
- // Labels
- fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_ON);
-
- /* fl_set_object_color(main_frm->bw1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->bw1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->bw2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->bw2_xyp, SCREEN_COLOR_ON);*/
-
- fl_set_object_color(main_frm->ch11_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch11_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch12_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch12_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch13_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch13_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch14_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch14_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch21_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch21_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch22_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch22_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch23_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch23_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch24_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch24_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->cap_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->cap_xyp, SCREEN_COLOR_ON);
-
- // Labels
- sprintf(temp_label, "idx:");
- fl_set_object_label(main_frm->idx_lbl, temp_label);
- fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_ON);
-
- // Terminal mode indicator
- fl_set_object_lcolor(main_frm->mode_lbl, SCREEN_COLOR_ON);
-
- if(domain_selector == TIME_DOMAIN) {
- fl_set_button(main_frm->time_domain_btn,1);
- fl_set_button(main_frm->freq_domain_btn,0);
- } else {
- fl_set_button(main_frm->time_domain_btn,0);
- fl_set_button(main_frm->freq_domain_btn,1);
- }
-
- if(noise_selector == N0) {
- fl_set_button(main_frm->n0_btn,1);
- fl_set_button(main_frm->snr_btn,0);
- } else {
- fl_set_button(main_frm->n0_btn,0);
- fl_set_button(main_frm->snr_btn,1);
- }
-
- if(terminal_mode == TERM_MODE_SINGL) {
- sprintf(temp_label, "Mode: SGL");
- fl_set_object_label(main_frm->mode_lbl, temp_label);
- fl_set_object_color(main_frm->single_led, LED_COLOR_ON, LED_COLOR_OFF);
- fl_set_object_color(main_frm->multi_led, LED_COLOR_OFF, LED_COLOR_OFF);
- } else {
- sprintf(temp_label, "Mode: MLT");
- fl_set_object_label(main_frm->mode_lbl, temp_label);
- fl_set_object_color(main_frm->single_led, LED_COLOR_OFF, LED_COLOR_OFF);
- fl_set_object_color(main_frm->multi_led, LED_COLOR_ON, LED_COLOR_OFF);
- }
-
- // Recording indicator OFF
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Sync indicator
- fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Error indicator
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Buffer indicator
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF);
-
- // CBMIMO indicator
- if(emos_ready) {
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- } else {
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- // GPS indicator
- fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_OFF);
-
- // Fix indicator
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF);
-
- // X indicator
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF);
-
- // Y indicator
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF);
-
- // Date indicator
- fl_set_object_label(main_frm->date_lbl, date_string);
- fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_ON);
-
- // Refresh interval indicator
- fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_ON);
- sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period);
- fl_set_object_label(main_frm->refresh_lbl, temp_label);
- fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period);
-
- // BLER indicator
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_OFF);
-
- // REC'd frames indicator
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF);
-
- // RX mode indicator
- fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_OFF);
-
- // Messages
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
-
- switch(terminal_idx) {
- case 1:
- fl_set_button(main_frm->terminal_btn1,1);
- break;
-
- case 2:
- fl_set_button(main_frm->terminal_btn2,1);
- break;
-
- case 3:
- fl_set_button(main_frm->terminal_btn3,1);
- break;
-
- case 4:
- fl_set_button(main_frm->terminal_btn4,1);
- break;
- }
-
- switch(rxmode) {
- case SINGLE:
- fl_set_button(main_frm->single_btn,1);
- break;
-
- case MMSE:
- fl_set_button(main_frm->mmse_btn,1);
- break;
-
- case ML:
- fl_set_button(main_frm->ml_btn,1);
- break;
- }
-
-
- // fl_set_object_color(main_frm->const1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- // fl_set_object_color(main_frm->const2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- // fl_set_object_lcolor(main_frm->const1_xyp, SCREEN_COLOR_ON);
- // fl_set_object_lcolor(main_frm->const2_xyp, SCREEN_COLOR_ON);
-
- fl_deactivate_object(main_frm->num_sym_dial);
- fl_deactivate_object(main_frm->num_sym_plus);
- fl_deactivate_object(main_frm->num_sym_minus);
- //fl_deactivate_object(main_frm->use_gps_btn);
- //fl_deactivate_object(main_frm->set_origin_btn);
-}
-
-void stop_interface()
-{
- // Pannel widgets
- /////////////////////////////
- fl_set_object_color(main_frm->single_led, LED_COLOR_OFF, LED_COLOR_OFF);
- fl_set_object_color(main_frm->multi_led, LED_COLOR_OFF, LED_COLOR_OFF);
-
- // Screen widgets
- /////////////////////////////
-
- // Labels
- fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_BG);
-
- // Graphs
- fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_BG);
-
- /* fl_set_object_color(main_frm->bw1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->bw1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->bw2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->bw2_xyp, SCREEN_COLOR_BG);*/
-
- fl_set_object_color(main_frm->ch11_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch11_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch12_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch12_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch13_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch13_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch14_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch14_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch21_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch21_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch22_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch22_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch23_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch23_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch24_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch24_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->cap_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->cap_xyp, SCREEN_COLOR_BG);
-
- // Labels
-
- // Index indicator
- fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_BG);
-
- // Terminal mode indicator
- fl_set_object_lcolor(main_frm->mode_lbl, SCREEN_COLOR_BG);
-
- // Recording indicator OFF
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Sync indicator
- fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Error indicator
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Buffer indicator
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_BG);
-
- // CBMIMO indicator
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // GPS indicator
- fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Fix indicator
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
-
- // X indicator
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_BG);
-
- // Y indicator
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_BG);
-
- // Date indicator
- fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_BG);
-
- // Refresh interval indicator
- fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_BG);
-
- // BLER indicator
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_BG);
-
- // REC'd frames indicator
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_BG);
-
- // RX mode indicator
- fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_BG);
-
- // Messages
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_BG);
-
- /* fl_set_object_color(main_frm->const1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->const2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->const1_xyp, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->const2_xyp, SCREEN_COLOR_BG);*/
-
-}
-
-void refresh_interface()
-{
- char temp_label[1024];
- int i,ar,at,as,ac, gps_error;
- float disp_max_power = 0;
- struct complexf channel_temp[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]; //frequency response of one link of the MIMO channel
- struct complexf channel_temp2[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant/2]; //frequency response of one link of the MIMO channel
- struct complexf **IpHH=NULL; //matrix used for the capacity of one subcarrier C[i] = log(det(IpHH))
- float norm = 0;
- double snr_lin;
- float capacity4x2 = 0; //overall capacity of the 4x2 frequency selcective MIMO channel
- static RTIME last_timestamp = (RTIME) 0;
- int disp_min_power = 30;
-
- IpHH = (struct complexf **) malloc(NB_ANTENNAS_RX * sizeof(struct complexf *));
-
- for (ar=0; archannel_f_unpacked[ac][ar][as*num_tx_ant + at].r;
- channel_temp[as].i = (float) fifo_output->channel_f_unpacked[ac][ar][as*num_tx_ant + at].i;
- }
-
- if(domain_selector == TIME_DOMAIN) {
- // IFFT of the freq domain channel
- FFT((float*) channel_temp, NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, -1);
-
- // normalize by 1/sqrt(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant)
- for (i=0; i disp_max_power)
- disp_max_power = channel[ar][at][as];
- }
- }
- }
- }
-
- disp_max_power = 90;
-
- // Lost frames
- pdu_errors_last[0] = pdu_errors[0];
- pdu_errors[0] = fifo_output->pdu_errors[0];
- pdu_errors_last[1] = pdu_errors[1];
- pdu_errors[1] = fifo_output->pdu_errors[1];
-
- // Capacity
- // We calculate the capacity of the frequency selective channel according to [Eq. (4.58), Paulraj et al. 2003]:
- // C = 1/(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant) sum_{i=0}^{NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant}
- // log2(det(I + 1/num_tx_ant H H^H))
-
- // Reshape the channel stored in fifo_output->channel_f_unpacked and calculate norm
- norm = 0;
-
- for (as=0; aschannel_f_unpacked[0][ar][(176+as*num_tx_ant)%NUMBER_OF_OFDM_CARRIERS_EMOS + at].r;
- channelT[as][ar][at].i = (float) fifo_output->channel_f_unpacked[0][ar][(176+as*num_tx_ant)%NUMBER_OF_OFDM_CARRIERS_EMOS + at].i;
- /* channelT[as][ar][at].r = (float) 1;
- channelT[as][ar][at].i = (float) 0; */
- }
- }
-
- norm += norm_fro_sq(channelT[as],NB_ANTENNAS_RX,num_tx_ant);
- }
-
- //printf("H = [%g %g; %g %g]\n",channelT[0][0][0].r,channelT[0][0][1].r,channelT[0][1][0].r,channelT[0][1][1].r);
-
- norm /= (NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant);
- //printf("norm=%g\n",norm);
-
- snr_lin = (pow(10,(double) (fifo_output->PHY_measurements.rx_power_dB[0] - fifo_output->PHY_measurements.n0_power_dB[0])/10) +
- pow(10,(double) (fifo_output->PHY_measurements.rx_power_dB[1] - fifo_output->PHY_measurements.n0_power_dB[1])/10))/2;
-
- // calculate capacity for each subcarrier and take the mean
- capacity4x2 = 0;
-
- for (as=0; astimestamp) {
- //printf("rx_power=%d, noise_power=%d, snr=%d\n",fifo_output->rx_power_db[0],fifo_output->n0_power_db[0],fifo_output->rx_power_db[0]-fifo_output->n0_power_db[0]);
-
- /*
- if(values_in_memory < SCREEN_MEMORY_SIZE)
- {
- // Initial vector filling
- time_memory[values_in_memory] = (float)(fifo_output->timestamp - start_time) / (float)1e9;
- power1_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][0];
- power2_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][1];
- noise1_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][0];
- noise2_memory[chsch_index-1][values_in_memory] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][1];
- //noise2_memory[values_in_memory] = ((float) (pdu_errors - pdu_errors_last)/(screen_refresh_period/2.6667e-3));
- snr1_memory[chsch_index-1][values_in_memory] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][0] - fifo_output->PHY_measurements.n0_power_dB[chsch_index][0]);
- snr2_memory[chsch_index-1][values_in_memory] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][1] - fifo_output->PHY_measurements.n0_power_dB[chsch_index][1]);
- capacity_memory[values_in_memory] = capacity4x2;
- values_in_memory++;
- }
- else
- */
-
- // FIFO vector filling
- for (i = 0; i < SCREEN_MEMORY_SIZE - 1; i++) {
- time_memory[i] = time_memory[i+1];
-
- for (chsch_index=0; chsch_index<2; chsch_index++) {
- power1_memory[chsch_index][i] = power1_memory[chsch_index][i+1];
- power2_memory[chsch_index][i] = power2_memory[chsch_index][i+1];
- noise1_memory[chsch_index][i] = noise1_memory[chsch_index][i+1];
- noise2_memory[chsch_index][i] = noise2_memory[chsch_index][i+1];
- snr1_memory[chsch_index][i] = snr1_memory[chsch_index][i+1];
- snr2_memory[chsch_index][i] = snr2_memory[chsch_index][i+1];
- }
-
- capacity_memory[i] = capacity_memory[i+1];
- }
-
-
- time_memory[SCREEN_MEMORY_SIZE - 1] = (float)(fifo_output->timestamp - start_time) / (float)1e9;
-
- for (chsch_index=0; chsch_index<2; chsch_index++) {
- if (!is_cluster_head) {
- power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index+1][0];
- power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index+1][1];
- noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][0];
- noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][1];
- snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index+1][0] -
- fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][0]);
- snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index+1][1] -
- fifo_output->PHY_measurements.n0_power_dB[chsch_index+1][1]);
- } else {
- power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][0];
- power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.rx_rssi_dBm[chsch_index][1];
- noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][0];
- noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output->PHY_measurements.n0_power_dB[chsch_index][1];
- snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][0] -
- fifo_output->PHY_measurements.n0_power_dB[chsch_index][0]);
- snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)(fifo_output->PHY_measurements.rx_power_dB[chsch_index][1] -
- fifo_output->PHY_measurements.n0_power_dB[chsch_index][1]);
- }
- }
-
- capacity_memory[SCREEN_MEMORY_SIZE - 1] = capacity4x2;
-
- values_in_memory = SCREEN_MEMORY_SIZE;
- }
-
- last_timestamp = fifo_output->timestamp;
-
- // Pannel widgets
- /////////////////////////////
-
- // Screen widgets
- /////////////////////////////
-
- // Power meters
- fl_set_xyplot_data(main_frm->pwr1_xyp, time_memory, power1_memory[0], values_in_memory, "", "time (s)", "dBm");
- fl_add_xyplot_overlay(main_frm->pwr1_xyp, 1, time_memory, power1_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->pwr1_xyp, -100, -40);
- fl_set_xyplot_data(main_frm->pwr2_xyp, time_memory, power2_memory[0], values_in_memory, "", "time (s)", "dBm");
- fl_add_xyplot_overlay(main_frm->pwr2_xyp, 1, time_memory, power2_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->pwr2_xyp, -100, -40);
-
- if (noise_selector == N0) {
- fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, noise1_memory[0], values_in_memory, "", "time (s)", "dB");
- fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, noise1_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40);
- fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, noise2_memory[0], values_in_memory, "", "time (s)", "dB");
- fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, noise2_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40);
- //fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 1);
- } else {
- fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, snr1_memory[0], values_in_memory, "", "time (s)", "dB");
- fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, snr1_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40);
- fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, snr2_memory[0], values_in_memory, "", "time (s)", "dB");
- fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, snr2_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40);
- }
-
- // Channel response
- if(domain_selector == FREQ_DOMAIN) {
- // Frequency domain plots
- fl_set_xyplot_data(main_frm->ch11_xyp, subcarrier_ind, channel[0][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch11_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch11_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch11_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch12_xyp, subcarrier_ind, channel[0][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch12_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch12_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch12_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch21_xyp, subcarrier_ind, channel[1][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch21_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch21_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch21_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch22_xyp, subcarrier_ind, channel[1][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch22_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch22_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch22_xyp, disp_min_power, disp_max_power);
-
- if ((num_tx_ant*num_ch)==4) {
- fl_set_xyplot_data(main_frm->ch13_xyp, subcarrier_ind, channel[0][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch13_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch13_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch13_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch13_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch14_xyp, subcarrier_ind, channel[0][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch14_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch14_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch14_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch14_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch23_xyp, subcarrier_ind, channel[1][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch23_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch23_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch23_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch23_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch24_xyp, subcarrier_ind, channel[1][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch24_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch24_xyp, -1, -1);
- fl_set_xyplot_xbounds(main_frm->ch24_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch24_xyp, disp_min_power, disp_max_power);
- }
- } else {
- // Time domain plots
- fl_set_xyplot_data(main_frm->ch11_xyp, delay_ind, channel[0][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch11_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch11_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch11_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch12_xyp, delay_ind, channel[0][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch12_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch12_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch12_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch21_xyp, delay_ind, channel[1][0], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch21_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch21_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch21_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch22_xyp, delay_ind, channel[1][1], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch22_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch22_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch22_xyp, disp_min_power, disp_max_power);
-
- if ((num_tx_ant*num_ch)==4) {
- fl_set_xyplot_data(main_frm->ch13_xyp, delay_ind, channel[0][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch13_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch13_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch13_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch14_xyp, delay_ind, channel[0][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch14_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch14_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch14_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch23_xyp, delay_ind, channel[1][2], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch23_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch23_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch23_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch24_xyp, delay_ind, channel[1][3], NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant, "", "delay", "dB");
- fl_set_xyplot_xtics(main_frm->ch24_xyp, 2, 1);
- fl_set_xyplot_xbounds(main_frm->ch24_xyp, 0, delay_ind[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]);
- fl_set_xyplot_ybounds(main_frm->ch24_xyp, disp_min_power, disp_max_power);
- }
- }
-
- // BLER
- if ((is_cluster_head) || (fifo_output->rx_mode==0)) {
- sprintf(temp_label, "BLER: %f", ((double) (pdu_errors[0] - pdu_errors_last[0])/(screen_refresh_period/0.0031508)));
- fl_set_object_label(main_frm->bler_lbl, temp_label);
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_ON);
- } else {
- sprintf(temp_label, "BLER: %f, %f", ((double) (pdu_errors[0] - pdu_errors_last[0])/(screen_refresh_period/0.0031508)),
- ((double) (pdu_errors[1] - pdu_errors_last[1])/(screen_refresh_period/0.0031508)));
- fl_set_object_label(main_frm->bler_lbl, temp_label);
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_ON);
- }
-
- // RX mode
- if (!is_cluster_head) {
- switch (fifo_output->rx_mode) {
- case 0:
- sprintf(temp_label, "RX mode: SINGLE");
- break;
-
- case 1:
- sprintf(temp_label, "RX mode: MMSE");
- break;
-
- case 2:
- sprintf(temp_label, "RX mode: ML");
- break;
-
- default:
- sprintf(temp_label, "RX mode: %d",fifo_output->rx_mode);
- }
-
- fl_set_object_label(main_frm->rx_mode_lbl, temp_label);
- fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_ON);
- }
-
- // Capacity
- fl_set_xyplot_data(main_frm->cap_xyp, time_memory, capacity_memory, values_in_memory, "", "time (s)", "Bits/sec/Hz");
- fl_set_xyplot_ybounds(main_frm->cap_xyp, 0, 10);
-
-
- }
-
- // update GPS
- if(gps_data) {
- if (gps_data->online) {
- switch(gps_data->fix.mode) {
- case MODE_2D:
- // Fix indicator
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "2D");
-
- // X indicator
- sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude);
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lat_lbl, temp_label);
-
- // Y indicator
- sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude);
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lon_lbl, temp_label);
-
- break;
-
- case MODE_3D:
- // Fix indicator
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "3D");
-
- // X indicator
- sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude);
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lat_lbl, temp_label);
-
- // Y indicator
- sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude);
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lon_lbl, temp_label);
- break;
-
- default:
- // STATUS_NO_FIX:
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "NO");
-
- // X indicator
- sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude);
- fl_set_object_label(main_frm->gps_lat_lbl, temp_label);
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF);
-
- // Y indicator
- sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude);
- fl_set_object_label(main_frm->gps_lon_lbl, temp_label);
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF);
- break;
- }
- } else {
- // STATUS_NO_FIX:
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "NO");
-
- //printf("GPS not online\n");
- }
- }
-
- for (ar=0; armsg_text, msg);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
-}
-
-void error(const char *msg)
-{
- fprintf(stderr,msg);
- fprintf(stderr,"\n");
- fl_set_object_label(main_frm->msg_text, msg);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-}
-//
-// EXIT function
-//
-void exit_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_text[1024];
- int ar,at,as;
-
- if (power) {
- //message("Turn the terminal off with prior to exiting.");
- sprintf(temp_text, "Turn the terminal off with prior to exiting.");
- fl_set_object_label(main_frm->msg_text, temp_text);
- } else {
- printf("exiting normally.\n");
-
- // Openair device
- close(openair_dev_fd);
-
- // Free the channel buffer memory
- /*
- if (num_tx_ant == 2)
- {
- free(ch11);
- free(ch12);
- free(ch21);
- free(ch22);
- }
- else if (num_tx_ant == 4)
- {
- free(ch11);
- free(ch12);
- free(ch13);
- free(ch14);
- free(ch21);
- free(ch22);
- free(ch23);
- free(ch24);
- }
- */
-
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++) {
- // Loops over the receive antennas
- for (at = 0; at < num_tx_ant*num_ch; at++) {
- // Loops over the transmit antennas
- free(channel[ar][at]);
- }
-
- free(channel[ar]);
- }
-
- free(channel);
- channel = NULL;
-
- for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++) {
- // Loops over the receive antennas
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++) {
- // Loops over the transmit antennas
- free(channelT[as][ar]);
- }
-
- free(channelT[as]);
- }
-
- free(channelT);
- channelT = NULL;
- free(subcarrier_ind);
- subcarrier_ind = NULL;
- free(delay_ind);
- delay_ind = NULL;
-
- exit(0);
- }
-}
-
-void power_callback(FL_OBJECT *ob, long user_data)
-{
- int ioctl_result;
- char temp_text[1024];
-
- if (emos_ready) {
- // Turns on and off the acquisition
- if (!power) {
- if (terminal_idx!=0) {
- // Turn the receiver on
- unsigned int fc = 0;
- unsigned int frequency = 1;
- //unsigned char gains[4];
-
- //gains[0] = 177;
- //gains[1] = 173;
- //gains[2] = 30;
- //gains[3] = 17;
-
- ioctl_result=ioctl(openair_dev_fd,openair_SET_TX_GAIN,&tx_gain_table[tx_gain/5+4]);
- ioctl_result=ioctl(openair_dev_fd,openair_SET_RX_MODE,&rxmode);
-
- if (terminal_idx==1) {
- is_cluster_head = 1;
- node_id = 0;
- fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5);
- ioctl_result+=ioctl(openair_dev_fd, openair_START_1ARY_CLUSTERHEAD, &fc);
- } else if (terminal_idx==2) {
- is_cluster_head = 2;
- node_id = 1;
- fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5);
- ioctl_result+=ioctl(openair_dev_fd, openair_START_2ARY_CLUSTERHEAD, &fc);
- } else if (terminal_idx==3) {
- is_cluster_head = 0;
- node_id = 8;
- fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5);
- ioctl_result+=ioctl(openair_dev_fd, openair_START_NODE, &fc);
- } else if (terminal_idx==4) {
- is_cluster_head = 0;
- node_id = 9;
- fc = (1) | ((frequency&3)<<1) | ((frequency&3)<<3) | ((node_id&0xFF) << 5);
- ioctl_result+=ioctl(openair_dev_fd, openair_START_NODE, &fc);
- } else
- error("Unknown terminal index");
-
- if (ioctl_result != 0) {
- printf(temp_text, "Error starting terminal mode!");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- // Open the EMOS FIFO
- fifo_fd = open(CHANSOUNDER_FIFO_DEV, O_RDONLY);
-
- if (fifo_fd < 0) {
- printf(temp_text, "Error opening the EMOS FIFO!");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- // flush the FIFO
- if (rtf_reset(fifo_fd))
- error("Error reseting FIFO");
-
- // Ties the FIFO handling routine
- fl_add_io_callback(fifo_fd, FL_READ, &new_data_callback, NULL);
-
- // open GPS
- gps_data = gps_open("127.0.0.1","2947");
-
- if (gps_data == NULL) {
- fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- error("Could not open GPS");
- } else {
- if (gps_query(gps_data, "w+x\n") != 0) {
- //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data);
- error("Error sending command to GPS");
- } else
- fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- }
-
- if (gps_data)
- fl_add_io_callback(gps_data->gps_fd, FL_READ, &gps_data_callback, NULL);
-
-
- // resume timer
- fl_resume_timer(main_frm->refresh_timer);
- //fl_resume_timer(main_frm->gps_timer);
-
- initialize_interface();
- power = TERM_ON;
- } else {
- error("Set terminal index first!");
- }
- } else {
- if (record) {
- sprintf(temp_text, "Still recording! Stop recording prior to powering down.");
- fl_set_object_label(main_frm->msg_text, temp_text);
- } else {
- fl_suspend_timer(main_frm->refresh_timer);
-
- // Turn the receiver off
- ioctl_result = ioctl(openair_dev_fd, openair_STOP, NULL);
-
- if (ioctl_result != 0) {
- printf(temp_text, "Error stopping terminal mode!");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- //fl_suspend_timer(main_frm->gps_timer);
-
- if (gps_data) {
- gps_close(gps_data);
- gps_data = NULL;
- }
-
- stop_interface();
- power = TERM_OFF;
- }
- }
- }
-}
-
-
-//
-// Terminal mode function
-//
-void terminal_mode_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_label[1024];
-
- terminal_mode ^= 0x1;
-
- if(terminal_mode == TERM_MODE_SINGL) {
- sprintf(temp_label, "Mode: SGL");
- fl_set_object_label(main_frm->mode_lbl, temp_label);
- fl_set_object_color(main_frm->single_led, LED_COLOR_ON, LED_COLOR_OFF);
- fl_set_object_color(main_frm->multi_led, LED_COLOR_OFF, LED_COLOR_OFF);
- } else {
- sprintf(temp_label, "Mode: MLT");
- fl_set_object_label(main_frm->mode_lbl, temp_label);
- fl_set_object_color(main_frm->single_led, LED_COLOR_OFF, LED_COLOR_OFF);
- fl_set_object_color(main_frm->multi_led, LED_COLOR_ON, LED_COLOR_OFF);
- }
-}
-
-// //
-// // GPS function
-// //
-// void use_gps_callback(FL_OBJECT *ob, long user_data)
-// {
-// //gpsd_fd = open_gpsd_socket();
-// if(!gps_data)
-// {
-// gps_data = gps_open("127.0.0.1","2947");
-// if (gps_data == NULL)
-// {
-// fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-// error("Could not open GPS");
-// }
-// else
-// {
-// fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
-// }
-// //gps_set_raw_hook(gps_data, &update_gps_data);
-// }
-// else
-// {
-// gps_close(gps_data);
-// gps_data = NULL;
-// fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-// fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-// fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF);
-// fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF);
-// }
-// }
-
-// //
-// // Origin function
-// //
-// void set_origin_callback(FL_OBJECT *ob, long user_data)
-// {
-// message("Not yet implemented");
-// //printf("exiting normally.\n");
-// //exit(0);
-// }
-
-//
-// Refresh function
-//
-void refresh_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_label[1024];
-
- // update the dial
- screen_refresh_period = fl_get_dial_value(main_frm->refresh_dial);
- screen_refresh_period += (double) user_data / 10.0;
-
- if (screen_refresh_period > 5)
- screen_refresh_period = 5;
- else if (screen_refresh_period < 0.05)
- screen_refresh_period = 0.05;
-
- fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period);
-
- fl_set_timer(main_frm->refresh_timer,screen_refresh_period);
-
- // Update the screen refresh in frames
- // screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3)+1;
-
- sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period);
- fl_set_object_label(main_frm->refresh_lbl, temp_label);
-}
-
-//
-// Refresh function
-//
-void record_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_text[1024];
-
- if(power) {
- // Terminal mode leds
- if(record) {
- // @TODO write rest of the buffer to disk
-
- // Turn off recording
- record = REC_OFF;
- rec_frame_counter = 0;
-
- // release the buffer
- free(fifo_buffer);
- fifo_buffer = NULL;
- fifo_output = NULL;
- fifo_ptr = NULL;
-
- // close the dumpfile
- fclose(dumpfile_id);
- dumpfile_id = NULL;
-
- } else {
- // Turn on recording
- if (open_dumpfile() == 0)
- record = REC_ON;
-
- // else
- // error("Error opening dumpfile");
-
- }
- }
-}
-
-int open_dumpfile()
-{
- char dumpfile_name[1024];
- char temp_label[1024];
-
- // create the dumpfile buffer
- // allocate memory for NO_FRAMES_DISK channes estimations
- fifo_buffer = malloc(NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE);
- fifo_ptr = fifo_buffer;
-
- if(fifo_buffer == NULL) {
- error( "Could not allocate memory for fifo2file_buffer");
- return -1;
- }
-
- // open the dumpfile
- time_t starttime_tmp;
- struct tm starttime;
-
- time(&starttime_tmp);
- localtime_r(&starttime_tmp,&starttime);
- snprintf(dumpfile_name,1024,"%sdata_term%d_idx%d_%d%0.2d%0.2d_%0.2d%0.2d%0.2d.EMOS",dumpfile_dir,terminal_idx,file_index,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday,
- starttime.tm_hour, starttime.tm_min, starttime.tm_sec);
-
- dumpfile_id = fopen(dumpfile_name,"w");
-
- if (dumpfile_id == NULL) {
- sprintf(temp_label,"Error opening dumpfile %s", dumpfile_name);
- error(temp_label);
- return -1;
- }
-
- snprintf(date_string,1024,"date: %d%0.2d%0.2d_%0.2d%0.2d%0.2d",1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, starttime.tm_min, starttime.tm_sec);
- fl_set_object_label(main_frm->date_lbl, date_string);
- sprintf(temp_label, "idx: %d", file_index);
- fl_set_object_label(main_frm->idx_lbl, temp_label);
-
- return 0;
-}
-
-//
-// Prcesses all the new data in the FIFO
-//
-void new_data_callback(FL_OBJECT *ob, long user_data)
-{
- int n_bytes = 0;
- char temp_text[1024];
-
- // Read data from FIFO
- n_bytes = rtf_read_all_at_once(fifo_fd, &data_buffer, CHANNEL_BUFFER_SIZE);
-
- if (n_bytes != CHANNEL_BUFFER_SIZE) {
- sprintf(temp_text, "Error reading FIFO.");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- }
-
- fifo_output = (fifo_read_emos*) data_buffer;
-
- if (terminal_mode == TERM_MODE_MULTI) {
- /* if (fifo_output->crc_status == 0)
- {
- memcpy(&file_index,fifo_output->chbch_pdu+sizeof(RTIME)+4,sizeof(int));
- record_multi = (int) fifo_output->chbch_pdu[16];
- }*/
-
- if (fifo_output->PHY_measurements.frame_tx[0] % REC_FRAMES_MAX < REC_FRAMES_PER_FILE)
- record_multi = REC_ON;
- else
- record_multi = REC_OFF;
-
- file_index = fifo_output->PHY_measurements.frame_tx[0]/REC_FRAMES_MAX % REC_FILE_IDX_MAX;
- }
-
- if((frame_counter % 1000) == 0) {
- printf("record = %d. record_multi = %d, terminal_mode = %d, frame_tx=%d, file_index = %d\n", record, record_multi, terminal_mode, fifo_output->PHY_measurements.frame_tx[0], file_index);
- /* printf("sizeof(struct gps_fix_t)=%d\n",sizeof(struct gps_fix_t));
- refresh_interface();*/
- }
-
- frame_counter++;
-
- if ((record==REC_ON && terminal_mode == TERM_MODE_SINGL) || (record==REC_ON && record_multi==REC_ON && terminal_mode == TERM_MODE_MULTI)) {
- // Recording indicator ON
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_ON);
-
- if (dumpfile_id == NULL) {
- error("Dumpfile not open");
- } else {
- // copy the data to the fifo buffer
- memcpy(fifo_ptr, data_buffer, CHANNEL_BUFFER_SIZE);
- fifo_ptr += CHANNEL_BUFFER_SIZE;
- rec_frame_counter++;
-
- sprintf(temp_text,"Buffer: %3d%%", ((rec_frame_counter%NO_ESTIMATES_DISK)*100/NO_ESTIMATES_DISK));
- fl_set_object_label(main_frm->buffer_lbl,temp_text);
- sprintf(temp_text,"Rec'd Frames: %d", rec_frame_counter);
- fl_set_object_label(main_frm->n_recd_frames_lbl,temp_text);
-
- // store data to disk
- if (rec_frame_counter%NO_ESTIMATES_DISK==0) {
- //reset stuff
- fifo_ptr = fifo_buffer;
-
- //flush buffer to disk
- printf("flushing buffer to disk\n");
-
- if (fwrite(fifo_buffer, sizeof(char), NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE, dumpfile_id) != NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE) {
- message("Error writing to dumpfile, stopping recording");
- record = REC_OFF;
- }
-
- // write GPS data to disk
- if (gps_data) {
- if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- message("Error writing to dumpfile, stopping recording");
- record = REC_OFF;
- }
- } else {
- message("WARNING: No GPS data available, storing dummy packet");
-
- if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- message("Error writing to dumpfile, stopping recording");
- record = REC_OFF;
- }
- }
- }
- }
- } else if (record==REC_ON && record_multi==REC_OFF && terminal_mode == TERM_MODE_MULTI) {
- // Recording indicator Ready
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-
- if (rec_frame_counter > 0) {
- // Turn off recording
- record = REC_OFF;
- rec_frame_counter = 0;
-
- // release the buffer
- free(fifo_buffer);
- fifo_buffer = NULL;
- fifo_output = NULL;
- fifo_ptr = NULL;
-
- // close the dumpfile
- fclose(dumpfile_id);
- dumpfile_id = NULL;
-
- // open another dumpfile
- if (open_dumpfile() == 0)
- record = REC_ON;
- else
- error("Error opening dumpfile");
- }
- } else { //record==REC_OFF
- // Recording indicator OFF
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF);
- }
-}
-
-//
-// Initializes the MAC and PHY vars
-//
-int mac_phy_init()
-{
- int ioctl_result;
-
- // FILE *config; --> already declared in config_vars.h
- // FILE *scenario; --> already declared in config_vars.h
-
- char temp_text[1024];
-
- // Load configuration files
- if ((config = fopen("./config.cfg","r")) == NULL) {
- error("Openair configuration file could not be found!");
- emos_ready = EMOS_NOT_READY;
- return -1;
- }
-
- if ((scenario = fopen("./scenario.scn","r")) == NULL) {
- error("Openair scenario file could not be found!");
- emos_ready = EMOS_NOT_READY;
- return -1;
- }
-
- // Load openair configuration
- PHY_config = (PHY_CONFIG *)&PHY_config_mem;
- // PHY_vars = malloc(sizeof(PHY_VARS));
- // mac_xface = malloc(sizeof(MAC_xface));
-
- reconfigure_MACPHY(scenario);
-
- //phy_init();
- //mac_init();
-
- // Load the configuration to the device driver
- ioctl_result = ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config);
-
- if (ioctl_result != 0) {
- error("Loading openair configuration in kernel space failed!");
- emos_ready = EMOS_NOT_READY;
- return -1;
- }
-
- // Openair configuration
- fclose(config);
-
- // Openair scenario
- // fclose(scenario_fd); --> already closed in reconfigure_MACPHY
-
- dump_config();
- return 0;
-}
-
-//
-// Refresh function
-//
-void terminal_button_callback(FL_OBJECT *ob, long user_data)
-{
- fl_set_button(main_frm->terminal_btn1,0);
- fl_set_button(main_frm->terminal_btn2,0);
- fl_set_button(main_frm->terminal_btn3,0);
- fl_set_button(main_frm->terminal_btn4,0);
- fl_set_button(ob,1);
- terminal_idx = user_data;
-}
-
-void rx_mode_button_callback(FL_OBJECT *ob, long user_data)
-{
- fl_set_button(main_frm->single_btn,0);
- fl_set_button(main_frm->mmse_btn,0);
- fl_set_button(main_frm->ml_btn,0);
- fl_set_button(ob,1);
-
- switch (user_data) {
- case 0:
- rxmode = SINGLE;
- break;
-
- case 1:
- rxmode = MMSE;
- break;
-
- case 2:
- rxmode = ML;
- break;
-
- default:
- rxmode = ML;
- }
-}
-
-
-//
-// Time/Freq domain selector
-//
-void time_freq_callback(FL_OBJECT *ob, long user_data)
-{
- fl_set_button(main_frm->time_domain_btn,0);
- fl_set_button(main_frm->freq_domain_btn,0);
- fl_set_button(ob,1);
- domain_selector = user_data;
-}
-
-//
-// SNR/N0 selector
-//
-void noise_snr_callback(FL_OBJECT *ob, long user_data)
-{
- fl_set_button(main_frm->snr_btn,0);
- fl_set_button(main_frm->n0_btn,0);
- fl_set_button(ob,1);
- noise_selector = user_data;
- printf("noise_selector = %d\n",noise_selector);
-}
-
-//
-// Refresh function
-//
-void file_index_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_label[1024];
-
- // update the dial
- file_index = fl_get_dial_value(main_frm->file_index_dial);
- file_index += user_data;
-
- if (file_index > 100)
- file_index = 100;
- else if (file_index < 0)
- file_index = 0;
-
- fl_set_dial_value(main_frm->file_index_dial, file_index);
-
- sprintf(temp_label, "idx: %d", file_index);
- fl_set_object_label(main_frm->idx_lbl, temp_label);
-}
-
-void refresh_timer_callback(FL_OBJECT *ob, long user_data)
-{
- refresh_interface();
- fl_set_timer(ob, screen_refresh_period);
-}
-
-void config_btn_callback(FL_OBJECT *ob, long user_data)
-{
-
- config_wnd = fl_show_form(config_frm->config_dialog, FL_PLACE_HOTSPOT, FL_FULLBORDER, "Select Directory");
- fl_set_input(config_frm->dir_input,dumpfile_dir);
-
-}
-
-void get_dir_callback(FL_OBJECT *ob, long user_data)
-{
- const char *filename;
- filename = fl_get_input(config_frm->dir_input);
-
- if (user_data==0)
- strcpy(dumpfile_dir, filename);
-
- printf("Directory = %s\n",dumpfile_dir);
- fl_hide_form(config_frm->config_dialog);
-}
-/*
-void get_gps_time_position(int socknum, char *buffer, int buffersize)
-{
- dprintf(socknum, "dp\n");
- memset(buffer, 0, buffersize);
- read(socknum, buffer, buffersize);
-}
-
-int open_gpsd_socket()
-{
- struct sockaddr_in skin;
- struct servent *sp;
- int socknum = -1;
-
- if ((sp=getservbyname("gpsd","tcp"))==NULL) //get port number for gpsd daemon service
- error("get gpsd port number failed");
- if ((socknum=socket(AF_INET,SOCK_STREAM,0))<0)
- error("failed to create gpsd socket");
-
- memset(&skin,0,sizeof(struct sockaddr_in));
-
- skin.sin_family = AF_INET;
- skin.sin_port = sp->s_port;
- inet_aton("127.0.0.1",&(skin.sin_addr.s_addr));
-
- if (connect(socknum,&skin,sizeof(struct sockaddr_in))< 0) {
- error("Failed to connect to GPSD socket");
- return -1;
- } else
- return socknum;
-
-}
-
-void update_gps_data(struct gps_data_t *gps_data, char *buf)
-{
- printf("%s\n",buf);
- printf("GPS online = %f, mode = %d, lat = %f, lon = %f\n",gps_data->online,gps_data->fix.mode,gps_data->fix.latitude,gps_data->fix.longitude);
-}
-
-*/
diff --git a/openair1/EMOS/GUI/src/emos_gui.h b/openair1/EMOS/GUI/src/emos_gui.h
deleted file mode 100644
index cdea608aea..0000000000
--- a/openair1/EMOS/GUI/src/emos_gui.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "SCHED/phy_procedures_emos.h"
-
-#define TERM_MODE_SINGL 0
-#define TERM_MODE_MULTI 1
-
-#define TERM_ON 1
-#define TERM_OFF 0
-
-#define SCREEN_COLOR_ON FL_CHARTREUSE
-#define SCREEN_COLOR_OFF FL_RIGHT_BCOL
-#define SCREEN_COLOR_BG FL_BLACK
-#define SCREEN_COLOR_HL FL_RED
-
-#define LED_COLOR_ON FL_RED
-#define LED_COLOR_OFF FL_RIGHT_BCOL
-
-#define REC_ON 1
-#define REC_OFF 0
-
-#define EMOS_NOT_READY 0
-#define EMOS_READY 1
-
-#define TIME_DOMAIN 0
-#define FREQ_DOMAIN 1
-
-#define N0 0
-#define SNR 1
-
-#define REC_FRAMES_MAX 22500
-#define REC_FRAMES_PER_FILE 18750
-#define REC_FILE_IDX_MAX 100
-
-#define CHANSOUNDER_FIFO_DEV "/dev/rtf3"
-
-#define NO_ESTIMATES_DISK 100 //No. of estimates that are aquired before dumped to disk
-
-/*
-#define TIMESTAMP_SIZE 8
-#define PDU_ERRORS_SIZE 4
-#define RX_RSSI_SIZE 2
-#define COMPLEX16_SIZE 4
-#define NO_OF_OFDM_CARRIERS 256
-#define CHANNEL_BUFFER_SIZE (NB_ANTENNAS*COMPLEX16_SIZE*NO_OF_OFDM_CARRIERS+TIMESTAMP_SIZE+PDU_ERRORS_SIZE+RX_RSSI_SIZE) //in bytes
-*/
-
-#define CHANNEL_BUFFER_SIZE sizeof(fifo_read_emos) //in bytes
-
-#define SCREEN_MEMORY_SIZE 32
-
-#define DISP_MAX_POWER 4194304 //maximum value for the display of the frequency response
-
-#define GPSD_BUFFER_SIZE 64
-
-//struct gps_data_struct {}
diff --git a/openair1/EMOS/GUI/src/emos_gui_forms.c b/openair1/EMOS/GUI/src/emos_gui_forms.c
deleted file mode 100644
index 71950abeb5..0000000000
--- a/openair1/EMOS/GUI/src/emos_gui_forms.c
+++ /dev/null
@@ -1,437 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/* Form definition file generated with fdesign. */
-
-#include "forms.h"
-#include
-#include "emos_gui_forms.h"
-
-FD_main_frm *create_form_main_frm(void)
-{
- FL_OBJECT *obj;
- FD_main_frm *fdui = (FD_main_frm *) fl_calloc(1, sizeof(*fdui));
-
- fdui->main_frm = fl_bgn_form(FL_NO_BOX, 1010, 710);
- obj = fl_add_box(FL_FLAT_BOX,0,0,1010,710,"Main form");
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_MCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- obj = fl_add_box(FL_ROUNDED_BOX,10,610,230,90,"");
- fl_set_object_color(obj,FL_DARKER_COL1,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- obj = fl_add_box(FL_ROUNDED3D_DOWNBOX,5,5,850,600,"");
- fl_set_object_color(obj,FL_BLACK,FL_BLACK);
- fdui->sync_lbl = obj = fl_add_text(FL_NORMAL_TEXT,635,15,40,20,"sync");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->rec_lbl = obj = fl_add_text(FL_NORMAL_TEXT,720,15,40,20,"rec");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->pwr1_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,20,45,300,110,"Power");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->pwr2_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,330,45,300,110,"Power");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->rx2_lbl = obj = fl_add_text(FL_NORMAL_TEXT,345,10,80,40,"RX 2");
- fl_set_object_color(obj,FL_BLACK,FL_MCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lsize(obj,FL_HUGE_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->noise1_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,20,170,300,110,"N0/SNR");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->noise2_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,330,170,300,110,"N0/SNR");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch11_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,15,310,140,110,"CH TX1");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch12_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,180,310,140,110,"CH TX2");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch13_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,15,450,140,110,"CH TX3");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch14_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,180,450,140,110,"CH TX4");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch21_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,325,310,140,110,"CH TX1");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch22_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,490,310,140,110,"CH TX2");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch23_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,325,450,140,110,"CH TX3");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->ch24_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,490,450,140,110,"CH TX4");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->error_lbl = obj = fl_add_text(FL_NORMAL_TEXT,680,15,40,20,"error");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->gps_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,65,60,30,"gps");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->date_lbl = obj = fl_add_text(FL_NORMAL_TEXT,655,130,170,30,"date: ");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->gps_lat_lbl = obj = fl_add_text(FL_NORMAL_TEXT,700,65,150,30,"lat: 0");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->gps_lon_lbl = obj = fl_add_text(FL_NORMAL_TEXT,700,95,150,30,"lon: 0");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->mode_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,160,90,20,"Mode: SGL");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->idx_lbl = obj = fl_add_text(FL_NORMAL_TEXT,730,160,110,20,"Idx: ");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- obj = fl_add_box(FL_ROUNDED_BOX,460,610,140,90,"");
- fl_set_object_color(obj,FL_DARKCYAN,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->power_btn = obj = fl_add_button(FL_NORMAL_BUTTON,130,620,100,70,"PWR");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
- fl_set_object_callback(obj,power_callback,0);
- fdui->buffer_lbl = obj = fl_add_text(FL_NORMAL_TEXT,760,15,90,20,"Buffer: 100%");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->cap_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,640,310,200,250,"Capacity");
- fl_set_object_color(obj,FL_BLACK,FL_RIGHT_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fdui->refresh_lbl = obj = fl_add_text(FL_NORMAL_TEXT,655,185,170,20,"Refresh interval: 1s");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- obj = fl_add_box(FL_ROUNDED_BOX,860,90,140,220,"");
- fl_set_object_color(obj,FL_DARKER_COL1,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->refresh_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,110,80,70,"screen refresh rate");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_RIGHT_BCOL);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fl_set_object_callback(obj,refresh_callback,0);
- fl_set_dial_bounds(obj, 0, 5);
- fl_set_dial_angles(obj, 45, 315);
- fl_set_dial_value(obj, 1);
- fl_set_dial_step(obj, 1);
- fl_set_dial_return(obj, FL_RETURN_CHANGED);
- obj = fl_add_box(FL_ROUNDED_BOX,860,460,140,140,"");
- fl_set_object_color(obj,FL_INDIANRED,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->bler_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,210,180,20,"BLER:: 0");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->n_recd_frames_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,235,180,20,"Rec'd frms: 0");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->msg_text = obj = fl_add_text(FL_NORMAL_TEXT,25,570,810,30,"");
- fl_set_object_color(obj,FL_BLACK,FL_MCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- obj = fl_add_pixmapbutton(FL_NORMAL_BUTTON,860,5,140,70,"");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
- fl_set_pixmapbutton_file(obj, "Eurecom_Logo.xpm");
- fdui->rx1_lbl = obj = fl_add_text(FL_NORMAL_TEXT,35,10,80,40,"RX 1");
- fl_set_object_color(obj,FL_BLACK,FL_MCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lsize(obj,FL_HUGE_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- obj = fl_add_box(FL_ROUNDED_BOX,610,610,180,90,"");
- fl_set_object_color(obj,FL_WHEAT,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->terminal_mode_btn = obj = fl_add_button(FL_NORMAL_BUTTON,635,620,130,20,"terminal mode");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,terminal_mode_callback,0);
- fdui->single_led = obj = fl_add_box(FL_EMBOSSED_BOX,640,650,10,10,"Single user");
- fl_set_object_color(obj,FL_RIGHT_BCOL,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_RIGHT);
- fdui->multi_led = obj = fl_add_box(FL_EMBOSSED_BOX,640,670,10,10,"Multi user");
- fl_set_object_color(obj,FL_RIGHT_BCOL,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_RIGHT);
- fdui->mmse_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,655,100,20,"MMSE");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,rx_mode_button_callback,1);
- fdui->ml_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,675,100,20,"ML");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,rx_mode_button_callback,2);
- fdui->cbmimo_lbl = obj = fl_add_text(FL_NORMAL_TEXT,665,40,70,20,"cbmimo");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->file_index_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,485,80,70,"file index");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_RIGHT_BCOL);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fl_set_object_callback(obj,file_index_callback,0);
- fl_set_dial_bounds(obj, 0, 100);
- fl_set_dial_angles(obj, 10, 350);
- fl_set_dial_value(obj, 0);
- fl_set_dial_step(obj, 10);
- obj = fl_add_button(FL_NORMAL_BUTTON,870,560,40,30,"+");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,file_index_callback,1);
- obj = fl_add_button(FL_NORMAL_BUTTON,950,560,40,30,"-");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,file_index_callback,-1);
- obj = fl_add_box(FL_ROUNDED_BOX,860,320,140,130,"");
- fl_set_object_color(obj,FL_PALEGREEN,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->num_sym_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,340,80,70,"number of symbols");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_RIGHT_BCOL);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_TOP);
- fl_set_dial_bounds(obj, 0, 5);
- fl_set_dial_angles(obj, 30, 360);
- fl_set_dial_value(obj, 0);
- fl_set_dial_step(obj, 0.5);
- fdui->fix_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,95,60,30,"NO");
- fl_set_object_boxtype(obj,FL_ROUNDED_BOX);
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- obj = fl_add_box(FL_ROUNDED_BOX,800,610,200,90,"");
- fl_set_object_color(obj,FL_INDIANRED,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->rec_btn = obj = fl_add_button(FL_PUSH_BUTTON,820,620,160,70,"Record");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,record_callback,0);
- fdui->exit_btn = obj = fl_add_button(FL_NORMAL_BUTTON,20,660,90,30,"exit");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_TOMATO,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,exit_callback,0);
- fdui->config_btn = obj = fl_add_button(FL_NORMAL_BUTTON,20,620,90,30,"config");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,config_btn_callback,0);
- obj = fl_add_box(FL_ROUNDED_BOX,250,610,200,90,"");
- fl_set_object_color(obj,FL_PALEGREEN,FL_COL1);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fdui->terminal_btn1 = obj = fl_add_button(FL_PUSH_BUTTON,270,650,40,40,"CH1");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,terminal_button_callback,1);
- fdui->terminal_btn2 = obj = fl_add_button(FL_PUSH_BUTTON,310,650,40,40,"CH2");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,terminal_button_callback,2);
- fdui->terminal_btn3 = obj = fl_add_button(FL_PUSH_BUTTON,350,650,40,40,"MR1");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,terminal_button_callback,3);
- fdui->terminal_btn4 = obj = fl_add_button(FL_PUSH_BUTTON,390,650,40,40,"MR2");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,terminal_button_callback,4);
- obj = fl_add_text(FL_NORMAL_TEXT,300,620,110,20,"terminal number");
- fl_set_object_color(obj,FL_PALEGREEN,FL_MCOL);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- obj = fl_add_button(FL_NORMAL_BUTTON,870,180,40,30,"+");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,refresh_callback,1);
- obj = fl_add_button(FL_NORMAL_BUTTON,950,180,40,30,"-");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fl_set_object_callback(obj,refresh_callback,-1);
- fdui->time_domain_btn = obj = fl_add_button(FL_PUSH_BUTTON,870,235,60,20,"time");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,time_freq_callback,0);
- fdui->freq_domain_btn = obj = fl_add_button(FL_PUSH_BUTTON,930,235,60,20,"freq");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,time_freq_callback,1);
- obj = fl_add_text(FL_NORMAL_TEXT,875,215,110,20,"channel display");
- fl_set_object_color(obj,FL_DARKER_COL1,FL_MCOL);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fdui->refresh_timer = obj = fl_add_timer(FL_HIDDEN_TIMER,810,720,10,10,"timer");
- fl_set_object_callback(obj,refresh_timer_callback,0);
- obj = fl_add_text(FL_NORMAL_TEXT,875,260,110,20,"N0/SNR");
- fl_set_object_color(obj,FL_DARKER_COL1,FL_MCOL);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fdui->n0_btn = obj = fl_add_button(FL_PUSH_BUTTON,870,280,60,20,"N0");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,noise_snr_callback,0);
- fdui->snr_btn = obj = fl_add_button(FL_PUSH_BUTTON,930,280,60,20,"SNR");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,noise_snr_callback,1);
- fdui->num_sym_plus = obj = fl_add_button(FL_NORMAL_BUTTON,870,415,40,30,"+");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->num_sym_minus = obj = fl_add_button(FL_NORMAL_BUTTON,950,415,40,30,"-");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->rx_mode_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,260,180,20,"RX mode:");
- fl_set_object_color(obj,FL_BLACK,FL_TOP_BCOL);
- fl_set_object_lcolor(obj,FL_RIGHT_BCOL);
- fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj,FL_BOLD_STYLE);
- fdui->single_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,635,100,20,"SINGLE");
- fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
- fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1);
- fl_set_object_lsize(obj,FL_TINY_SIZE);
- fl_set_object_callback(obj,rx_mode_button_callback,0);
- obj = fl_add_text(FL_NORMAL_TEXT,480,615,100,20,"receiver mode");
- fl_set_object_boxtype(obj,FL_NO_BOX);
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fl_end_form();
-
- fdui->main_frm->fdui = fdui;
-
- return fdui;
-}
-/*---------------------------------------*/
-
-FD_splash_frm *create_form_splash_frm(void)
-{
- FL_OBJECT *obj;
- FD_splash_frm *fdui = (FD_splash_frm *) fl_calloc(1, sizeof(*fdui));
-
- fdui->splash_frm = fl_bgn_form(FL_NO_BOX, 390, 280);
- obj = fl_add_box(FL_FLAT_BOX,0,0,390,280,"");
- obj = fl_add_pixmap(FL_NORMAL_PIXMAP,40,20,310,100,"");
- obj = fl_add_text(FL_NORMAL_TEXT,70,150,80,30,"text");
- fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
- fl_end_form();
-
- fdui->splash_frm->fdui = fdui;
-
- return fdui;
-}
-/*---------------------------------------*/
-
-FD_config_dialog *create_form_config_dialog(void)
-{
- FL_OBJECT *obj;
- FD_config_dialog *fdui = (FD_config_dialog *) fl_calloc(1, sizeof(*fdui));
-
- fdui->config_dialog = fl_bgn_form(FL_NO_BOX, 410, 120);
- obj = fl_add_box(FL_UP_BOX,0,0,410,120,"");
- fdui->cancel_btn = obj = fl_add_button(FL_NORMAL_BUTTON,80,75,100,30,"Cancel");
- fl_set_object_callback(obj,get_dir_callback,-1);
- fdui->ok_btn = obj = fl_add_button(FL_RETURN_BUTTON,225,75,100,30,"OK");
- fl_set_object_callback(obj,get_dir_callback,0);
- fdui->dir_input = obj = fl_add_input(FL_NORMAL_INPUT,80,30,300,30,"Directory");
- fl_end_form();
-
- fdui->config_dialog->fdui = fdui;
-
- return fdui;
-}
-/*---------------------------------------*/
-
diff --git a/openair1/EMOS/GUI/src/emos_gui_forms.fd b/openair1/EMOS/GUI/src/emos_gui_forms.fd
deleted file mode 100644
index 52002a8dcf..0000000000
--- a/openair1/EMOS/GUI/src/emos_gui_forms.fd
+++ /dev/null
@@ -1,1519 +0,0 @@
-Magic: 13000
-
-Internal Form Definition File
- (do not change)
-
-Number of forms: 3
-Unit of measure: FL_COORD_PIXEL
-
-=============== FORM ===============
-Name: main_frm
-Width: 1010
-Height: 710
-Number of Objects: 75
-
---------------------
-class: FL_BOX
-type: FLAT_BOX
-box: 0 0 1010 710
-boxtype: FL_FLAT_BOX
-colors: FL_LIGHTER_COL1 FL_MCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Main form
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 10 610 230 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKER_COL1 FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED3D_DOWNBOX
-box: 5 5 850 600
-boxtype: FL_ROUNDED3D_DOWNBOX
-colors: FL_BLACK FL_BLACK
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 635 15 40 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: sync
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: sync_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 720 15 40 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: rec
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rec_lbl
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 20 45 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Power
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: pwr1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 330 45 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Power
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: pwr2_xyp
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 345 10 80 40
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_HUGE_SIZE
-lcol: FL_RIGHT_BCOL
-label: RX 2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rx2_lbl
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 20 170 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: N0/SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: noise1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 330 170 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: N0/SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: noise2_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 15 310 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch11_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 180 310 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch12_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 15 450 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX3
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch13_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 180 450 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX4
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch14_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 325 310 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch21_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 490 310 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch22_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 325 450 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX3
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch23_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 490 450 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH TX4
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch24_xyp
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 680 15 40 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: error
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: error_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 640 65 60 30
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: gps
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: gps_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 655 130 170 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: date:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: date_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 700 65 150 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: lat: 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: gps_lat_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 700 95 150 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: lon: 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: gps_lon_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 640 160 90 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Mode: SGL
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: mode_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 730 160 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_RIGHT|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Idx:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: idx_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 460 610 140 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKCYAN FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 130 620 100 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_MEDIUM_SIZE
-lcol: FL_BLACK
-label: PWR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: power_btn
-callback: power_callback
-argument: 0
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 760 15 90 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Buffer: 100%
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: buffer_lbl
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 640 310 200 250
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Capacity
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: cap_xyp
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 655 185 170 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Refresh interval: 1s
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: refresh_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 860 90 140 220
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKER_COL1 FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_DIAL
-type: NORMAL_DIAL
-box: 890 110 80 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: screen refresh rate
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: refresh_dial
-callback: refresh_callback
-argument: 0
- bounds: 0 5
- angles: 45 315
- value: 1
- step: 1
- return: FL_RETURN_CHANGED
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 860 460 140 140
-boxtype: FL_ROUNDED_BOX
-colors: FL_INDIANRED FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 210 180 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: BLER:: 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: bler_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 235 180 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Rec'd frms: 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: n_recd_frames_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 25 570 810 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: msg_text
-callback:
-argument:
-
---------------------
-class: FL_PIXMAPBUTTON
-type: NORMAL_BUTTON
-box: 860 5 140 70
-boxtype: FL_ROUNDED_BOX
-colors: FL_WHITE FL_YELLOW
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
- file: Eurecom_Logo.xpm
- fullpath: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 35 10 80 40
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_HUGE_SIZE
-lcol: FL_RIGHT_BCOL
-label: RX 1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rx1_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 610 610 180 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_WHEAT FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 635 620 130 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: terminal mode
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_mode_btn
-callback: terminal_mode_callback
-argument: 0
-
---------------------
-class: FL_BOX
-type: EMBOSSED_BOX
-box: 640 650 10 10
-boxtype: FL_EMBOSSED_BOX
-colors: FL_RIGHT_BCOL FL_COL1
-alignment: FL_ALIGN_RIGHT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: Single user
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: single_led
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: EMBOSSED_BOX
-box: 640 670 10 10
-boxtype: FL_EMBOSSED_BOX
-colors: FL_RIGHT_BCOL FL_COL1
-alignment: FL_ALIGN_RIGHT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: Multi user
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: multi_led
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 480 655 100 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: MMSE
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: mmse_btn
-callback: rx_mode_button_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 480 675 100 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: ML
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ml_btn
-callback: rx_mode_button_callback
-argument: 2
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 665 40 70 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: cbmimo
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: cbmimo_lbl
-callback:
-argument:
-
---------------------
-class: FL_DIAL
-type: NORMAL_DIAL
-box: 890 485 80 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: file index
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: file_index_dial
-callback: file_index_callback
-argument: 0
- bounds: 0 100
- angles: 10 350
- value: 0
- step: 10
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 870 560 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: +
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: file_index_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 950 560 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: -
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: file_index_callback
-argument: -1
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 860 320 140 130
-boxtype: FL_ROUNDED_BOX
-colors: FL_PALEGREEN FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_DIAL
-type: NORMAL_DIAL
-box: 890 340 80 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: number of symbols
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: num_sym_dial
-callback:
-argument:
- bounds: 0 5
- angles: 30 360
- value: 0
- step: 0.5
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 640 95 60 30
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: NO
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: fix_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 800 610 200 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_INDIANRED FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 820 620 160 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: Record
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rec_btn
-callback: record_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 20 660 90 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_TOMATO FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: exit
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: exit_btn
-callback: exit_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 20 620 90 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: config
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: config_btn
-callback: config_btn_callback
-argument: 0
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 250 610 200 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_PALEGREEN FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 270 650 40 40
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: CH1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_btn1
-callback: terminal_button_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 310 650 40 40
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: CH2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_btn2
-callback: terminal_button_callback
-argument: 2
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 350 650 40 40
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: MR1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_btn3
-callback: terminal_button_callback
-argument: 3
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 390 650 40 40
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: MR2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_btn4
-callback: terminal_button_callback
-argument: 4
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 300 620 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_PALEGREEN FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: terminal number
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 870 180 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: +
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: refresh_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 950 180 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: -
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: refresh_callback
-argument: -1
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 870 235 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: time
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: time_domain_btn
-callback: time_freq_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 930 235 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: freq
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: freq_domain_btn
-callback: time_freq_callback
-argument: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 875 215 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_DARKER_COL1 FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: channel display
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TIMER
-type: HIDDEN_TIMER
-box: 810 720 10 10
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_RED
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: timer
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: refresh_timer
-callback: refresh_timer_callback
-argument: 0
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 875 260 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_DARKER_COL1 FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: N0/SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 870 280 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: N0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: n0_btn
-callback: noise_snr_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 930 280 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: snr_btn
-callback: noise_snr_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 870 415 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: +
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: num_sym_plus
-callback:
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 950 415 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: -
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: num_sym_minus
-callback:
-argument: -1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 260 180 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: RX mode:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rx_mode_lbl
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 480 635 100 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: SINGLE
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: single_btn
-callback: rx_mode_button_callback
-argument: 0
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 480 615 100 20
-boxtype: FL_NO_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: receiver mode
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
-=============== FORM ===============
-Name: splash_frm
-Width: 390
-Height: 280
-Number of Objects: 3
-
---------------------
-class: FL_BOX
-type: FLAT_BOX
-box: 0 0 390 280
-boxtype: FL_FLAT_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_PIXMAP
-type: NORMAL_PIXMAP
-box: 40 20 310 100
-boxtype: FL_NO_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 70 150 80 30
-boxtype: FL_FLAT_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: text
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
-=============== FORM ===============
-Name: config_dialog
-Width: 410
-Height: 120
-Number of Objects: 4
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 410 120
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 80 75 100 30
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Cancel
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: cancel_btn
-callback: get_dir_callback
-argument: -1
-
---------------------
-class: FL_BUTTON
-type: RETURN_BUTTON
-box: 225 75 100 30
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: OK
-shortcut: ^M
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ok_btn
-callback: get_dir_callback
-argument: 0
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 80 30 300 30
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Directory
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: dir_input
-callback:
-argument:
-
-==============================
-create_the_forms
diff --git a/openair1/EMOS/GUI/src/emos_gui_forms.h b/openair1/EMOS/GUI/src/emos_gui_forms.h
deleted file mode 100644
index 7fb6d06c99..0000000000
--- a/openair1/EMOS/GUI/src/emos_gui_forms.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/** Header file generated with fdesign on Fri Apr 24 14:16:53 2009.**/
-
-#ifndef FD_main_frm_h_
-#define FD_main_frm_h_
-
-/** Callbacks, globals and object handlers **/
-extern void power_callback(FL_OBJECT *, long);
-extern void refresh_callback(FL_OBJECT *, long);
-extern void terminal_mode_callback(FL_OBJECT *, long);
-extern void rx_mode_button_callback(FL_OBJECT *, long);
-extern void file_index_callback(FL_OBJECT *, long);
-extern void record_callback(FL_OBJECT *, long);
-extern void exit_callback(FL_OBJECT *, long);
-extern void config_btn_callback(FL_OBJECT *, long);
-extern void terminal_button_callback(FL_OBJECT *, long);
-extern void time_freq_callback(FL_OBJECT *, long);
-extern void refresh_timer_callback(FL_OBJECT *, long);
-extern void noise_snr_callback(FL_OBJECT *, long);
-
-
-extern void get_dir_callback(FL_OBJECT *, long);
-
-
-/**** Forms and Objects ****/
-typedef struct {
- FL_FORM *main_frm;
- void *vdata;
- char *cdata;
- long ldata;
- FL_OBJECT *sync_lbl;
- FL_OBJECT *rec_lbl;
- FL_OBJECT *pwr1_xyp;
- FL_OBJECT *pwr2_xyp;
- FL_OBJECT *rx2_lbl;
- FL_OBJECT *noise1_xyp;
- FL_OBJECT *noise2_xyp;
- FL_OBJECT *ch11_xyp;
- FL_OBJECT *ch12_xyp;
- FL_OBJECT *ch13_xyp;
- FL_OBJECT *ch14_xyp;
- FL_OBJECT *ch21_xyp;
- FL_OBJECT *ch22_xyp;
- FL_OBJECT *ch23_xyp;
- FL_OBJECT *ch24_xyp;
- FL_OBJECT *error_lbl;
- FL_OBJECT *gps_lbl;
- FL_OBJECT *date_lbl;
- FL_OBJECT *gps_lat_lbl;
- FL_OBJECT *gps_lon_lbl;
- FL_OBJECT *mode_lbl;
- FL_OBJECT *idx_lbl;
- FL_OBJECT *power_btn;
- FL_OBJECT *buffer_lbl;
- FL_OBJECT *cap_xyp;
- FL_OBJECT *refresh_lbl;
- FL_OBJECT *refresh_dial;
- FL_OBJECT *bler_lbl;
- FL_OBJECT *n_recd_frames_lbl;
- FL_OBJECT *msg_text;
- FL_OBJECT *rx1_lbl;
- FL_OBJECT *terminal_mode_btn;
- FL_OBJECT *single_led;
- FL_OBJECT *multi_led;
- FL_OBJECT *mmse_btn;
- FL_OBJECT *ml_btn;
- FL_OBJECT *cbmimo_lbl;
- FL_OBJECT *file_index_dial;
- FL_OBJECT *num_sym_dial;
- FL_OBJECT *fix_lbl;
- FL_OBJECT *rec_btn;
- FL_OBJECT *exit_btn;
- FL_OBJECT *config_btn;
- FL_OBJECT *terminal_btn1;
- FL_OBJECT *terminal_btn2;
- FL_OBJECT *terminal_btn3;
- FL_OBJECT *terminal_btn4;
- FL_OBJECT *time_domain_btn;
- FL_OBJECT *freq_domain_btn;
- FL_OBJECT *refresh_timer;
- FL_OBJECT *n0_btn;
- FL_OBJECT *snr_btn;
- FL_OBJECT *num_sym_plus;
- FL_OBJECT *num_sym_minus;
- FL_OBJECT *rx_mode_lbl;
- FL_OBJECT *single_btn;
-} FD_main_frm;
-
-extern FD_main_frm * create_form_main_frm(void);
-typedef struct {
- FL_FORM *splash_frm;
- void *vdata;
- char *cdata;
- long ldata;
-} FD_splash_frm;
-
-extern FD_splash_frm * create_form_splash_frm(void);
-typedef struct {
- FL_FORM *config_dialog;
- void *vdata;
- char *cdata;
- long ldata;
- FL_OBJECT *cancel_btn;
- FL_OBJECT *ok_btn;
- FL_OBJECT *dir_input;
-} FD_config_dialog;
-
-extern FD_config_dialog * create_form_config_dialog(void);
-
-#endif /* FD_main_frm_h_ */
diff --git a/openair1/EMOS/GUI/src/make_links.sh b/openair1/EMOS/GUI/src/make_links.sh
deleted file mode 100644
index bb231159a9..0000000000
--- a/openair1/EMOS/GUI/src/make_links.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-# Make all the symlinks required for the emos_dump project
-# Leonardo Cardoso
-#
-# V20070924
-
-OPENAIR_PATH="../../../";
-
-ln -sf ${OPENAIR_PATH}PHY/CONFIG/emos.cfg config.cfg
-ln -sf ${OPENAIR_PATH}PHY/CONFIG/emos.scn scenario.scn
\ No newline at end of file
diff --git a/openair1/EMOS/GUI/src/matrix_util.c b/openair1/EMOS/GUI/src/matrix_util.c
deleted file mode 100644
index cb1697da01..0000000000
--- a/openair1/EMOS/GUI/src/matrix_util.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-// Matrix Utilities for Capacity Calculations
-// by Florian Kaltenberger
-// Created 10.10.2007
-
-# include "matrix_util.h"
-#include
-#include
-
-// This function calculates HxH^H for a complex matrix H
-// HH must be a pre-allocated matrix of size rows x rows
-// The function returns NULL on error and a pointer to the
-// calculated matrix otherwise
-struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH)
-{
- int r,r2,c;
-
- if (H==NULL || HH==NULL || rows == 0 || cols == 0)
- return NULL;
-
- for (r=0; r.
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-// Matrix Utilities for Capacity Calculations
-// by Florian Kaltenberger
-// Created 10.10.2007
-
-# include "PHY/TOOLS/defs.h"
-
-struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH);
-
-struct complexf **addI_scale_mat(struct complexf **H, int rows, float scale);
-
-float det(struct complexf **H);
-
-float norm_fro_sq(struct complexf**H, int rows, int cols);
diff --git a/openair1/EMOS/LTE/GUI/COPYING b/openair1/EMOS/LTE/GUI/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/LTE/GUI/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/LTE/GUI/Eurecom_Logo.png b/openair1/EMOS/LTE/GUI/Eurecom_Logo.png
deleted file mode 100644
index a499d213a5..0000000000
Binary files a/openair1/EMOS/LTE/GUI/Eurecom_Logo.png and /dev/null differ
diff --git a/openair1/EMOS/LTE/GUI/Eurecom_Logo.xpm b/openair1/EMOS/LTE/GUI/Eurecom_Logo.xpm
deleted file mode 100644
index 03dda9e4d9..0000000000
--- a/openair1/EMOS/LTE/GUI/Eurecom_Logo.xpm
+++ /dev/null
@@ -1,554 +0,0 @@
-/* XPM */
-static char * Eurecom_Logo_xpm[] = {
-"106 50 501 2",
-" c None",
-". c #FFFFFF",
-"+ c #FCFCFC",
-"@ c #DADADC",
-"# c #D5D5D6",
-"$ c #E2E2E3",
-"% c #F7F7F7",
-"& c #C2C2C4",
-"* c #BDBEC1",
-"= c #DBDADC",
-"- c #EFEFEF",
-"; c #BDC0C3",
-"> c #BFC0C3",
-", c #BEC0C3",
-"' c #BDBFC3",
-") c #B2BEC4",
-"! c #B2BEC5",
-"~ c #B3BFC5",
-"{ c #DBE6EA",
-"] c #EFFAFE",
-"^ c #F9FDFF",
-"/ c #FEFFFE",
-"( c #FBFBFB",
-"_ c #F4F4F4",
-": c #B8DEEC",
-"< c #16B0EB",
-"[ c #21B7F0",
-"} c #22B8F0",
-"| c #BFEAFA",
-"1 c #FEFEFD",
-"2 c #FEFEFE",
-"3 c #87D7F3",
-"4 c #02ADEF",
-"5 c #0AAEED",
-"6 c #D8F2FB",
-"7 c #F0F0F1",
-"8 c #EEEEEF",
-"9 c #EEEFEF",
-"0 c #74C9EA",
-"a c #34B3E3",
-"b c #35B3E3",
-"c c #35B3E4",
-"d c #37B6E6",
-"e c #3DBCEB",
-"f c #3DBCEC",
-"g c #47C1EF",
-"h c #F1FAFD",
-"i c #C2C1C3",
-"j c #BBBDC0",
-"k c #BBBDC1",
-"l c #BABDC0",
-"m c #BCBEC1",
-"n c #D3D6D8",
-"o c #F9FDFD",
-"p c #F8FDFD",
-"q c #F9FDFC",
-"r c #FAFDFD",
-"s c #FDFEFF",
-"t c #F6F6F7",
-"u c #BEBFC1",
-"v c #E1E1E1",
-"w c #FFFFFE",
-"x c #F6F6F6",
-"y c #DCDCDE",
-"z c #DDDDDF",
-"A c #DCDDDE",
-"B c #AFCDDA",
-"C c #52B5DC",
-"D c #5DB6D9",
-"E c #5AB6DA",
-"F c #59B6DA",
-"G c #5CB6DA",
-"H c #5BB6DA",
-"I c #5BB6D9",
-"J c #6BC6E8",
-"K c #80D1F0",
-"L c #80D1EF",
-"M c #DCF2F8",
-"N c #86D8F7",
-"O c #13B2EF",
-"P c #D6F1F9",
-"Q c #FDFDFD",
-"R c #5EC9F0",
-"S c #06AEEF",
-"T c #05AEEF",
-"U c #07AFEF",
-"V c #26B9F1",
-"W c #EEF9FC",
-"X c #FAFAFA",
-"Y c #CBCDD0",
-"Z c #C9C9CB",
-"` c #C6C8CA",
-" . c #A5C2CC",
-".. c #9BC1CE",
-"+. c #9AC0CD",
-"@. c #9BC0CD",
-"#. c #99BFCC",
-"$. c #97BECB",
-"%. c #98BECC",
-"&. c #ABD2E0",
-"*. c #C4ECF9",
-"=. c #C5EDFB",
-"-. c #CDEFFA",
-";. c #FCFEFC",
-">. c #F2F2F2",
-",. c #C0C0C3",
-"'. c #BEBEC1",
-"). c #BEBEC0",
-"!. c #BFBEC0",
-"~. c #C0BFC0",
-"{. c #E2E1E1",
-"]. c #EDECEC",
-"^. c #C4C4C6",
-"/. c #C5C4C6",
-"(. c #BCC1C5",
-"_. c #9CBECB",
-":. c #9BBECB",
-"<. c #9DBECB",
-"[. c #9EBECA",
-"}. c #A5BCC4",
-"|. c #A0BDC8",
-"1. c #9BBECC",
-"2. c #BFDDE9",
-"3. c #CBEEFB",
-"4. c #CAEEFB",
-"5. c #CAEEFA",
-"6. c #E9F8FB",
-"7. c #AEE4F9",
-"8. c #03ADEF",
-"9. c #B1E3F4",
-"0. c #FDFEFC",
-"a. c #DAF3FC",
-"b. c #9BDDF6",
-"c. c #61CBF4",
-"d. c #67CDF4",
-"e. c #F7FDFD",
-"f. c #FEFFFD",
-"g. c #DDDCDD",
-"h. c #DEDDDE",
-"i. c #F7F6F6",
-"j. c #F8F8F8",
-"k. c #E5E6E7",
-"l. c #E8E8E9",
-"m. c #E3E4E5",
-"n. c #E1E1E2",
-"o. c #E5E4E5",
-"p. c #D0CFCF",
-"q. c #BAB9BA",
-"r. c #C4C3C3",
-"s. c #F8F7F8",
-"t. c #D2D1D2",
-"u. c #BCBBBB",
-"v. c #C3C1C2",
-"w. c #E7E9EA",
-"x. c #E9E9EA",
-"y. c #DDDDDD",
-"z. c #EDEDED",
-"A. c #DCDCDC",
-"B. c #F0F1F2",
-"C. c #7D7C7D",
-"D. c #2A2728",
-"E. c #2D2A2B",
-"F. c #393637",
-"G. c #DAD9DA",
-"H. c #B3B2B2",
-"I. c #312D2E",
-"J. c #EEEEEE",
-"K. c #514F50",
-"L. c #858384",
-"M. c #B0AEAF",
-"N. c #292627",
-"O. c #2F2C2D",
-"P. c #312E2F",
-"Q. c #2E2C2D",
-"R. c #4B4848",
-"S. c #CDCCCD",
-"T. c #EAE9EA",
-"U. c #343031",
-"V. c #2C292A",
-"W. c #757374",
-"X. c #FBFAFB",
-"Y. c #9F9D9E",
-"Z. c #403D3E",
-"`. c #3A3738",
-" + c #4A4748",
-".+ c #373435",
-"++ c #6F6D6F",
-"@+ c #F3F4F5",
-"#+ c #C1C0C1",
-"$+ c #4D4A4B",
-"%+ c #363334",
-"&+ c #4B4849",
-"*+ c #373434",
-"=+ c #333031",
-"-+ c #A1A1A3",
-";+ c #5D5A5B",
-">+ c #2A2627",
-",+ c #B3B1B2",
-"'+ c #4A4A4C",
-")+ c #282526",
-"!+ c #BDBFC1",
-"~+ c #484546",
-"{+ c #7E7C7C",
-"]+ c #E6E6E7",
-"^+ c #E7E7E7",
-"/+ c #E5E7E8",
-"(+ c #807E7F",
-"_+ c #4D4C4E",
-":+ c #E2E1E2",
-"<+ c #7E7C7D",
-"[+ c #4F4E50",
-"}+ c #F0F0F0",
-"|+ c #D7D9DA",
-"1+ c #434041",
-"2+ c #4E4D4F",
-"3+ c #F6F7F7",
-"4+ c #BFBEBF",
-"5+ c #2B2728",
-"6+ c #CDCDCE",
-"7+ c #E7E6E7",
-"8+ c #F1F2F2",
-"9+ c #F7F7F8",
-"0+ c #767475",
-"a+ c #B5B6B7",
-"b+ c #FAF9F9",
-"c+ c #BAB9B9",
-"d+ c #615E5F",
-"e+ c #ABAAAB",
-"f+ c #2D292A",
-"g+ c #989798",
-"h+ c #F2F4F5",
-"i+ c #F3F3F3",
-"j+ c #7F7D7E",
-"k+ c #221E1F",
-"l+ c #CBCBCB",
-"m+ c #322F30",
-"n+ c #484646",
-"o+ c #797778",
-"p+ c #828081",
-"q+ c #2B2829",
-"r+ c #E8E8E8",
-"s+ c #292526",
-"t+ c #B7B5B6",
-"u+ c #F8F9F9",
-"v+ c #BDBCBD",
-"w+ c #252122",
-"x+ c #E6E6E6",
-"y+ c #F7F8F8",
-"z+ c #4B4A4B",
-"A+ c #8B898A",
-"B+ c #3F3D3F",
-"C+ c #F2F2F3",
-"D+ c #8D8B8C",
-"E+ c #474445",
-"F+ c #F5F5F5",
-"G+ c #A5A4A4",
-"H+ c #2F2B2C",
-"I+ c #9B999A",
-"J+ c #383536",
-"K+ c #808183",
-"L+ c #C6C5C5",
-"M+ c #4D494A",
-"N+ c #3E3A3B",
-"O+ c #7B7A7A",
-"P+ c #F7F6F7",
-"Q+ c #292628",
-"R+ c #D0D2D3",
-"S+ c #F0EFEF",
-"T+ c #EAEAEA",
-"U+ c #B2B1B1",
-"V+ c #8C8A8B",
-"W+ c #3F3D3E",
-"X+ c #B4B3B3",
-"Y+ c #504D4E",
-"Z+ c #737272",
-"`+ c #5A5758",
-" @ c #706D6E",
-".@ c #F2F1F1",
-"+@ c #3F3B3C",
-"@@ c #868485",
-"#@ c #7D7B7B",
-"$@ c #474547",
-"%@ c #F2F3F4",
-"&@ c #555253",
-"*@ c #696667",
-"=@ c #999898",
-"-@ c #D6D6D6",
-";@ c #E3E2E2",
-">@ c #E9E9E9",
-",@ c #444142",
-"'@ c #B5B4B4",
-")@ c #585556",
-"!@ c #7A7879",
-"~@ c #322E2F",
-"{@ c #353132",
-"]@ c #C2C1C2",
-"^@ c #5D5B5C",
-"/@ c #737374",
-"(@ c #C2C1C1",
-"_@ c #D1D0D0",
-":@ c #787676",
-"<@ c #454243",
-"[@ c #DFDFDF",
-"}@ c #FEFDFE",
-"|@ c #CCCBCC",
-"1@ c #262223",
-"2@ c #CFCECE",
-"3@ c #747375",
-"4@ c #636263",
-"5@ c #868484",
-"6@ c #F1F1F1",
-"7@ c #3D393A",
-"8@ c #B8B9BA",
-"9@ c #737172",
-"0@ c #7C7B7C",
-"a@ c #AAA9A9",
-"b@ c #5B595A",
-"c@ c #696767",
-"d@ c #D7D6D6",
-"e@ c #D5D5D5",
-"f@ c #EBEBEC",
-"g@ c #A8A6A7",
-"h@ c #8F8D8E",
-"i@ c #E6E5E5",
-"j@ c #CBCBCC",
-"k@ c #282425",
-"l@ c #B7B6B6",
-"m@ c #D7D6D7",
-"n@ c #E4E3E3",
-"o@ c #A9A8A8",
-"p@ c #DFDEDF",
-"q@ c #383435",
-"r@ c #9E9D9E",
-"s@ c #373536",
-"t@ c #B2B3B5",
-"u@ c #6A6768",
-"v@ c #494647",
-"w@ c #ECEBEC",
-"x@ c #CFCECF",
-"y@ c #EAEAEB",
-"z@ c #373335",
-"A@ c #AAA8A9",
-"B@ c #5C5A5B",
-"C@ c #6B696A",
-"D@ c #CBCACB",
-"E@ c #D8D7D7",
-"F@ c #595758",
-"G@ c #6A696A",
-"H@ c #D9D8D8",
-"I@ c #878585",
-"J@ c #9B9A9B",
-"K@ c #3B3839",
-"L@ c #9D9B9C",
-"M@ c #343132",
-"N@ c #D5D4D4",
-"O@ c #BEBDBD",
-"P@ c #272324",
-"Q@ c #D8D8D9",
-"R@ c #9A9B9C",
-"S@ c #242122",
-"T@ c #CECDCE",
-"U@ c #9C9B9C",
-"V@ c #3E3C3D",
-"W@ c #F0F2F2",
-"X@ c #231F20",
-"Y@ c #DAD9D9",
-"Z@ c #7B797A",
-"`@ c #514E4F",
-" # c #332F30",
-".# c #A1A2A3",
-"+# c #ABA9AA",
-"@# c #262324",
-"## c #CAC9C9",
-"$# c #696768",
-"%# c #5E5C5D",
-" c #AFAEAF",
-"*# c #CFD0D1",
-"=# c #E2E4E5",
-"-# c #9A9899",
-";# c #EDEEEE",
-"># c #4C4A4C",
-",# c #716F6F",
-"'# c #A9A7A8",
-")# c #E4E4E4",
-"!# c #C0BFBF",
-"~# c #656466",
-"{# c #686566",
-"]# c #9E9C9D",
-"^# c #F9F9F9",
-"/# c #59595A",
-"(# c #F1F0F1",
-"_# c #B8B7B8",
-":# c #B9B8B8",
-"<# c #605D5E",
-"[# c #4E4B4C",
-"}# c #F4F3F3",
-"|# c #959494",
-"1# c #FAF9FA",
-"2# c #605E60",
-"3# c #8D8C8D",
-"4# c #595657",
-"5# c #403C3D",
-"6# c #DADBDD",
-"7# c #E8E7E8",
-"8# c #E6E5E6",
-"9# c #747172",
-"0# c #706E6F",
-"a# c #9C9A9B",
-"b# c #6F6D6D",
-"c# c #E3E3E3",
-"d# c #CCCCCC",
-"e# c #575455",
-"f# c #ABADAE",
-"g# c #9F9FA0",
-"h# c #E6E6E5",
-"i# c #302D2E",
-"j# c #8E8C8D",
-"k# c #2E2B2C",
-"l# c #7A7878",
-"m# c #C3C2C3",
-"n# c #524F50",
-"o# c #484547",
-"p# c #C6C6C6",
-"q# c #DFDEDE",
-"r# c #4C494A",
-"s# c #525051",
-"t# c #A7A6A6",
-"u# c #CDCCCC",
-"v# c #DBDADA",
-"w# c #D3D3D3",
-"x# c #B6B4B5",
-"y# c #A4A3A4",
-"z# c #E2E4E4",
-"A# c #D9D8D9",
-"B# c #D8D7D8",
-"C# c #FDFCFC",
-"D# c #D0D0D0",
-"E# c #EEEDEE",
-"F# c #A5A3A4",
-"G# c #AFAEAE",
-"H# c #D3D2D3",
-"I# c #C5C4C4",
-"J# c #A7A5A5",
-"K# c #D4D3D3",
-"L# c #F3F4F4",
-"M# c #F9F9FA",
-"N# c #FBFAFA",
-"O# c #D4D3D4",
-"P# c #D2D2D4",
-"Q# c #DEDEDF",
-"R# c #EAE9E9",
-"S# c #C3C4C6",
-"T# c #E9EAEB",
-"U# c #F5F5F6",
-"V# c #BFC1C2",
-"W# c #C6C5C6",
-"X# c #ECECEC",
-"Y# c #F6F7F8",
-"Z# c #DBDBDC",
-"`# c #FDFCFD",
-" $ c #F4F3F2",
-".$ c #D4D5D6",
-"+$ c #E1E0E1",
-"@$ c #E2E2E2",
-"#$ c #BCBEBF",
-"$$ c #DCDEE0",
-"%$ c #CECECF",
-"&$ c #D3D5D6",
-"*$ c #C5C4C5",
-"=$ c #CACACA",
-"-$ c #ACABAC",
-";$ c #BFBFC0",
-">$ c #CECECE",
-",$ c #C2C2C3",
-"'$ c #DBDADB",
-")$ c #C9C9CA",
-"!$ c #C8C7C8",
-"~$ c #CDCFD0",
-"{$ c #C9CACA",
-"]$ c #E3E3E4",
-"^$ c #E8EAEA",
-"/$ c #B7B6B7",
-"($ c #E4E4E5",
-"_$ c #C5C5C6",
-":$ c #E0E0E0",
-"<$ c #BBBABB",
-"[$ c #D2D4D5",
-"}$ c #CCCCCD",
-"|$ c #CACACB",
-"1$ c #FEFFFF",
-"2$ c #E4E6E7",
-"3$ c #D7D9DB",
-"4$ c #D7D7D8",
-"5$ c #D8DADB",
-"6$ c #F9FAF9",
-"7$ c #B0AFB0",
-"8$ c #FEFDFD",
-"9$ c #D7D7D7",
-"0$ c #C9C9C9",
-"a$ c #DEDEDE",
-"b$ c #C9C8C9",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + @ # # # # # # # # # # # # # # # # # # # # $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % & * * * * * * * * * * * * * * * * * * * * = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ; ; > , ; ; ; ' ) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ) { ] ] ] ] ] ] ] ^ / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( _ _ _ _ _ _ _ : < < < < < < < < < < < < < [ } } } } } } } | 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 9 9 9 9 9 9 0 a a a a a a b a c a c a d e e e e e e f g h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 i * * * * * * * * j j j j j j k l m l m j n o p p q q q r s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t u * * * * * * * * * * * * * * * * * * * * v w w w w w w w / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x y z z z z z A B C D D E F F D D G F F H I J K K K K K K L M / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 O P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Q Q Q Q Q Q Q Q R S S S S S T S S S T S S S U U U U U U U V W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X Y Z Z Z Z Z Z ` ...+.@.@.#.$.@.@.@.%.#.@.&.*.=.=.=.=.=.=.-.;.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >.,.* * * * * * * '.).!.!.!.!.!.!.!.!.!.!.~.{.1 1 1 1 1 1 / 1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].^././././././.(._.:.<.[.}.|.<.<.|.}.[.<.1.2.3.4.4.4.4.4.5.6.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Q Q Q Q Q Q Q 7.4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.9.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8.a.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w 0.b.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.d.e.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 f.. . . . . . . . . . . . . . . . . . . . f.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . - g.g.g.g.g.h.i.. . . . % h.j.. . . . k.l.. . . . . % h.g.g.m.X . . . . . . . Q n.g.g.g.g.g.o.2 . . . . . . >.p.q.r.{.2 . . . . . . . s.t.u.v.w.. . . . . . . . x.y.x . . . . z.A.B.. . . . . . . . ",
-". . . . . . . . C.D.E.E.E.E.F.G.. . . . H.I.J.. . . ( K.L.. . . . . M.N.O.P.Q.R.S.. . . . . . T.U.V.E.E.E.E.W.Q . . . . X.Y.Z.`. +.+V.++@+. . . 2 2 #+$+%+&+*+=+-+2 . . . . . ( ;+>+,+. . . _ '+)+!+. . . . . . . . ",
-". . . . . . . Q ~+{+]+]+]+^+/++ . . . 2 (+_+X . . . :+V.q.. . . . 2 <+[+- }+|+1+2+3+. . . . . 4+5+6+7+7+7+k.8+. . . . 9+0+`.a+b+. s.c+d+x . . . 2 e+f+g+h+. i+j+k+l+. . . . . ^+m+n+o+. . Q p+m+q+^+. . . . . . . . ",
-". . . . . . . r+s+t+. . . . . . . . . u+_+<+2 . . . v+w+x+. . . . y+z+L.2 . . A+B+C+. . . . . D+E+F+. . . . . . . . . G+E.t.. . . . 2 i+2 . . . y.H+I++ . . . J.J+K+. . . . 2 L+O.Y.M+x . ~.N+O+~+P+. . . . . . . . ",
-". . . . . . . 4+Q+R+S+S+S+S+b+. . . . T+q+U+. . . . V+W+Q . . . . T+D.X+. . + Y+Z++ . . . . 2 `+ @- S+S+S+.@. . . . F++@@@2 . . . . 2 . . . . . #@$@%@. . . . 2 &@*@. . . . 2 =@Y+-@P.;@>@,@'@)@!@2 . . . . . . . . ",
-". . . . . . . A+k+~@{@{@{@=+S.. . . . ]@>+A.. . . X ^@/@. . . . . ~.w+(@v _@:@<@[@. . . . . B.~@>+{@{@{@{@d+}@. . . |@1@2@. . . . . . . . . . i.F.D+. . . . . Q $+3@. . . . + 4@5@6@7@8@9@0@}+V.a@. . . . . . . . . ",
-". . . . . . Q b@c@d@d@d@d@e@X . . . . D+1+i+. . . f@=+g@. . . . . h@k+U.I.s+o+i@. . . . . . j@k@l@d@d@d@m@n@. . . . o@m+x+. . . . . . . . . . p@k@l@. . . . . J.q@r@. . . . i+s@t@Q u@$+v@w@x@k@m@. . . . . . . . . ",
-". . . . . . y@z@A@. . . . . . . . . . B@C@. . . . D@1@E@. . . . . F@G@z.H@%+I@2 . . . . . . J@K@_ . . . . . . . . . L@M@>@. . . . . . . . . . N@1@O@. . . . . '@P@p@. . . . Q@O.h.. R@S@T@2 U@V@W@. . . . . . . . . ",
-". . . . . . l+X@Y@. . . . . . . . . . E+p+. . . 2 Z@`@x . . . . }+ #.#. . +#@###. . . . . 2 $#%#. . . . . . . . . . w+*#. . . . . W@. . . . =#N.-#. . . . ;#>#,#. . . . . '#<@_ . )#!#. . ~#{#2 . . . . . . . . . ",
-". . . . . . ]#.+}+^#^#^#^#Q . . . . . /#Y+(#. Q _#>+:#. . . . . T@s+t.. . j.<#[#}#. . . . >.Z.|#1#^#^#^#X . . . . . r+P.2#S+. . i+Y.3#. . . . + 4#5#6#. . 7#;+~+8#. . . . . 9#0#2 . . . . F+K@a#. . . . . . . . . . ",
-". . . . . Q b#k@I.I.I.I.`.c#. . . . . d#{@.+e#~+F.f#2 . . . . . g#`._ . . . h#i#j#Q . . . Y@k#H+I.I.I.I.l#. . . . . . m#Z.=+&@n#F.o#p#. . . . . q#r#5+s#s#m+C@7#2 . . . . + v@t#. . . . . -@i#u#. . . . . . . . . . ",
-". . . . . 2 v#_@_@_@_@_@w#( . . . . . 2 i@x#y#u.7#w . . . . . . z#A#. . . . . g.B#C#. . . >._@_@_@_@_@D#^+. . . . . . . E#!#F#G#H#j.. . . . . . . i+I#J#G#e@Q . . . . . . + K#6@. . . . . .@_@^#. . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . Q L#+ . . . . . . . . . . . . . . . . ^#. . . . . Q + . . . . . . . . . . . . . . . 2 X . . . . . . . . . . . Q . . . . ( 2 . . . . . . . . . . . . . . . 2 M#. . . . N#. . . . . . . . . . . . . . . . . ",
-". . . . . O#P#- . . . + Q#x . . . 2 :+R#. . . . S#y.. . . . T#.@. . . U#A.+ . . . . . . . . . v V#. . . . i+A.( . . . - W#2 . . . c#^#2 . . X#Q#Q . . . Y#Z#`#. . . $.$. . . 1#$ . . . C#+$F+. . . . . . . . . . . ",
-". . . . . @$#$>.. . . $$%$&$. . . }+D@W#. . . Q *$!#. . . . =$X . . . G.-$F+. . . . . . . . Q e+;$2 . . . >$,$6@. . . @$'$. . . Q )$Q . . 2 p#!$% . . . ~${$>@. . . q#]$. . . ^$v#. . . 6@/$_ . . . . . . . . . . . ",
-". . . . . t.%$y+. . . ($_$6@. . . :$<$8#. . . % A.[$. . . w N@. . . . }$|$1$. . . . . . . . 2$^+3$Q . . . 4$5$6$. . . @$[@. . . ^#v#. . . ( 7$R+8$. . . 9$0$Q . . . a$j.. . . ]+}+. . . J.b$_ . . . . . . . . . . . ",
-". . . . . 2 2 . . . . . 2 . . . . J.x 2 . . . . 2 2 . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . 2 2 . . . . 2 . . . . . . . . Q >@2 . . . . . 2 . . . . . . . . 2 2 . . . . . 2 . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/openair1/EMOS/LTE/GUI/FFT.c b/openair1/EMOS/LTE/GUI/FFT.c
deleted file mode 100644
index c93c4e3501..0000000000
--- a/openair1/EMOS/LTE/GUI/FFT.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include
-
-// ******* FFT function **********************************************************
-
-#define PI 3.14159264359
-#define SWAP(a,b) tempr=(a); (a)=(b); (b)=tempr
-
-void FFT(float *data, // the vector with the outputs
- // real part in even indexes
- // imaginary part in the odd indexes
- // for power conservation, the output should be normalized by 1/sqrt(nn)
- unsigned long nn, // number of complex samples
- int isign) // isign = 1 -> FFT, -1 -> iFFT
-
-{
- unsigned long n,mmax,m,j,istep,i;
- float wtemp,wr,wpr,wpi,wi,theta;
- float tempr,tempi;
-
- n = nn << 1;
- j = 1;
-
- for( i = 1 ; i < n ; i += 2) { // The bit-reversal
- if(j > i) {
- SWAP(data[j-1],data[i-1]); // Exchanging the two complex number
- SWAP(data[j],data[i]);
- }
-
- m = n >> 1;
-
- while((m >= 2)&&(j > m)) {
- j -= m;
- m >>= 1;
- }
-
- j += m;
- }
-
- mmax = 2;
-
- while(n > mmax) {
- istep = mmax << 1;
- theta = isign*(-2*PI/mmax);
- wtemp = sin(0.5 * theta);
- wpr = -2.0 * wtemp * wtemp;
- wpi = sin(theta);
- wr = 1.0;
- wi = 0.0;
-
- for (m = 1; m < mmax; m += 2) {
- for (i = m; i <= n; i += istep) {
- j = i + mmax;
- tempr = wr*data[j-1] - wi*data[j];
- tempi = wr*data[j] + wi*data[j-1];
- data[j-1] = data[i-1] - tempr;
- data[j] = data[i] - tempi;
- data[i-1] += tempr;
- data[i] += tempi;
- }
-
- wr = (wtemp=wr)*wpr - wi*wpi + wr;
- wi = wi*wpr + wtemp*wpi + wi;
- }
-
- mmax = istep;
- }
-}
-
-
diff --git a/openair1/EMOS/LTE/GUI/Makefile b/openair1/EMOS/LTE/GUI/Makefile
deleted file mode 100644
index a3374efa5b..0000000000
--- a/openair1/EMOS/LTE/GUI/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-include $(OPENAIR_HOME)/common/utils/Makefile.inc
-TOP_DIR = $(OPENAIR1_DIR)
-
-bin_PROGRAMS = emos_gui
-
-#emos_gui_SOURCES = emos_gui.c emos_gui_forms.c $(TOP_DIR)/PHY/CONFIG/openair_configure.c $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.c FFT.c matrix_util.c
-#emos_gui_HEADERS = emos_gui.h emos_gui_forms.h matrix_util.h
-emos_gui_OBJS = emos_gui.o emos_gui_forms.o FFT.o matrix_util.o \
-$(TOP_DIR)/PHY/CONFIG/openair_configure.o $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.o $(TOP_DIR)/PHY/TOOLS/fft.o $(TOP_DIR)/PHY/CODING/ccoding_byte.o $(TOP_DIR)/PHY/CODING/crc_byte.o $(TOP_DIR)/PHY/CODING/viterbi.o $(TOP_DIR)/PHY/TOOLS/cdot_prod.o $(TOP_DIR)/PHY/INIT/lte_init.o $(TOP_DIR)/PHY/LTE_ESTIMATION/lte_sync_time.o $(TOP_DIR)/PHY/LTE_REFSIG/lte_ul_ref.o $(TOP_DIR)/PHY/LTE_TRANSPORT/srs_modulation.o $(TOP_DIR)/PHY/CODING/ccoding_byte_lte.o $(TOP_DIR)/PHY/CODING/viterbi_lte.o $(TOP_DIR)/PHY/LTE_REFSIG/lte_gold.o $(TOP_DIR)/PHY/LTE_TRANSPORT/lte_mcs.o $(TOP_DIR)/PHY/LTE_TRANSPORT/pcfich.o $(TOP_DIR)/PHY/LTE_TRANSPORT/phich.o $(TOP_DIR)/PHY/LTE_TRANSPORT/dci_tools.o $(TOP_DIR)/PHY/LTE_TRANSPORT/uci_tools.o $(TOP_DIR)/SIMULATION/TOOLS/taus.o $(TOP_DIR)/PHY/LTE_TRANSPORT/dlsch_modulation.o
-
-# $(TOP_DIR)/PHY/INIT/init_top.o
-
-# set the include path found by configure
-INCLUDES = -I$(TOP_DIR) -I/usr/realtime/include -I/usr/include/X11
-
-# the library search path.
-CFLAGS += -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DEMOS -DNODE_RG -DCBMIMO1 -DPHY_CONTEXT -DOPENAIR_LTE
-emos_gui_LDADD = -L/usr/lib -L/usr/local/lib -L/usr/realtime/lib -L/usr/X11R6/lib -lm -lforms -llxrt -lpthread -lX11 -lXpm -lgps
-
-all: emos_gui
-
-$(emos_gui_OBJS) : %.o : %.c
- $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
-
-emos_gui : $(emos_gui_OBJS)
- $(CC) -o emos_gui $(CFLAGS) $(emos_gui_OBJS) $(emos_gui_LDADD)
-
-clean:
- rm -f $(emos_gui_OBJS)
diff --git a/openair1/EMOS/LTE/GUI/emos_gui.c b/openair1/EMOS/LTE/GUI/emos_gui.c
deleted file mode 100644
index a8fedef782..0000000000
--- a/openair1/EMOS/LTE/GUI/emos_gui.c
+++ /dev/null
@@ -1,1734 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifdef HAVE_CONFIG_H
-#include
-#endif
-
-// System includes
-#include
-#include
-/*
- #include
- #include
- #include
- #include
- #include
- #include
-*/
-#include
-#include
-#include
-
-// Realtime includes
-#include
-#include
-
-// Xform includes
-#include
-
-// Openair includes
-#include "PHY/types.h"
-#include "PHY/defs.h"
-#include "PHY/vars.h"
-#include "PHY/CONFIG/vars.h"
-#ifdef CBMIMO1
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#endif
-
-#include "MAC_INTERFACE/defs.h"
-#include "MAC_INTERFACE/vars.h"
-
-#include "SCHED/phy_procedures_emos.h"
-
-// Program includes
-#include "emos_gui.h"
-#include "emos_gui_forms.h"
-#include "matrix_util.h"
-
-
-// Definition of the main form
-FD_main_frm *main_frm;
-Window main_wnd;
-FD_config_dialog *config_frm;
-Window config_wnd;
-
-// Diverse variables and default values
-int power = TERM_OFF;
-int record = REC_OFF;
-int record_multi = REC_OFF;
-int terminal_mode = TERM_MODE_MULTI;
-int file_index = 0;
-int emos_ready = EMOS_READY;
-int openair_dev_fd;
-double screen_refresh_period = 1; // in seconds
-//int screen_refresh_in_frames = 0; // in frames
-int fifo_fd = -1;
-int frame_counter = 0;
-int rec_frame_counter = 0;
-FILE *dumpfile_id = NULL;
-char *data_buffer;
-int CHANNEL_BUFFER_SIZE;
-int values_in_memory=0;
-long long start_time;
-int num_tx_ant = 2;
-int num_ch = 2;
-int terminal_idx = 0;
-//int pdu_errors[2] = {0,0};
-//int pdu_errors_last[2] = {0,0};
-int domain_selector = TIME_DOMAIN;
-int noise_selector = SNR;
-int chsch_index;
-int is_cluster_head = 0;
-int node_id = 8;
-int tx_gain = 0;
-unsigned char mimo_mode = 2;
-int checkpoint = 1;
-int frame_tx;
-time_t starttime_tmp;
-struct tm starttime;
-int current_dlsch_cqi; //this is actually defined in phy_procedures_lte_ue.c - we should get rid of this
-int rate_adaptation = 1;
-int use_label = 0;
-unsigned int frequency = 0;
-
-/*
-unsigned char tx_gain_table_c[36] = {
- 113, 111, 0, 0, //-20dBm
- 119, 118, 0, 0, //-15dBm
- 126, 125, 0, 0, //-10dBm
- 133, 131, 0, 0, //-5dBm
- 139, 138, 0, 0, //0dBm
- 147, 145, 0, 0, //5dBm
- 152, 151, 0, 0, //10dBm
- 160, 158, 0, 0, //15dBm
- 177, 173, 30, 17}; //20dBm
-unsigned int *tx_gain_table = (unsigned int*) tx_gain_table_c;
-*/
-unsigned char tx_gain_table_ue[4] = {200, 200, 140, 140};
-unsigned char tx_gain_table_eNb[4] = {195, 195, 140, 140};
-unsigned int timing_advance = 0;
-unsigned int tcxo = 128;
-int freq_correction = 0;
-//unsigned int rf_mode_ue=0; //mixer low gain, lna off
-unsigned int rf_mode_ue=1; //mixer low gain, lna on
-unsigned int rf_mode_eNb=2; //mixer high gain, lna on
-// for the interference test we use a UE but set it to eNb mode
-// unsigned int rf_mode_eNb=1; //mixer low gain, lna on
-
-
-
-fifo_dump_emos_UE fifo_output_UE;
-fifo_dump_emos_eNb fifo_output_eNB;
-char *fifo_buffer = NULL;
-char *fifo_ptr = NULL;
-char date_string[1024] = "date: ";
-char dumpfile_dir[1024] = "$HOME/EMOS/data/";
-char label_str[16] = "";
-
-// GUI variables
-float power1_memory[2][SCREEN_MEMORY_SIZE];
-float power2_memory[2][SCREEN_MEMORY_SIZE];
-float noise1_memory[2][SCREEN_MEMORY_SIZE];
-float noise2_memory[2][SCREEN_MEMORY_SIZE];
-float snr1_memory[2][SCREEN_MEMORY_SIZE];
-float snr2_memory[2][SCREEN_MEMORY_SIZE];
-// float bw1_memory[];
-// float bw2_memory[];
-float capacity_memory[SCREEN_MEMORY_SIZE];
-float time_memory[SCREEN_MEMORY_SIZE];
-//float channel[NUMBER_OF_eNB_MAX][NB_ANTENNAS_RX*NB_ANTENNAS_TX][N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS];
-float channel[NUMBER_OF_eNB_MAX][NB_ANTENNAS_RX*NB_ANTENNAS_TX][NUMBER_OF_OFDM_CARRIERS_EMOS];
-//float channelT[NUMBER_OF_eNB_MAX][NB_ANTENNAS_RX*NB_ANTENNAS_TX][N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS];
-float subcarrier_ind[N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS];
-//float *delay_ind = NULL;
-
-//Openair variables
-PHY_CONFIG PHY_config_mem;
-PHY_CONFIG *PHY_config;
-
-// GPS
-//char gpsd_buffer[GPSD_BUFFER_SIZE];
-//int gpsd_fd;
-struct gps_data_t *gps_data = NULL;
-struct gps_fix_t dummy_gps_data;
-
-// Function prototypes
-void exit_callback(FL_OBJECT *ob, long user_data);
-void power_callback(FL_OBJECT *ob, long user_data);
-//void terminal_mode_callback(FL_OBJECT *ob, long user_data);
-//void use_gps_callback(FL_OBJECT *ob, long user_data);
-//void set_origin_callback(FL_OBJECT *ob, long user_data);
-void refresh_callback(FL_OBJECT *ob, long user_data);
-void record_callback(FL_OBJECT *ob, long user_data);
-void checkpoint_callback(FL_OBJECT *ob, long user_data);
-void new_data_callback(int fifo_fd, void* data);
-void time_freq_callback(FL_OBJECT *ob, long user_data);
-void noise_snr_callback(FL_OBJECT *ob, long user_data);
-void input_callback(FL_OBJECT *ob, long user_data);
-void label_callback(FL_OBJECT *ob, long user_data);
-void label_btn_callback(FL_OBJECT *ob, long user_data);
-void gps_data_callback(int gps_fd, void* data);
-
-void initialize_interface();
-void stop_interface();
-void refresh_interface();
-int open_dumpfile();
-
-void message(const char *msg);
-void error(const char *msg);
-
-int mac_phy_init();
-
-// void get_gps_time_position(int socknum, char *buffer, int buffersize);
-// int open_gpsd_socket();
-// void update_gps_data(struct gps_data_t *gps_data, char *buf);
-
-void help()
-{
- printf("Valid options + default values: -c %d (# CHs), -n %d (# TX ant), -g %d (TX gain (dBm)), -h (help)\n", num_ch, num_tx_ant, tx_gain);
-}
-
-int main(int argc, char *argv[])
-{
- char temp_text[1024];
- char c;
- int ar,at,as;
- long temp = 0;
- int ioctl_result;
-
- printf("sizeof(fifo_dump_emos_UE) = %x\n",sizeof(fifo_dump_emos_UE));
- printf("sizeof(fifo_dump_emos_eNB) = %x\n",sizeof(fifo_dump_emos_eNb));
- printf("sizeof(gps_fix_t) = %x\n",sizeof(struct gps_fix_t));
-
- while ((c = getopt (argc, argv, "hn:c:g:")) != -1) {
- switch (c) {
- case 'h':
- help ();
- exit (1);
-
- /*
- case 'b':
- is_cluster_head = atoi (optarg);
- break;
- case 'i':
- node_id = atoi (optarg);
- break;
- */
- case 'g':
- tx_gain = atoi (optarg);
- break;
-
- case 'n':
- num_tx_ant = atoi (optarg);
- break;
-
- case 'c':
- num_ch = atoi (optarg);
- break;
-
- default:
- help ();
- exit (-1);
- break;
- }
- }
-
- /*
- // Initialize the buffers for the channels according to the number of TX antennas
- channel = (float***) malloc(NB_ANTENNAS_RX * sizeof(float**));
- if (!channel)
- error("Cannot allocate channel (1)");
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++)
- { // Loops over the receive antennas
- channel[ar] = (float**) malloc(num_ch * num_tx_ant * sizeof(float*));
- if (!channel[ar])
- error("Cannot allocate channel (2)");
- for (at = 0; at < num_tx_ant*num_ch; at++)
- { // Loops over the transmit antennas
- channel[ar][at] = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float));
- if (!channel[ar][at])
- error("Cannot allocate channel (3)");
- }
- }
-
- channelT = (struct complexf***) malloc(NUMBER_OF_USEFUL_CARRIERS_EMOS * sizeof(struct complexf**));
- if (!channelT)
- error("Cannot allocate channelT (1)");
- else
- {
- for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++)
- {
- channelT[as] = (struct complexf**) malloc(NB_ANTENNAS_RX * sizeof(struct complexf*));
- if (!channelT[as])
- error("Cannot allocate channelT (2)");
- else
- {
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++)
- { // Loops over the transmit antennas
- channelT[as][ar] = (struct complexf*) malloc(num_tx_ant * sizeof(struct complexf));
- if (!channelT[as][ar])
- error("Cannot allocate channelT (3)");
- }
- }
- }
- }
-
- subcarrier_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float));
- if (!subcarrier_ind)
- error("Cannot allocate subcarrier_ind");
- for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++)
- subcarrier_ind[as] = as * num_tx_ant - NUMBER_OF_OFDM_CARRIERS_EMOS/2;
-
- delay_ind = (float*) malloc(NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant * sizeof(float));
- if (!delay_ind)
- error("Cannot allocate delay_ind");
- for (as = 0; as < NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant; as++)
- delay_ind[as] = as / 7.68e6;
- */
-
- fl_initialize(&argc, argv, "EMOS terminal GUI", 0, 0);
- main_frm = create_form_main_frm();
- config_frm = create_form_config_dialog();
-
- // Get time stamp of startup time (for time difference calculations)
- start_time = rt_get_time_ns();
-
- fl_set_timer(main_frm->refresh_timer, screen_refresh_period);
- fl_suspend_timer(main_frm->refresh_timer);
-
- //fl_set_timer(main_frm->gps_timer, 0.05);
- //fl_suspend_timer(main_frm->gps_timer);
-
- stop_interface();
-
- main_wnd = fl_show_form(main_frm->main_frm, FL_PLACE_HOTSPOT, FL_FULLBORDER, "EMOS terminal GUI");
-
- // Check for openair device
- if ((openair_dev_fd = open("/dev/openair0", O_RDWR,0)) < 0) {
- //Could not find the module
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-
- emos_ready = EMOS_NOT_READY;
-
- error("Openair module not found. Load modules first!");
- } else {
- mac_phy_init();
- }
-
- //screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3);
-
- // set the default dumfile directory
- sprintf(dumpfile_dir,"%s/EMOS/data/",getenv("HOME"));
- printf("Default directory = %s\n",dumpfile_dir);
-
- fl_do_forms();
-
- return EXIT_SUCCESS;
-}
-
-
-void initialize_interface()
-{
- char temp_label[1024];
-
- // Pannel widgets
- /////////////////////////////
-
- // Screen widgets
- /////////////////////////////
-
- // Labels
- fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_ON);
-
- fl_set_object_lcolor(main_frm->sec0_lbl, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->sec1_lbl, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->sec2_lbl, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch11_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch11_sec0_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch12_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch12_sec0_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch21_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch21_sec0_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch22_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch22_sec0_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch11_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch11_sec1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch12_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch12_sec1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch21_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch21_sec1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch22_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch22_sec1_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch11_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch11_sec2_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch12_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch12_sec2_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch21_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch21_sec2_xyp, SCREEN_COLOR_ON);
-
- fl_set_object_color(main_frm->ch22_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->ch22_sec2_xyp, SCREEN_COLOR_ON);
-
- // Labels
- sprintf(temp_label, "idx:");
- fl_set_object_label(main_frm->idx_lbl, temp_label);
- fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_ON);
-
-
- if(domain_selector == TIME_DOMAIN) {
- fl_set_button(main_frm->time_domain_btn,1);
- fl_set_button(main_frm->freq_domain_btn,0);
- } else {
- fl_set_button(main_frm->time_domain_btn,0);
- fl_set_button(main_frm->freq_domain_btn,1);
- }
-
- if(noise_selector == N0) {
- fl_set_button(main_frm->n0_btn,1);
- fl_set_button(main_frm->snr_btn,0);
- } else {
- fl_set_button(main_frm->n0_btn,0);
- fl_set_button(main_frm->snr_btn,1);
- }
-
- // Recording indicator OFF
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Sync indicator
- fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Error indicator
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Buffer indicator
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF);
-
- // CBMIMO indicator
- if(emos_ready) {
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- } else {
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- // GPS indicator
- fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_OFF);
-
- // Fix indicator
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF);
-
- // X indicator
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF);
-
- // Y indicator
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF);
-
- // Date indicator
- fl_set_object_label(main_frm->date_lbl, date_string);
- fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_ON);
-
- // Refresh interval indicator
- fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_ON);
- sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period);
- fl_set_object_label(main_frm->refresh_lbl, temp_label);
- fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period);
-
- // BLER indicator
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_OFF);
-
- // REC'd frames indicator
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF);
-
- // RX mode indicator
- fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_OFF);
-
- // Messages
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
-
- switch(terminal_idx) {
- case 1:
- fl_set_button(main_frm->terminal_btn1,1);
- break;
-
- //case 2:
- // fl_set_button(main_frm->terminal_btn2,1);
- // break;
- case 3:
- fl_set_button(main_frm->terminal_btn3,1);
- break;
- //case 4:
- // fl_set_button(main_frm->terminal_btn4,1);
- // break;
- }
-
- switch(mimo_mode) {
- case 1:
- fl_set_button(main_frm->siso_btn,1);
- break;
-
- case 2:
- fl_set_button(main_frm->alamouti_btn,1);
- break;
-
- //case ANTCYCLING:
- //fl_set_button(main_frm->antcycling_btn,1);
- //break;
- case 6:
- fl_set_button(main_frm->precoding_btn,1);
- break;
-
- default:
- fl_set_button(main_frm->siso_btn,1);
- break;
-
- }
-
-}
-
-void stop_interface()
-{
- // Pannel widgets
- /////////////////////////////
-
- // Screen widgets
- /////////////////////////////
-
- // Labels
- fl_set_object_lcolor(main_frm->rx1_lbl, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->rx2_lbl, SCREEN_COLOR_BG);
-
- fl_set_object_lcolor(main_frm->sec0_lbl, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->sec1_lbl, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->sec2_lbl, SCREEN_COLOR_BG);
-
- // Graphs
- fl_set_object_color(main_frm->pwr1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->pwr1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->pwr2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->pwr2_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->noise1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->noise1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->noise2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->noise2_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch11_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch11_sec0_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch12_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch12_sec0_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch21_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch21_sec0_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch22_sec0_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch22_sec0_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch11_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch11_sec1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch12_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch12_sec1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch21_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch21_sec1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch22_sec1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch22_sec1_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch11_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch11_sec2_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch12_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch12_sec2_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch21_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch21_sec2_xyp, SCREEN_COLOR_BG);
-
- fl_set_object_color(main_frm->ch22_sec2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->ch22_sec2_xyp, SCREEN_COLOR_BG);
-
- // Labels
-
- // Index indicator
- fl_set_object_lcolor(main_frm->idx_lbl, SCREEN_COLOR_BG);
-
- // Recording indicator OFF
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Sync indicator
- fl_set_object_lcolor(main_frm->sync_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->sync_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Error indicator
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Buffer indicator
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_BG);
-
- // CBMIMO indicator
- fl_set_object_lcolor(main_frm->cbmimo_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->cbmimo_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // GPS indicator
- fl_set_object_lcolor(main_frm->gps_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
-
- // Fix indicator
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
-
- // X indicator
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_BG);
-
- // Y indicator
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_BG);
-
- // Date indicator
- fl_set_object_lcolor(main_frm->date_lbl, SCREEN_COLOR_BG);
-
- // Refresh interval indicator
- fl_set_object_lcolor(main_frm->refresh_lbl, SCREEN_COLOR_BG);
-
- // BLER indicator
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_BG);
-
- // REC'd frames indicator
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_BG);
-
- // RX mode indicator
- fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_BG);
-
- // Messages
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_BG);
-
- /* fl_set_object_color(main_frm->const1_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_color(main_frm->const2_xyp, SCREEN_COLOR_BG, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->const1_xyp, SCREEN_COLOR_BG);
- fl_set_object_lcolor(main_frm->const2_xyp, SCREEN_COLOR_BG);*/
-
-}
-
-void refresh_interface()
-{
- char temp_label[1024];
- int i,aa,ar,at,as,ac, gps_error;
- float disp_max_power = 0;
- //struct complexf channel_temp[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant]; //frequency response of one link of the MIMO channel
- //struct complexf channel_temp2[NUMBER_OF_OFDM_CARRIERS_EMOS/num_tx_ant/2]; //frequency response of one link of the MIMO channel
- float norm = 0;
- double snr_lin;
- int length;
-
- static RTIME last_timestamp = (RTIME) 0;
- static RTIME timestamp = (RTIME) 0;
- int disp_min_power = 30;
-
- if (data_buffer) {
- if (is_cluster_head)
- timestamp = fifo_output_eNB.timestamp;
- else
- timestamp = fifo_output_UE.timestamp;
-
- // Prepare data for Power meters
- if (last_timestamp != timestamp) {
- //printf("rx_power=%d, noise_power=%d, snr=%d\n",fifo_output->rx_power_db[0],fifo_output->n0_power_db[0],fifo_output->rx_power_db[0]-fifo_output->n0_power_db[0]);
-
- // FIFO vector filling
- for (i = 0; i < SCREEN_MEMORY_SIZE - 1; i++) {
- time_memory[i] = time_memory[i+1];
-
- for (chsch_index=0; chsch_index<2; chsch_index++) {
- power1_memory[chsch_index][i] = power1_memory[chsch_index][i+1];
- power2_memory[chsch_index][i] = power2_memory[chsch_index][i+1];
- noise1_memory[chsch_index][i] = noise1_memory[chsch_index][i+1];
- noise2_memory[chsch_index][i] = noise2_memory[chsch_index][i+1];
- snr1_memory[chsch_index][i] = snr1_memory[chsch_index][i+1];
- snr2_memory[chsch_index][i] = snr2_memory[chsch_index][i+1];
- }
-
- //capacity_memory[i] = capacity_memory[i+1];
- }
-
-
- time_memory[SCREEN_MEMORY_SIZE - 1] = (float)(timestamp - start_time) / (float)1e9;
-
- for (chsch_index=0; chsch_index<2; chsch_index++) {
- if (!is_cluster_head) {
- power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].rx_rssi_dBm[chsch_index];
- power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].rx_rssi_dBm[chsch_index];
- noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].n0_power_dB[0];
- noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].n0_power_dB[1];
- snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].wideband_cqi_tot[chsch_index];
- snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_UE.PHY_measurements[0].wideband_cqi_tot[chsch_index];
- } else {
- power1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_tot_dBm;
- power2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_tot_dBm;
- noise1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_dB[0];
- noise2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].n0_power_dB[1];
- snr1_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].wideband_cqi_tot[chsch_index];
- snr2_memory[chsch_index][SCREEN_MEMORY_SIZE-1] = (float)fifo_output_eNB.PHY_measurements_eNB[0].wideband_cqi_tot[chsch_index];
- }
- }
-
- capacity_memory[SCREEN_MEMORY_SIZE - 1] = 0;
-
- values_in_memory = SCREEN_MEMORY_SIZE;
- }
-
- last_timestamp = timestamp;
-
- // Pannel widgets
- /////////////////////////////
-
- // Screen widgets
- /////////////////////////////
-
- // Power meters
- fl_set_xyplot_data(main_frm->pwr1_xyp, time_memory, power1_memory[0], values_in_memory, "", "time (s)", "dBm");
- //fl_add_xyplot_overlay(main_frm->pwr1_xyp, 1, time_memory, power1_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->pwr1_xyp, -110, -40);
- fl_set_xyplot_data(main_frm->pwr2_xyp, time_memory, power2_memory[0], values_in_memory, "", "time (s)", "dBm");
- //fl_add_xyplot_overlay(main_frm->pwr2_xyp, 1, time_memory, power2_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->pwr2_xyp, -110, -40);
-
- if (noise_selector == N0) {
- fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, noise1_memory[0], values_in_memory, "", "time (s)", "dB");
- //fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, noise1_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40);
- fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, noise2_memory[0], values_in_memory, "", "time (s)", "dB");
- //fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, noise2_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40);
- //fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 1);
- } else {
- fl_set_xyplot_data(main_frm->noise1_xyp, time_memory, snr1_memory[0], values_in_memory, "", "time (s)", "dB");
- //fl_add_xyplot_overlay(main_frm->noise1_xyp, 1, time_memory, snr1_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise1_xyp, 0, 40);
- fl_set_xyplot_data(main_frm->noise2_xyp, time_memory, snr2_memory[0], values_in_memory, "", "time (s)", "dB");
- //fl_add_xyplot_overlay(main_frm->noise2_xyp, 1, time_memory, snr2_memory[1], values_in_memory, FL_BLUE);
- fl_set_xyplot_ybounds(main_frm->noise2_xyp, 0, 40);
- }
-
- // Channel response
- // if(domain_selector == FREQ_DOMAIN)
- if (is_cluster_head==0) {
-
- //convert to float
- disp_min_power = 30;
- disp_max_power = 80;
-
- for (as=0; asch11_sec0_xyp, subcarrier_ind, channel[0][0], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch11_sec0_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch11_sec0_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch11_sec0_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch12_sec0_xyp, subcarrier_ind, channel[0][1], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch12_sec0_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch12_sec0_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch12_sec0_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch21_sec0_xyp, subcarrier_ind, channel[0][2], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch21_sec0_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch21_sec0_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch21_sec0_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch22_sec0_xyp, subcarrier_ind, channel[0][3], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch22_sec0_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch22_sec0_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch22_sec0_xyp, disp_min_power, disp_max_power);
-
- fl_set_xyplot_data(main_frm->ch11_sec1_xyp, subcarrier_ind, channel[1][0], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch11_sec1_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch11_sec1_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch11_sec1_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch12_sec1_xyp, subcarrier_ind, channel[1][1], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch12_sec1_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch12_sec1_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch12_sec1_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch21_sec1_xyp, subcarrier_ind, channel[1][2], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch21_sec1_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch21_sec1_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch21_sec1_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch22_sec1_xyp, subcarrier_ind, channel[1][3], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch22_sec1_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch22_sec1_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch22_sec1_xyp, disp_min_power, disp_max_power);
-
- fl_set_xyplot_data(main_frm->ch11_sec2_xyp, subcarrier_ind, channel[2][0], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch11_sec2_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch11_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch11_sec2_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch11_sec2_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch12_sec2_xyp, subcarrier_ind, channel[2][1], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch12_sec2_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch12_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch12_sec2_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch12_sec2_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch21_sec2_xyp, subcarrier_ind, channel[2][2], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch21_sec2_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch21_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch21_sec2_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch21_sec2_xyp, disp_min_power, disp_max_power);
- fl_set_xyplot_data(main_frm->ch22_sec2_xyp, subcarrier_ind, channel[2][3], length, "", "subcarrier index", "dB");
- fl_set_xyplot_xtics(main_frm->ch22_sec2_xyp, 0, 0);
- //fl_set_xyplot_ytics(main_frm->ch22_xyp, -1, -1);
- //fl_set_xyplot_xbounds(main_frm->ch22_sec2_xyp, -100, 100);
- fl_set_xyplot_ybounds(main_frm->ch22_sec2_xyp, disp_min_power, disp_max_power);
-
-
- if (!is_cluster_head) {
- // BLER
- sprintf(temp_label, "BLER: %d%%", fifo_output_UE.pbch_fer[0]);
- fl_set_object_label(main_frm->bler_lbl, temp_label);
- fl_set_object_lcolor(main_frm->bler_lbl, SCREEN_COLOR_ON);
- }
-
- // RX mode
- if (!is_cluster_head) {
- switch (fifo_output_UE.mimo_mode) {
- case 1:
- sprintf(temp_label, "RX mode: SISO");
- break;
-
- case 2:
- sprintf(temp_label, "RX mode: ALAMOUTI");
- break;
-
- //case ANTCYCLING:
- //sprintf(temp_label, "RX mode: ANTCYCLING");
- //break;
- case 6:
- sprintf(temp_label, "RX mode: LAYER1 PRECODING");
- break;
-
- default:
- sprintf(temp_label, "RX mode: %d",fifo_output_UE.mimo_mode);
- }
-
- fl_set_object_label(main_frm->rx_mode_lbl, temp_label);
- fl_set_object_lcolor(main_frm->rx_mode_lbl, SCREEN_COLOR_ON);
- }
-
-
- }
-
- // update GPS
- if(gps_data) {
- if (gps_data->online) {
- switch(gps_data->fix.mode) {
- case MODE_2D:
- // Fix indicator
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "2D");
-
- // X indicator
- sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude);
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lat_lbl, temp_label);
-
- // Y indicator
- sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude);
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lon_lbl, temp_label);
-
- break;
-
- case MODE_3D:
- // Fix indicator
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "3D");
-
- // X indicator
- sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude);
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lat_lbl, temp_label);
-
- // Y indicator
- sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude);
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_ON);
- fl_set_object_label(main_frm->gps_lon_lbl, temp_label);
- break;
-
- default:
- // STATUS_NO_FIX:
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "NO");
-
- // X indicator
- sprintf(temp_label, "lat: %f deg", gps_data->fix.latitude);
- fl_set_object_label(main_frm->gps_lat_lbl, temp_label);
- fl_set_object_lcolor(main_frm->gps_lat_lbl, SCREEN_COLOR_OFF);
-
- // Y indicator
- sprintf(temp_label, "lon: %f deg", gps_data->fix.longitude);
- fl_set_object_label(main_frm->gps_lon_lbl, temp_label);
- fl_set_object_lcolor(main_frm->gps_lon_lbl, SCREEN_COLOR_OFF);
- break;
- }
- } else {
- // STATUS_NO_FIX:
- fl_set_object_color(main_frm->fix_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->fix_lbl, SCREEN_COLOR_OFF);
- fl_set_object_label(main_frm->fix_lbl, "NO");
-
- //printf("GPS not online\n");
- }
- }
-
-}
-
-void gps_data_callback(int gps_fd, void* data)
-{
- //char tmptxt[1024];
- //printf("GPS timer called\n");
- if (gps_data) {
- if (gps_poll(gps_data) != 0) {
- //sprintf(tmptxt,"Error polling data from GPS, gps_data = %x", gps_data);
- error("Error polling data from GPS");
- }
-
- //else
- //printf("GPS poll called\n");
- }
-
- //fl_set_timer(ob, 0.05);
-
-}
-
-void message(const char *msg)
-{
- fl_set_object_label(main_frm->msg_text, msg);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
-}
-
-void error(const char *msg)
-{
- fprintf(stderr,"%s\n",msg);
- fl_set_object_label(main_frm->msg_text, msg);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-}
-
-//
-// EXIT function
-//
-void exit_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_text[1024];
- int ar,at,as;
-
- if (power) {
- //message("Turn the terminal off with prior to exiting.");
- sprintf(temp_text, "Turn the terminal off with prior to exiting.");
- fl_set_object_label(main_frm->msg_text, temp_text);
- } else {
- printf("exiting normally.\n");
-
- // Openair device
- close(openair_dev_fd);
-
- /*
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++)
- { // Loops over the receive antennas
- for (at = 0; at < num_tx_ant*num_ch; at++)
- { // Loops over the transmit antennas
- if (channel[ar][at]) free(channel[ar][at]);
- }
- if (channel[ar]) free(channel[ar]);
- }
- if (channel) free(channel);
- channel = NULL;
- for (as = 0; as < NUMBER_OF_USEFUL_CARRIERS_EMOS/num_tx_ant; as++)
- { // Loops over the receive antennas
- for (ar = 0; ar < NB_ANTENNAS_RX; ar++)
- { // Loops over the transmit antennas
- if (channelT[as][ar]) free(channelT[as][ar]);
- }
- if (channelT[as]) free(channelT[as]);
- }
- if (channelT) free(channelT);
- channelT = NULL;
- if (subcarrier_ind) free(subcarrier_ind);
- subcarrier_ind = NULL;
- if (delay_ind) free(delay_ind);
- delay_ind = NULL;
- */
-
- // remove all io handlers
- if (fifo_fd>=0) fl_remove_io_callback(fifo_fd, FL_READ, &new_data_callback);
-
- if (gps_data) fl_remove_io_callback(gps_data->gps_fd, FL_READ , &gps_data_callback);
-
- // close the GPS
- if (gps_data) gps_close(gps_data);
-
- fl_finish();
- exit(0);
- }
-}
-
-void power_callback(FL_OBJECT *ob, long user_data)
-{
- int ioctl_result;
- char temp_text[1024];
- unsigned int fc;
- //unsigned char gains[4];
-
-
- if (emos_ready) {
- // Turns on and off the acquisition
- if (!power) {
- if (terminal_idx!=0) {
- // Turn the receiver on
-
- //gains[0] = 177;
- //gains[1] = 173;
- //gains[2] = 30;
- //gains[3] = 17;
-
- ioctl_result = 0;
-
- if (terminal_idx==1) {
- is_cluster_head = 1;
- node_id = 0;
- PHY_config->tdd = 1;
- PHY_config->dual_tx = 1;
- fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7);
-
- // Load the configuration to the device driver
- ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_eNb);
- ioctl_result += ioctl(openair_dev_fd, openair_RX_RF_MODE,&rf_mode_eNb);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_DLSCH_RATE_ADAPTATION, &rate_adaptation);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_DLSCH_TRANSMISSION_MODE,&mimo_mode);
- ioctl_result += ioctl(openair_dev_fd, openair_START_1ARY_CLUSTERHEAD, &fc);
- } else if (terminal_idx==2) {
- is_cluster_head = 2;
- node_id = 1;
- PHY_config->tdd = 1;
- PHY_config->dual_tx = 1;
- fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7);
- ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_eNb);
- ioctl_result += ioctl(openair_dev_fd, openair_START_2ARY_CLUSTERHEAD, &fc);
- } else if (terminal_idx==3) {
- is_cluster_head = 0;
- node_id = 8;
- PHY_config->tdd = 1;
- PHY_config->dual_tx = 0;
- fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7);
-
- tx_gain_table_ue[0]= atoi(fl_get_input(main_frm->rf_gain_txt));
- tx_gain_table_ue[1]= atoi(fl_get_input(main_frm->rf_gain_txt));
- tx_gain_table_ue[2]= atoi(fl_get_input(main_frm->digital_gain_txt));
- tx_gain_table_ue[3]= atoi(fl_get_input(main_frm->digital_gain_txt));
- rf_mode_ue= atoi(fl_get_input(main_frm->rf_mode_txt));
-
-
- ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_ue);
- //ioctl_result += ioctl(openair_dev_fd, openair_SET_TIMING_ADVANCE,&timing_advance);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_TCXO_DAC,&tcxo);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_FREQ_OFFSET,&freq_correction);
- ioctl_result += ioctl(openair_dev_fd, openair_RX_RF_MODE,&rf_mode_ue);
- ioctl_result += ioctl(openair_dev_fd, openair_START_NODE, &fc);
- } else if (terminal_idx==4) {
- is_cluster_head = 0;
- node_id = 9;
- PHY_config->tdd = 1;
- PHY_config->dual_tx = 0;
- fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7);
- ioctl_result += ioctl(openair_dev_fd, openair_DUMP_CONFIG,(char *)PHY_config);
- ioctl_result += ioctl(openair_dev_fd, openair_SET_TX_GAIN,tx_gain_table_ue);
- ioctl_result+=ioctl(openair_dev_fd, openair_START_NODE, &fc);
- } else
- error("Unknown terminal index");
-
- if (ioctl_result != 0) {
- printf(temp_text, "Error starting terminal mode!");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- // Open the EMOS FIFO
- fifo_fd = open(CHANSOUNDER_FIFO_DEV, O_RDONLY);
-
- if (fifo_fd < 0) {
- printf(temp_text, "Error opening the EMOS FIFO!");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- // flush the FIFO
- if (rtf_reset(fifo_fd))
- error("Error reseting FIFO");
-
- // Ties the FIFO handling routine
- fl_add_io_callback(fifo_fd, FL_READ, &new_data_callback, NULL);
-
- // open GPS
- gps_data = gps_open("127.0.0.1","2947");
-
- if (gps_data == NULL) {
- fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- error("Could not open GPS");
- } else {
- if (gps_query(gps_data, "w+x\n") != 0) {
- //sprintf(tmptxt,"Error sending command to GPS, gps_data = %x", gps_data);
- error("Error sending command to GPS");
- } else
- fl_set_object_color(main_frm->gps_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- }
-
- if (gps_data)
- fl_add_io_callback(gps_data->gps_fd, FL_READ, &gps_data_callback, NULL);
-
-
- // resume timer
- fl_resume_timer(main_frm->refresh_timer);
- //fl_resume_timer(main_frm->gps_timer);
-
- initialize_interface();
- power = TERM_ON;
- } else {
- error("Set terminal index first!");
- }
- } else {
- if (record) {
- sprintf(temp_text, "Still recording! Stop recording prior to powering down.");
- fl_set_object_label(main_frm->msg_text, temp_text);
- } else {
- fl_suspend_timer(main_frm->refresh_timer);
-
- // Turn the receiver off
- fc = (1) | ((frequency&7)<<1) | ((frequency&7)<<4) | ((node_id&0xFF) << 7);
- ioctl_result = ioctl(openair_dev_fd, openair_STOP, &fc);
-
- if (ioctl_result != 0) {
- printf(temp_text, "Error stopping terminal mode!");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->error_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->error_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
- }
-
- //fl_suspend_timer(main_frm->gps_timer);
-
- stop_interface();
- power = TERM_OFF;
- }
- }
- }
-}
-
-
-
-//
-// Refresh function
-//
-void refresh_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_label[1024];
-
- // update the dial
- screen_refresh_period = fl_get_dial_value(main_frm->refresh_dial);
- screen_refresh_period += (double) user_data / 10.0;
-
- if (screen_refresh_period > 5)
- screen_refresh_period = 5;
- else if (screen_refresh_period < 0.05)
- screen_refresh_period = 0.05;
-
- fl_set_dial_value(main_frm->refresh_dial, screen_refresh_period);
-
- fl_set_timer(main_frm->refresh_timer,screen_refresh_period);
-
- // Update the screen refresh in frames
- // screen_refresh_in_frames = ceil(screen_refresh_period/2.6667e-3)+1;
-
- sprintf(temp_label, "Refresh interval: %.2f s", screen_refresh_period);
- fl_set_object_label(main_frm->refresh_lbl, temp_label);
-}
-
-//
-// Refresh function
-//
-void record_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_text[1024];
-
- if(power) {
- // Terminal mode leds
- if(record) {
- // @TODO write rest of the buffer to disk
-
- // Turn off recording
- record = REC_OFF;
- rec_frame_counter = 0;
-
- // release the buffer
- free(fifo_buffer);
- fifo_buffer = NULL;
- data_buffer = NULL;
- fifo_ptr = NULL;
-
- // close the dumpfile
- fclose(dumpfile_id);
- dumpfile_id = NULL;
-
- } else {
- // Turn on recording
- if (open_dumpfile() == 0)
- record = REC_ON;
- else
- error("Error opening dumpfile");
-
- }
- }
-}
-
-void checkpoint_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_label[1024];
- char filename[1024];
- FILE *checkpoints_file = NULL;
-
- if (user_data==1)
- checkpoint++;
- else if (user_data==-1)
- checkpoint--;
- else if (user_data==0) {
- sprintf(filename,"%scheckpoints.txt",dumpfile_dir);
- checkpoints_file = fopen(filename,"a");
-
- if (checkpoints_file) {
- fprintf(checkpoints_file,"date %d%d%d_%d%d%d, checkpoint %d, frame_tx %d, file_index %d, frame_counter %d\n", 1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour,
- starttime.tm_min, starttime.tm_sec, checkpoint, frame_tx, file_index, frame_counter);
- fclose(checkpoints_file);
- }
-
- checkpoint++;
- }
-
- sprintf(temp_label, "Next CP: %d", checkpoint);
- fl_set_object_label(main_frm->next_cp, temp_label);
-
-
-}
-
-
-int open_dumpfile()
-{
- char dumpfile_name[1024];
- char temp_label[1024];
-
- // create the dumpfile buffer
- // allocate memory for NO_FRAMES_DISK channes estimations
-
- fifo_buffer = malloc(NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE);
- fifo_ptr = fifo_buffer;
-
- if(fifo_buffer == NULL) {
- error( "Could not allocate memory for fifo2file_buffer");
- return -1;
- }
-
- // open the dumpfile
-
- time(&starttime_tmp);
- localtime_r(&starttime_tmp,&starttime);
-
- if (use_label)
- sprintf(dumpfile_name,"%sdata_term%d_idx%02d_%s_%04d%02d%02dT%02d%02d%02d.EMOS",dumpfile_dir,terminal_idx,file_index,label_str,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday,
- starttime.tm_hour, starttime.tm_min, starttime.tm_sec);
- else
- sprintf(dumpfile_name,"%sdata_term%d_idx%02d_%04d%02d%02dT%02d%02d%02d.EMOS",dumpfile_dir,terminal_idx,file_index,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour,
- starttime.tm_min, starttime.tm_sec);
-
- dumpfile_id = fopen(dumpfile_name,"w");
-
- if (dumpfile_id == NULL) {
- sprintf(temp_label,"Error opening dumpfile %s", dumpfile_name);
- error(temp_label);
- return -1;
- }
-
- sprintf(date_string,"date: %04d%02d%02dT%02d%02d%02d",1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday, starttime.tm_hour, starttime.tm_min, starttime.tm_sec);
- fl_set_object_label(main_frm->date_lbl, date_string);
- sprintf(temp_label, "idx: %d", file_index);
- fl_set_object_label(main_frm->idx_lbl, temp_label);
-
- return 0;
-}
-
-//
-// Prcesses all the new data in the FIFO
-//
-void new_data_callback(int fifo_fd, void* data)
-{
- int n_bytes = 0;
- char temp_text[1024];
-
- // Read data from FIFO
- if (is_cluster_head) {
- data_buffer = (char*) &fifo_output_eNB;
- CHANNEL_BUFFER_SIZE = sizeof(fifo_dump_emos_eNb);
- } else {
- data_buffer = (char*) &fifo_output_UE;
- CHANNEL_BUFFER_SIZE = sizeof(fifo_dump_emos_UE);
- }
-
- n_bytes = rtf_read_all_at_once(fifo_fd, data_buffer, CHANNEL_BUFFER_SIZE);
-
- if (n_bytes != CHANNEL_BUFFER_SIZE) {
- sprintf(temp_text, "Error reading FIFO.");
- fl_set_object_label(main_frm->msg_text, temp_text);
- fl_set_object_lcolor(main_frm->msg_text, SCREEN_COLOR_ON);
- }
-
- if (is_cluster_head) {
- frame_tx = fifo_output_eNB.frame_tx;
- } else {
- // if UE is not synched use rec_frame_counter instead
- if (fifo_output_UE.UE_mode == NOT_SYNCHED)
- frame_tx = rec_frame_counter;
- else
- frame_tx = fifo_output_UE.frame_tx;
- }
-
-
- if (terminal_mode == TERM_MODE_MULTI) {
- if (frame_tx % REC_FRAMES_MAX < REC_FRAMES_PER_FILE)
- record_multi = REC_ON;
- else
- record_multi = REC_OFF;
-
- file_index = frame_tx/REC_FRAMES_MAX % REC_FILE_IDX_MAX;
- }
-
- if((frame_counter % 1000) == 0) {
- printf("record = %d. record_multi = %d, terminal_mode = %d, frame_tx=%d, file_index = %d\n", record, record_multi, terminal_mode, frame_tx, file_index);
- }
-
- frame_counter++;
-
- if ((record==REC_ON && terminal_mode == TERM_MODE_SINGL) || (record==REC_ON && record_multi==REC_ON && terminal_mode == TERM_MODE_MULTI)) {
- // Recording indicator ON
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_ON, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_ON);
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_ON);
-
- if (dumpfile_id == NULL) {
- error("Dumpfile not open");
- } else {
- // copy the data to the fifo buffer
- memcpy(fifo_ptr, data_buffer, CHANNEL_BUFFER_SIZE);
- fifo_ptr += CHANNEL_BUFFER_SIZE;
- rec_frame_counter++;
-
- sprintf(temp_text,"Buffer: %3d%%", ((rec_frame_counter%NO_ESTIMATES_DISK)*100/NO_ESTIMATES_DISK));
- fl_set_object_label(main_frm->buffer_lbl,temp_text);
- sprintf(temp_text,"Rec'd Frames: %d", rec_frame_counter);
- fl_set_object_label(main_frm->n_recd_frames_lbl,temp_text);
-
- // store data to disk
- if (rec_frame_counter%NO_ESTIMATES_DISK==0) {
- //reset stuff
- fifo_ptr = fifo_buffer;
-
- //flush buffer to disk
- printf("flushing buffer to disk\n");
-
- if (fwrite(fifo_buffer, sizeof(char), NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE, dumpfile_id) != NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE) {
- message("Error writing to dumpfile, stopping recording");
- record = REC_OFF;
- }
-
- // write GPS data to disk
- if (gps_data) {
- if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- message("Error writing to dumpfile, stopping recording");
- record = REC_OFF;
- }
- } else {
- message("WARNING: No GPS data available, storing dummy packet");
-
- if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- message("Error writing to dumpfile, stopping recording");
- record = REC_OFF;
- }
- }
- }
- }
- } else if (record==REC_ON && record_multi==REC_OFF && terminal_mode == TERM_MODE_MULTI) {
- // Recording indicator Ready
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_HL, SCREEN_COLOR_OFF);
-
- if (rec_frame_counter > 0) {
- // Turn off recording
- record = REC_OFF;
- rec_frame_counter = 0;
-
- // release the buffer
- free(fifo_buffer);
- fifo_buffer = NULL;
- data_buffer = NULL;
- fifo_ptr = NULL;
-
- // close the dumpfile
- fclose(dumpfile_id);
- dumpfile_id = NULL;
-
- // open another dumpfile
- if (open_dumpfile() == 0)
- record = REC_ON;
- else
- error("Error opening dumpfile");
- }
- } else { //record==REC_OFF
- // Recording indicator OFF
- fl_set_object_lcolor(main_frm->rec_lbl, SCREEN_COLOR_OFF);
- fl_set_object_color(main_frm->rec_lbl, SCREEN_COLOR_BG, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->n_recd_frames_lbl, SCREEN_COLOR_OFF);
- fl_set_object_lcolor(main_frm->buffer_lbl, SCREEN_COLOR_OFF);
- }
-}
-
-//
-// Refresh function
-//
-void terminal_button_callback(FL_OBJECT *ob, long user_data)
-{
- char temp_label[1024];
- fl_set_button(main_frm->terminal_btn1,0);
- //fl_set_button(main_frm->terminal_btn2,0);
- fl_set_button(main_frm->terminal_btn3,0);
- //fl_set_button(main_frm->terminal_btn4,0);
- fl_set_button(ob,1);
- terminal_idx = user_data;
-
- if (terminal_idx == 1) {
- sprintf(temp_label,"%d",tx_gain_table_eNb[0]);
- fl_set_input(main_frm->rf_gain_txt, temp_label);
- sprintf(temp_label,"%d",tx_gain_table_eNb[2]);
- fl_set_input(main_frm->digital_gain_txt, temp_label);
- sprintf(temp_label,"%d",rf_mode_eNb);
- fl_set_input(main_frm->rf_mode_txt, temp_label);
- sprintf(temp_label,"%d",frequency);
- fl_set_input(main_frm->freq_txt, temp_label);
- sprintf(temp_label,"%d",tcxo);
- fl_set_input(main_frm->tcxo_txt, temp_label);
- } else if (terminal_idx == 3) {
- sprintf(temp_label,"%d",tx_gain_table_ue[0]);
- fl_set_input(main_frm->rf_gain_txt, temp_label);
- sprintf(temp_label,"%d",tx_gain_table_ue[2]);
- fl_set_input(main_frm->digital_gain_txt, temp_label);
- sprintf(temp_label,"%d",rf_mode_ue);
- fl_set_input(main_frm->rf_mode_txt, temp_label);
- sprintf(temp_label,"%d",frequency);
- fl_set_input(main_frm->freq_txt, temp_label);
- sprintf(temp_label,"%d",tcxo);
- fl_set_input(main_frm->tcxo_txt, temp_label);
- }
-}
-
-void rx_mode_button_callback(FL_OBJECT *ob, long user_data)
-{
- int ioctl_result;
-
- fl_set_button(main_frm->siso_btn,0);
- fl_set_button(main_frm->alamouti_btn,0);
- fl_set_button(main_frm->precoding_btn,0);
- fl_set_button(ob,1);
- mimo_mode = user_data;
-
- if (power)
- ioctl_result=ioctl(openair_dev_fd,openair_SET_DLSCH_TRANSMISSION_MODE,&mimo_mode);
-}
-
-void link_adpt_callback(FL_OBJECT *ob, long user_data)
-{
- int ioctl_result;
-
- rate_adaptation = fl_get_button(main_frm->la_btn);
-
- if (power)
- ioctl_result = ioctl(openair_dev_fd, openair_SET_DLSCH_RATE_ADAPTATION, &rate_adaptation);
-}
-
-
-//
-// Time/Freq domain selector
-//
-void time_freq_callback(FL_OBJECT *ob, long user_data)
-{
- fl_set_button(main_frm->time_domain_btn,0);
- fl_set_button(main_frm->freq_domain_btn,0);
- fl_set_button(ob,1);
- domain_selector = user_data;
-}
-
-//
-// SNR/N0 selector
-//
-void noise_snr_callback(FL_OBJECT *ob, long user_data)
-{
- fl_set_button(main_frm->snr_btn,0);
- fl_set_button(main_frm->n0_btn,0);
- fl_set_button(ob,1);
- noise_selector = user_data;
- printf("noise_selector = %d\n",noise_selector);
-}
-
-void refresh_timer_callback(FL_OBJECT *ob, long user_data)
-{
- refresh_interface();
- fl_set_timer(ob, screen_refresh_period);
-}
-
-void config_btn_callback(FL_OBJECT *ob, long user_data)
-{
-
- config_wnd = fl_show_form(config_frm->config_dialog, FL_PLACE_HOTSPOT, FL_FULLBORDER, "Select Directory");
- fl_set_input(config_frm->dir_input,dumpfile_dir);
-
-}
-
-void get_dir_callback(FL_OBJECT *ob, long user_data)
-{
- const char *filename;
- filename = fl_get_input(config_frm->dir_input);
-
- if (user_data==0)
- strcpy(dumpfile_dir, filename);
-
- printf("Directory = %s\n",dumpfile_dir);
- fl_hide_form(config_frm->config_dialog);
-}
-
-void input_callback(FL_OBJECT *ob, long user_data)
-{
- tx_gain_table_eNb[0]= atoi(fl_get_input(main_frm->rf_gain_txt));
- tx_gain_table_eNb[1]= atoi(fl_get_input(main_frm->rf_gain_txt));
- tx_gain_table_eNb[2]= atoi(fl_get_input(main_frm->digital_gain_txt));
- tx_gain_table_eNb[3]= atoi(fl_get_input(main_frm->digital_gain_txt));
- rf_mode_eNb= atoi(fl_get_input(main_frm->rf_mode_txt));
- frequency = atoi(fl_get_input(main_frm->freq_txt));
- tcxo = atoi(fl_get_input(main_frm->tcxo_txt));
-
-}
-
-void label_callback(FL_OBJECT *ob, long user_data)
-{
- strcpy(label_str,fl_get_input(main_frm->label_input));
-
- if (label_str) {
- fl_set_button(main_frm->label_button,1);
- use_label = 1;
- }
-}
-
-void label_btn_callback(FL_OBJECT *ob, long user_data)
-{
- use_label = fl_get_button(main_frm->label_button);
-
- if (!use_label)
- fl_set_input(main_frm->label_input, "");
-}
-
-//
-// Initializes the MAC and PHY vars
-//
-int mac_phy_init()
-{
- int ioctl_result;
-
- // FILE *config; --> already declared in config_vars.h
- // FILE *scenario; --> already declared in config_vars.h
-
- char temp_text[1024];
-
- // Load configuration files
- if ((config = fopen("./config.cfg","r")) == NULL) {
- error("Openair configuration file could not be found!");
- emos_ready = EMOS_NOT_READY;
- return -1;
- }
-
- if ((scenario = fopen("./scenario.scn","r")) == NULL) {
- error("Openair scenario file could not be found!");
- emos_ready = EMOS_NOT_READY;
- return -1;
- }
-
- // Load openair configuration
- PHY_config = (PHY_CONFIG *)&PHY_config_mem;
- PHY_vars = malloc(sizeof(PHY_VARS));
- mac_xface = malloc(sizeof(MAC_xface));
-
- reconfigure_MACPHY(scenario);
- printf("reconfigure_MACPHY() done.\n");
-
-#ifndef OPENAIR_LTE
- phy_init(NB_ANTENNAS_TX);
-#else
- lte_frame_parms = &(PHY_config->lte_frame_parms);
- /*
- lte_ue_common_vars = &(PHY_vars->lte_ue_common_vars);
- lte_ue_dlsch_vars = &(PHY_vars->lte_ue_dlsch_vars[0]);
- lte_ue_pbch_vars = &(PHY_vars->lte_ue_pbch_vars[0]);
- lte_eNB_common_vars = &(PHY_vars->lte_eNB_common_vars);
- */
-
- lte_frame_parms->N_RB_DL = 25;
- lte_frame_parms->N_RB_UL = 25;
- lte_frame_parms->Ng_times6 = 1;
- lte_frame_parms->Ncp = 1;
- lte_frame_parms->Nid_cell = 0;
- lte_frame_parms->nushift = 0;
- lte_frame_parms->nb_antennas_tx = NB_ANTENNAS_TX;
- lte_frame_parms->nb_antennas_rx = NB_ANTENNAS_RX;
- lte_frame_parms->first_dlsch_symbol = 4;
- lte_frame_parms->num_dlsch_symbols = 6;
- lte_frame_parms->mode1_flag = 1; //default == SISO
- lte_frame_parms->Csrs = 2;
- lte_frame_parms->Bsrs = 0;
- lte_frame_parms->kTC = 0;
- lte_frame_parms->n_RRC = 0;
-
- init_frame_parms(lte_frame_parms);
-
- //phy_init_top(NB_ANTENNAS_TX);
-
- //lte_frame_parms->twiddle_fft = twiddle_fft;
- //lte_frame_parms->twiddle_ifft = twiddle_ifft;
- //lte_frame_parms->rev = rev;
-
- //phy_init_lte_ue(lte_frame_parms,lte_ue_common_vars,lte_ue_dlsch_vars,lte_ue_pbch_vars);
- //phy_init_lte_eNB(lte_frame_parms, lte_eNB_common_vars);
-#endif
-
- // Openair configuration
- fclose(config);
-
- // Openair scenario
- // fclose(scenario_fd); --> already closed in reconfigure_MACPHY
-
- dump_config();
-
- emos_ready = EMOS_READY;
-
- return 0;
-}
-
-
-
diff --git a/openair1/EMOS/LTE/GUI/emos_gui.h b/openair1/EMOS/LTE/GUI/emos_gui.h
deleted file mode 100644
index c4284d903d..0000000000
--- a/openair1/EMOS/LTE/GUI/emos_gui.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#define TERM_MODE_SINGL 0
-#define TERM_MODE_MULTI 1
-
-#define TERM_ON 1
-#define TERM_OFF 0
-
-#define SCREEN_COLOR_ON FL_CHARTREUSE
-#define SCREEN_COLOR_OFF FL_RIGHT_BCOL
-#define SCREEN_COLOR_BG FL_BLACK
-#define SCREEN_COLOR_HL FL_RED
-
-#define LED_COLOR_ON FL_RED
-#define LED_COLOR_OFF FL_RIGHT_BCOL
-
-#define REC_ON 1
-#define REC_OFF 0
-
-#define EMOS_NOT_READY 0
-#define EMOS_READY 1
-
-#define TIME_DOMAIN 0
-#define FREQ_DOMAIN 1
-
-#define N0 0
-#define SNR 1
-
-#define REC_FRAMES_MAX (100*60*5) //5min
-#define REC_FRAMES_PER_FILE (100*(60*5-5)) //4min55sec
-#define REC_FILE_IDX_MAX 100
-
-#define CHANSOUNDER_FIFO_DEV "/dev/rtf3"
-
-#define NO_ESTIMATES_DISK 100 //No. of estimates that are aquired before dumped to disk
-
-//#define CHANNEL_BUFFER_SIZE sizeof(fifo_dump_emos_UE) //in bytes
-
-#define SCREEN_MEMORY_SIZE 32
-
-#define DISP_MAX_POWER 4194304 //maximum value for the display of the frequency response
-
-//#define GPSD_BUFFER_SIZE 64
-
diff --git a/openair1/EMOS/LTE/GUI/emos_gui_forms.c b/openair1/EMOS/LTE/GUI/emos_gui_forms.c
deleted file mode 100644
index 4330af6186..0000000000
--- a/openair1/EMOS/LTE/GUI/emos_gui_forms.c
+++ /dev/null
@@ -1,579 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/* Form definition file generated by fdesign */
-
-#include
-#include "emos_gui_forms.h"
-
-
-/***************************************
- ***************************************/
-
-FD_main_frm *
-create_form_main_frm( void )
-{
- FL_OBJECT *obj;
- FD_main_frm *fdui = fl_malloc( sizeof *fdui );
-
- fdui->vdata = fdui->cdata = NULL;
- fdui->ldata = 0;
-
- fdui->main_frm = fl_bgn_form( FL_NO_BOX, 1010, 710 );
-
- obj = fl_add_box( FL_FLAT_BOX, 0, 0, 1010, 710, "Main form" );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_MCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 10, 610, 230, 90, "" );
- fl_set_object_color( obj, FL_DARKER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- obj = fl_add_box( FL_ROUNDED3D_DOWNBOX, 5, 5, 850, 600, "" );
- fl_set_object_color( obj, FL_BLACK, FL_BLACK );
-
- fdui->sync_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 635, 15, 40, 20, "sync" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->rec_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 720, 15, 40, 20, "rec" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->pwr1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 45, 300, 110, "Power" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->pwr2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 330, 45, 300, 110, "Power" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->rx2_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 345, 10, 80, 40, "RX 2" );
- fl_set_object_color( obj, FL_BLACK, FL_MCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_HUGE_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->noise1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 170, 300, 110, "N0/SNR" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->noise2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 330, 170, 300, 110, "N0/SNR" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch11_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 10, 325, 140, 110, "CH 11" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch12_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 145, 325, 140, 110, "CH 12" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch21_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 10, 455, 140, 110, "CH 21" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch22_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 145, 455, 140, 110, "CH 22" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch11_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 290, 325, 140, 110, "CH 11" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch12_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 430, 325, 140, 110, "CH 12" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch21_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 290, 455, 140, 110, "CH 21" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch22_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 430, 455, 140, 110, "CH 22" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->error_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 680, 15, 40, 20, "error" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->gps_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 640, 65, 60, 30, "gps" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->date_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 655, 120, 170, 30, "date: " );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->gps_lat_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 700, 65, 150, 30, "lat: 0" );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->gps_lon_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 700, 95, 150, 30, "lon: 0" );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->idx_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 685, 150, 110, 20, "Idx: " );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 485, 610, 140, 90, "" );
- fl_set_object_color( obj, FL_DARKCYAN, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- fdui->power_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 130, 620, 100, 70, "PWR" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_MEDIUM_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, power_callback, 0 );
-
- fdui->buffer_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 760, 15, 90, 20, "Buffer: 100%" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->refresh_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 655, 175, 170, 20, "Refresh interval: 1s" );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 860, 90, 140, 220, "" );
- fl_set_object_color( obj, FL_DARKER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- fdui->refresh_dial = obj = fl_add_dial( FL_NORMAL_DIAL, 890, 110, 80, 70, "screen refresh rate" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
- fl_set_object_callback( obj, refresh_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_CHANGED );
- fl_set_dial_bounds( obj, 0, 5 );
- fl_set_dial_angles( obj, 45, 315 );
- fl_set_dial_value( obj, 1 );
- fl_set_dial_step( obj, 1 );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 860, 528, 137, 72, "" );
- fl_set_object_color( obj, FL_INDIANRED, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- fdui->bler_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 200, 180, 20, "BLER:" );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->n_recd_frames_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 225, 180, 20, "Rec'd frms:" );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->msg_text = obj = fl_add_text( FL_NORMAL_TEXT, 25, 570, 810, 30, "" );
- fl_set_object_color( obj, FL_BLACK, FL_MCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
-
- obj = fl_add_pixmapbutton( FL_NORMAL_BUTTON, 860, 5, 140, 70, "" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_WHITE, FL_YELLOW );
- fl_set_pixmapbutton_file( obj, "Eurecom_Logo.xpm" );
-
- fdui->rx1_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 35, 10, 80, 40, "RX 1" );
- fl_set_object_color( obj, FL_BLACK, FL_MCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_HUGE_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->alamouti_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 655, 100, 20, "2: ALAMOUTI" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, rx_mode_button_callback, 2 );
-
- fdui->precoding_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 675, 100, 20, "6: PRECODING" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, rx_mode_button_callback, 6 );
-
- fdui->cbmimo_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 665, 40, 70, 20, "cbmimo" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->fix_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 640, 95, 60, 30, "NO" );
- fl_set_object_boxtype( obj, FL_ROUNDED_BOX );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 800, 610, 200, 90, "" );
- fl_set_object_color( obj, FL_INDIANRED, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- fdui->rec_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 820, 620, 160, 70, "Record" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, record_callback, 0 );
-
- fdui->exit_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 20, 660, 90, 30, "exit" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_TOMATO, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, exit_callback, 0 );
-
- fdui->config_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 20, 620, 90, 30, "config" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, config_btn_callback, 0 );
-
- obj = fl_add_button( FL_NORMAL_BUTTON, 870, 180, 40, 30, "+" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
- fl_set_object_callback( obj, refresh_callback, 1 );
-
- obj = fl_add_button( FL_NORMAL_BUTTON, 950, 180, 40, 30, "-" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
- fl_set_object_callback( obj, refresh_callback, -1 );
-
- fdui->time_domain_btn = obj = fl_add_button( FL_PUSH_BUTTON, 870, 235, 60, 20, "time" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, time_freq_callback, 0 );
-
- fdui->freq_domain_btn = obj = fl_add_button( FL_PUSH_BUTTON, 930, 235, 60, 20, "freq" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, time_freq_callback, 1 );
-
- obj = fl_add_text( FL_NORMAL_TEXT, 875, 215, 110, 20, "channel display" );
- fl_set_object_color( obj, FL_DARKER_COL1, FL_MCOL );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- fdui->refresh_timer = obj = fl_add_timer( FL_HIDDEN_TIMER, 810, 720, 10, 10, "timer" );
- fl_set_object_callback( obj, refresh_timer_callback, 0 );
-
- obj = fl_add_text( FL_NORMAL_TEXT, 875, 260, 110, 20, "N0/SNR" );
- fl_set_object_color( obj, FL_DARKER_COL1, FL_MCOL );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- fdui->n0_btn = obj = fl_add_button( FL_PUSH_BUTTON, 870, 280, 60, 20, "N0" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, noise_snr_callback, 0 );
-
- fdui->snr_btn = obj = fl_add_button( FL_PUSH_BUTTON, 930, 280, 60, 20, "SNR" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, noise_snr_callback, 1 );
-
- fdui->rx_mode_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 250, 180, 20, "RX mode:" );
- fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
-
- fdui->siso_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 635, 100, 20, "1: SISO" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, rx_mode_button_callback, 1 );
-
- obj = fl_add_text( FL_NORMAL_TEXT, 505, 615, 100, 20, "TX mode" );
- fl_set_object_boxtype( obj, FL_NO_BOX );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- fdui->ch11_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 570, 325, 140, 110, "CH 11" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch12_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 710, 325, 140, 110, "CH 12" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch21_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 570, 455, 140, 110, "CH 21" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->ch22_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 710, 455, 140, 110, "CH 22" );
- fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
-
- fdui->sec0_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 85, 285, 140, 20, "Sector 0" );
- fl_set_object_color( obj, FL_BLACK, FL_BLACK );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_MEDIUM_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- fdui->sec1_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 380, 285, 140, 20, "Sector 1" );
- fl_set_object_color( obj, FL_BLACK, FL_BLACK );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_MEDIUM_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- fdui->sec2_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 285, 140, 20, "Sector 2" );
- fl_set_object_color( obj, FL_BLACK, FL_BLACK );
- fl_set_object_lcolor( obj, FL_RIGHT_BCOL );
- fl_set_object_lsize( obj, FL_MEDIUM_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 250, 610, 130, 90, "" );
- fl_set_object_color( obj, FL_PALEGREEN, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- fdui->terminal_btn1 = obj = fl_add_button( FL_PUSH_BUTTON, 265, 650, 40, 40, "eNb" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
- fl_set_object_callback( obj, terminal_button_callback, 1 );
-
- fdui->terminal_btn3 = obj = fl_add_button( FL_PUSH_BUTTON, 320, 650, 40, 40, "UE" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
- fl_set_object_callback( obj, terminal_button_callback, 3 );
-
- obj = fl_add_text( FL_NORMAL_TEXT, 260, 620, 110, 20, "terminal type" );
- fl_set_object_color( obj, FL_PALEGREEN, FL_MCOL );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 630, 610, 160, 90, "" );
- fl_set_object_color( obj, FL_WHEAT, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- obj = fl_add_button( FL_NORMAL_BUTTON, 645, 660, 90, 30, "Checkpoint" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, checkpoint_callback, 0 );
-
- obj = fl_add_button( FL_NORMAL_BUTTON, 740, 620, 40, 30, "+" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
- fl_set_object_callback( obj, checkpoint_callback, 1 );
-
- obj = fl_add_button( FL_NORMAL_BUTTON, 740, 660, 40, 30, "-" );
- fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX );
- fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_lstyle( obj, FL_BOLD_STYLE );
- fl_set_object_callback( obj, checkpoint_callback, -1 );
-
- fdui->next_cp = obj = fl_add_text( FL_NORMAL_TEXT, 650, 625, 90, 20, "Next CP: 1" );
- fl_set_object_color( obj, FL_WHEAT, FL_MCOL );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 860, 320, 142, 199, "" );
- fl_set_object_color( obj, FL_PALEGREEN, FL_COL1 );
-
- fdui->rf_gain_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 340, 60, 20, "RF gain" );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_callback( obj, input_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- fdui->digital_gain_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 374, 60, 20, "digital gain" );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_callback( obj, input_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- fdui->rf_mode_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 409, 60, 20, "RF mode" );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_callback( obj, input_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- obj = fl_add_box( FL_ROUNDED_BOX, 390, 610, 90, 90, "" );
- fl_set_object_color( obj, FL_DARKCYAN, FL_COL1 );
- fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
-
- fdui->la_btn = obj = fl_add_lightbutton( FL_PUSH_BUTTON, 405, 645, 60, 40, "LA" );
- fl_set_object_callback( obj, link_adpt_callback, 0 );
- fl_set_button( obj, 1 );
-
- obj = fl_add_text( FL_NORMAL_TEXT, 400, 620, 70, 20, "link adpt." );
- fl_set_object_color( obj, FL_DARKCYAN, FL_MCOL );
-
- fdui->label_input = obj = fl_add_input( FL_NORMAL_INPUT, 880, 569, 100, 20, "" );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_lalign( obj, FL_ALIGN_TOP );
- fl_set_object_callback( obj, label_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- fdui->label_button = obj = fl_add_checkbutton( FL_PUSH_BUTTON, 877, 539, 60, 30, "manual label" );
- fl_set_object_callback( obj, label_btn_callback, 0 );
-
- fdui->freq_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 444, 60, 20, "frequency" );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_callback( obj, input_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- fdui->tcxo_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 479, 60, 20, "TCXO" );
- fl_set_object_lsize( obj, FL_TINY_SIZE );
- fl_set_object_callback( obj, input_callback, 0 );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- fl_end_form( );
-
- fdui->main_frm->fdui = fdui;
-
- return fdui;
-}
-
-
-/***************************************
- ***************************************/
-
-FD_splash_frm *
-create_form_splash_frm( void )
-{
- FL_OBJECT *obj;
- FD_splash_frm *fdui = fl_malloc( sizeof *fdui );
-
- fdui->vdata = fdui->cdata = NULL;
- fdui->ldata = 0;
-
- fdui->splash_frm = fl_bgn_form( FL_NO_BOX, 390, 280 );
-
- obj = fl_add_box( FL_FLAT_BOX, 0, 0, 390, 280, "" );
-
- obj = fl_add_pixmap( FL_NORMAL_PIXMAP, 40, 20, 310, 100, "" );
-
- obj = fl_add_text( FL_NORMAL_TEXT, 70, 150, 80, 30, "text" );
-
- fl_end_form( );
-
- fdui->splash_frm->fdui = fdui;
-
- return fdui;
-}
-
-
-/***************************************
- ***************************************/
-
-FD_config_dialog *
-create_form_config_dialog( void )
-{
- FL_OBJECT *obj;
- FD_config_dialog *fdui = fl_malloc( sizeof *fdui );
-
- fdui->vdata = fdui->cdata = NULL;
- fdui->ldata = 0;
-
- fdui->config_dialog = fl_bgn_form( FL_NO_BOX, 410, 120 );
-
- obj = fl_add_box( FL_UP_BOX, 0, 0, 410, 120, "" );
-
- fdui->cancel_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 80, 75, 100, 30, "Cancel" );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, get_dir_callback, -1 );
-
- fdui->ok_btn = obj = fl_add_button( FL_RETURN_BUTTON, 225, 75, 100, 30, "OK" );
- fl_set_object_lalign( obj, FL_ALIGN_CENTER );
- fl_set_object_callback( obj, get_dir_callback, 0 );
-
- fdui->dir_input = obj = fl_add_input( FL_NORMAL_INPUT, 80, 30, 300, 30, "Directory" );
- fl_set_object_return( obj, FL_RETURN_END_CHANGED );
-
- fl_end_form( );
-
- fdui->config_dialog->fdui = fdui;
-
- return fdui;
-}
diff --git a/openair1/EMOS/LTE/GUI/emos_gui_forms.fd b/openair1/EMOS/LTE/GUI/emos_gui_forms.fd
deleted file mode 100644
index 8b9daf609d..0000000000
--- a/openair1/EMOS/LTE/GUI/emos_gui_forms.fd
+++ /dev/null
@@ -1,1664 +0,0 @@
-Magic: 14000
-
-Internal Form Definition File
- (do not change)
-
-Number of forms: 3
-Unit of measure: FL_COORD_PIXEL
-SnapGrid: 1
-
-=============== FORM ===============
-Name: main_frm
-Width: 1010
-Height: 710
-Number of Objects: 83
-
---------------------
-class: FL_BOX
-type: FLAT_BOX
-box: 0 0 1010 710
-boxtype: FL_FLAT_BOX
-colors: FL_LIGHTER_COL1 FL_MCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Main form
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 10 610 230 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKER_COL1 FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED3D_DOWNBOX
-box: 5 5 850 600
-boxtype: FL_ROUNDED3D_DOWNBOX
-colors: FL_BLACK FL_BLACK
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 635 15 40 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: sync
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: sync_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 720 15 40 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: rec
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rec_lbl
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 20 45 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Power
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: pwr1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 330 45 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Power
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: pwr2_xyp
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 345 10 80 40
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_HUGE_SIZE
-lcol: FL_RIGHT_BCOL
-label: RX 2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rx2_lbl
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 20 170 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: N0/SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: noise1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 330 170 300 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: N0/SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: noise2_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 10 325 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 11
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch11_sec0_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 145 325 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 12
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch12_sec0_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 10 455 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 21
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch21_sec0_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 145 455 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 22
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch22_sec0_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 290 325 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 11
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch11_sec1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 430 325 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 12
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch12_sec1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 290 455 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 21
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch21_sec1_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 430 455 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 22
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch22_sec1_xyp
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 680 15 40 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: error
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: error_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 640 65 60 30
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: gps
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: gps_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 655 120 170 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: date:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: date_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 700 65 150 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: lat: 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: gps_lat_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 700 95 150 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: lon: 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: gps_lon_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 685 150 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Idx:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: idx_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 485 610 140 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKCYAN FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 130 620 100 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_MEDIUM_SIZE
-lcol: FL_BLACK
-label: PWR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: power_btn
-callback: power_callback
-argument: 0
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 760 15 90 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: Buffer: 100%
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: buffer_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 655 175 170 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Refresh interval: 1s
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: refresh_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 860 90 140 220
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKER_COL1 FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_DIAL
-type: NORMAL_DIAL
-box: 890 110 80 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: screen refresh rate
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: refresh_dial
-callback: refresh_callback
-argument: 0
-return: FL_RETURN_CHANGED
- bounds: 0 5
- angles: 45 315
- value: 1
- step: 1
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 860 528 137 72
-boxtype: FL_ROUNDED_BOX
-colors: FL_INDIANRED FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 200 180 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: BLER:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: bler_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 225 180 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: Rec'd frms:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: n_recd_frames_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 25 570 810 30
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: msg_text
-callback:
-argument:
-
---------------------
-class: FL_PIXMAPBUTTON
-type: NORMAL_BUTTON
-box: 860 5 140 70
-boxtype: FL_ROUNDED_BOX
-colors: FL_WHITE FL_YELLOW
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
- file: Eurecom_Logo.xpm
- fullpath: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 35 10 80 40
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_HUGE_SIZE
-lcol: FL_RIGHT_BCOL
-label: RX 1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rx1_lbl
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 505 655 100 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: 2: ALAMOUTI
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: alamouti_btn
-callback: rx_mode_button_callback
-argument: 2
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 505 675 100 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: 6: PRECODING
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: precoding_btn
-callback: rx_mode_button_callback
-argument: 6
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 665 40 70 20
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: cbmimo
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: cbmimo_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 640 95 60 30
-boxtype: FL_ROUNDED_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: NO
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: fix_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 800 610 200 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_INDIANRED FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 820 620 160 70
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: Record
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rec_btn
-callback: record_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 20 660 90 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_TOMATO FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: exit
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: exit_btn
-callback: exit_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 20 620 90 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: config
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: config_btn
-callback: config_btn_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 870 180 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: +
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: refresh_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 950 180 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: -
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: refresh_callback
-argument: -1
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 870 235 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: time
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: time_domain_btn
-callback: time_freq_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 930 235 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: freq
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: freq_domain_btn
-callback: time_freq_callback
-argument: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 875 215 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_DARKER_COL1 FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: channel display
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TIMER
-type: HIDDEN_TIMER
-box: 810 720 10 10
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_RED
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: timer
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: refresh_timer
-callback: refresh_timer_callback
-argument: 0
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 875 260 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_DARKER_COL1 FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: N0/SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 870 280 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: N0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: n0_btn
-callback: noise_snr_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 930 280 60 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: SNR
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: snr_btn
-callback: noise_snr_callback
-argument: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 250 180 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_TOP_BCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_RIGHT_BCOL
-label: RX mode:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rx_mode_lbl
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 505 635 100 20
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: 1: SISO
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: siso_btn
-callback: rx_mode_button_callback
-argument: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 505 615 100 20
-boxtype: FL_NO_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: TX mode
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 570 325 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 11
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch11_sec2_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 710 325 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 12
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch12_sec2_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 570 455 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 21
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch21_sec2_xyp
-callback:
-argument:
-
---------------------
-class: FL_XYPLOT
-type: NORMAL_XYPLOT
-box: 710 455 140 110
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_RIGHT_BCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_RIGHT_BCOL
-label: CH 22
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ch22_sec2_xyp
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 85 285 140 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLACK
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_MEDIUM_SIZE
-lcol: FL_RIGHT_BCOL
-label: Sector 0
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: sec0_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 380 285 140 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLACK
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_MEDIUM_SIZE
-lcol: FL_RIGHT_BCOL
-label: Sector 1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: sec1_lbl
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 285 140 20
-boxtype: FL_FLAT_BOX
-colors: FL_BLACK FL_BLACK
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_MEDIUM_SIZE
-lcol: FL_RIGHT_BCOL
-label: Sector 2
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: sec2_lbl
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 250 610 130 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_PALEGREEN FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 265 650 40 40
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: eNb
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_btn1
-callback: terminal_button_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: PUSH_BUTTON
-box: 320 650 40 40
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: UE
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: terminal_btn3
-callback: terminal_button_callback
-argument: 3
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 260 620 110 20
-boxtype: FL_FLAT_BOX
-colors: FL_PALEGREEN FL_MCOL
-alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: terminal type
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 630 610 160 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_WHEAT FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 645 660 90 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: Checkpoint
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: checkpoint_callback
-argument: 0
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 740 620 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: +
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: checkpoint_callback
-argument: 1
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 740 660 40 30
-boxtype: FL_ROUNDED3D_UPBOX
-colors: FL_LIGHTER_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_BOLD_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: -
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback: checkpoint_callback
-argument: -1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 650 625 90 20
-boxtype: FL_FLAT_BOX
-colors: FL_WHEAT FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Next CP: 1
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: next_cp
-callback:
-argument:
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 860 320 142 199
-boxtype: FL_ROUNDED_BOX
-colors: FL_PALEGREEN FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 925 340 60 20
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: RF gain
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rf_gain_txt
-callback: input_callback
-argument: 0
-return: FL_RETURN_END_CHANGED
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 925 374 60 20
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: digital gain
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: digital_gain_txt
-callback: input_callback
-argument: 0
-return: FL_RETURN_END_CHANGED
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 925 409 60 20
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: RF mode
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: rf_mode_txt
-callback: input_callback
-argument: 0
-return: FL_RETURN_END_CHANGED
-
---------------------
-class: FL_BOX
-type: ROUNDED_BOX
-box: 390 610 90 90
-boxtype: FL_ROUNDED_BOX
-colors: FL_DARKCYAN FL_COL1
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_LIGHTBUTTON
-type: PUSH_BUTTON
-box: 405 645 60 40
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_YELLOW
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: LA
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: la_btn
-callback: link_adpt_callback
-argument: 0
- value: 1
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 400 620 70 20
-boxtype: FL_FLAT_BOX
-colors: FL_DARKCYAN FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: link adpt.
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 880 569 100 20
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_TOP
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: label_input
-callback: label_callback
-argument: 0
-return: FL_RETURN_END_CHANGED
-
---------------------
-class: FL_CHECKBUTTON
-type: PUSH_BUTTON
-box: 877 539 60 30
-boxtype: FL_NO_BOX
-colors: FL_COL1 FL_YELLOW
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: manual label
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: label_button
-callback: label_btn_callback
-argument: 0
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 925 444 60 20
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: frequency
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: freq_txt
-callback: input_callback
-argument: 0
-return: FL_RETURN_END_CHANGED
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 925 479 60 20
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_TINY_SIZE
-lcol: FL_BLACK
-label: TCXO
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: tcxo_txt
-callback: input_callback
-argument: 0
-return: FL_RETURN_END_CHANGED
-
-=============== FORM ===============
-Name: splash_frm
-Width: 390
-Height: 280
-Number of Objects: 3
-
---------------------
-class: FL_BOX
-type: FLAT_BOX
-box: 0 0 390 280
-boxtype: FL_FLAT_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_PIXMAP
-type: NORMAL_PIXMAP
-box: 40 20 310 100
-boxtype: FL_NO_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_BOTTOM
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_TEXT
-type: NORMAL_TEXT
-box: 70 150 80 30
-boxtype: FL_FLAT_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: text
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
-=============== FORM ===============
-Name: config_dialog
-Width: 410
-Height: 120
-Number of Objects: 4
-
---------------------
-class: FL_BOX
-type: UP_BOX
-box: 0 0 410 120
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label:
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name:
-callback:
-argument:
-
---------------------
-class: FL_BUTTON
-type: NORMAL_BUTTON
-box: 80 75 100 30
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Cancel
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: cancel_btn
-callback: get_dir_callback
-argument: -1
-
---------------------
-class: FL_BUTTON
-type: RETURN_BUTTON
-box: 225 75 100 30
-boxtype: FL_UP_BOX
-colors: FL_COL1 FL_COL1
-alignment: FL_ALIGN_CENTER
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: OK
-shortcut: ^M
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: ok_btn
-callback: get_dir_callback
-argument: 0
-
---------------------
-class: FL_INPUT
-type: NORMAL_INPUT
-box: 80 30 300 30
-boxtype: FL_DOWN_BOX
-colors: FL_COL1 FL_MCOL
-alignment: FL_ALIGN_LEFT
-style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
-lcol: FL_BLACK
-label: Directory
-shortcut:
-resize: FL_RESIZE_ALL
-gravity: FL_NoGravity FL_NoGravity
-name: dir_input
-callback:
-argument:
-return: FL_RETURN_END_CHANGED
-
-==============================
-create_the_forms
diff --git a/openair1/EMOS/LTE/GUI/emos_gui_forms.h b/openair1/EMOS/LTE/GUI/emos_gui_forms.h
deleted file mode 100644
index 0d6738b7fc..0000000000
--- a/openair1/EMOS/LTE/GUI/emos_gui_forms.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/* Header file generated by fdesign on Thu Jun 3 18:41:21 2010 */
-
-#ifndef FD_main_frm_h_
-#define FD_main_frm_h_
-
-#include
-
-/* Callbacks, globals and object handlers */
-
-extern void power_callback( FL_OBJECT *, long );
-extern void refresh_callback( FL_OBJECT *, long );
-extern void rx_mode_button_callback( FL_OBJECT *, long );
-extern void record_callback( FL_OBJECT *, long );
-extern void exit_callback( FL_OBJECT *, long );
-extern void config_btn_callback( FL_OBJECT *, long );
-extern void time_freq_callback( FL_OBJECT *, long );
-extern void refresh_timer_callback( FL_OBJECT *, long );
-extern void noise_snr_callback( FL_OBJECT *, long );
-extern void terminal_button_callback( FL_OBJECT *, long );
-extern void checkpoint_callback( FL_OBJECT *, long );
-extern void input_callback( FL_OBJECT *, long );
-extern void link_adpt_callback( FL_OBJECT *, long );
-extern void label_callback( FL_OBJECT *, long );
-extern void label_btn_callback( FL_OBJECT *, long );
-
-
-extern void get_dir_callback( FL_OBJECT *, long );
-
-
-/* Forms and Objects */
-
-typedef struct {
- FL_FORM * main_frm;
- void * vdata;
- char * cdata;
- long ldata;
- FL_OBJECT * sync_lbl;
- FL_OBJECT * rec_lbl;
- FL_OBJECT * pwr1_xyp;
- FL_OBJECT * pwr2_xyp;
- FL_OBJECT * rx2_lbl;
- FL_OBJECT * noise1_xyp;
- FL_OBJECT * noise2_xyp;
- FL_OBJECT * ch11_sec0_xyp;
- FL_OBJECT * ch12_sec0_xyp;
- FL_OBJECT * ch21_sec0_xyp;
- FL_OBJECT * ch22_sec0_xyp;
- FL_OBJECT * ch11_sec1_xyp;
- FL_OBJECT * ch12_sec1_xyp;
- FL_OBJECT * ch21_sec1_xyp;
- FL_OBJECT * ch22_sec1_xyp;
- FL_OBJECT * error_lbl;
- FL_OBJECT * gps_lbl;
- FL_OBJECT * date_lbl;
- FL_OBJECT * gps_lat_lbl;
- FL_OBJECT * gps_lon_lbl;
- FL_OBJECT * idx_lbl;
- FL_OBJECT * power_btn;
- FL_OBJECT * buffer_lbl;
- FL_OBJECT * refresh_lbl;
- FL_OBJECT * refresh_dial;
- FL_OBJECT * bler_lbl;
- FL_OBJECT * n_recd_frames_lbl;
- FL_OBJECT * msg_text;
- FL_OBJECT * rx1_lbl;
- FL_OBJECT * alamouti_btn;
- FL_OBJECT * precoding_btn;
- FL_OBJECT * cbmimo_lbl;
- FL_OBJECT * fix_lbl;
- FL_OBJECT * rec_btn;
- FL_OBJECT * exit_btn;
- FL_OBJECT * config_btn;
- FL_OBJECT * time_domain_btn;
- FL_OBJECT * freq_domain_btn;
- FL_OBJECT * refresh_timer;
- FL_OBJECT * n0_btn;
- FL_OBJECT * snr_btn;
- FL_OBJECT * rx_mode_lbl;
- FL_OBJECT * siso_btn;
- FL_OBJECT * ch11_sec2_xyp;
- FL_OBJECT * ch12_sec2_xyp;
- FL_OBJECT * ch21_sec2_xyp;
- FL_OBJECT * ch22_sec2_xyp;
- FL_OBJECT * sec0_lbl;
- FL_OBJECT * sec1_lbl;
- FL_OBJECT * sec2_lbl;
- FL_OBJECT * terminal_btn1;
- FL_OBJECT * terminal_btn3;
- FL_OBJECT * next_cp;
- FL_OBJECT * rf_gain_txt;
- FL_OBJECT * digital_gain_txt;
- FL_OBJECT * rf_mode_txt;
- FL_OBJECT * la_btn;
- FL_OBJECT * label_input;
- FL_OBJECT * label_button;
- FL_OBJECT * freq_txt;
- FL_OBJECT * tcxo_txt;
-} FD_main_frm;
-
-extern FD_main_frm * create_form_main_frm( void );
-typedef struct {
- FL_FORM * splash_frm;
- void * vdata;
- char * cdata;
- long ldata;
-} FD_splash_frm;
-
-extern FD_splash_frm * create_form_splash_frm( void );
-typedef struct {
- FL_FORM * config_dialog;
- void * vdata;
- char * cdata;
- long ldata;
- FL_OBJECT * cancel_btn;
- FL_OBJECT * ok_btn;
- FL_OBJECT * dir_input;
-} FD_config_dialog;
-
-extern FD_config_dialog * create_form_config_dialog( void );
-
-#endif /* FD_main_frm_h_ */
diff --git a/openair1/EMOS/LTE/GUI/matrix_util.c b/openair1/EMOS/LTE/GUI/matrix_util.c
deleted file mode 100644
index cb1697da01..0000000000
--- a/openair1/EMOS/LTE/GUI/matrix_util.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-// Matrix Utilities for Capacity Calculations
-// by Florian Kaltenberger
-// Created 10.10.2007
-
-# include "matrix_util.h"
-#include
-#include
-
-// This function calculates HxH^H for a complex matrix H
-// HH must be a pre-allocated matrix of size rows x rows
-// The function returns NULL on error and a pointer to the
-// calculated matrix otherwise
-struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH)
-{
- int r,r2,c;
-
- if (H==NULL || HH==NULL || rows == 0 || cols == 0)
- return NULL;
-
- for (r=0; r.
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-// Matrix Utilities for Capacity Calculations
-// by Florian Kaltenberger
-// Created 10.10.2007
-
-# include "PHY/TOOLS/defs.h"
-
-struct complexf **square_mat(struct complexf **H, int rows, int cols, struct complexf **HH);
-
-struct complexf **addI_scale_mat(struct complexf **H, int rows, float scale);
-
-float det(struct complexf **H);
-
-float norm_fro_sq(struct complexf**H, int rows, int cols);
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/COPYING b/openair1/EMOS/LTE/IMPORT_FILTER/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/Makefile b/openair1/EMOS/LTE/IMPORT_FILTER/Makefile
deleted file mode 100644
index a2d3a5c6cb..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include $(OPENAIR_HOME)/common/utils/Makefile.inc
-SRC = dump_size.c
-
-#CFLAGS = $(shell rtai-config --lxrt-cflags)
-#LDFLAGS = $(shell rtai-config --lxrt-ldflags) -lpthread -lm -lgps -lforms #-llxrt
-
-CFLAGS += -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES -I$(OPENAIR_HOME)/common/utils -I$(OPENAIR2_DIR) -I$(OPENAIR2_DIR)/COMMON
-
-CFLAGS += -DPHYSIM -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1
-
-CFLAGS += -DOPENAIR_LTE -DENABLE_FXP -DOPENAIR1 #-DDLSCH_THREAD -DULSCH_THREAD
-
-CFLAGS += -DEMOS -DEXMIMO -DNO_RTAI
-
-ifeq ($(EMOS_CHANNEL),1)
-CFLAGS += -DEMOS_CHANNEL
-endif
-
-all: dump_size cstruct
-
-$(OBJ): %.o : %.c
- @echo Compiling $< ...
- @$(CC) -c $(CFLAGS) -o $@ $<
-
-cstruct: cstruct.c MatlabCStruct.c
- mkoctfile --mex cstruct.c MatlabCStruct.c
-
-dump_size: dump_size.c
- $(CC) $(CFLAGS) $(LDFLAGS) dump_size.c -o dump_size
-
-cleanall:
- rm -rf dump_size cstruct.oct cstruct.mex
-
-clean:
- rm -rf dump_size
-
-show:
- @echo $(CFLAGS)
-
-beautiful:
- astyle --style=gnu -s2 $(SRC)
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c b/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c
deleted file mode 100644
index 7ec96b5cf0..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.c
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-//--------------------------------------------------------------
-// file: MatlabCStruct.c - Computes the amount of storages that
-// would be required to represent a Matlab array in a C lngusage
-// struture. It also moves data between C structures and Matlab
-// arrays.
-// This is particularly usful when reading/writing data from a
-// byte stream, such as a file or socket interface, which contains
-// formatted data, but needs to be re-represented in a Matlab array
-// from its raw binary layout, or vice versa.
-// 05/24/2004 jaj Replaced __int64 with INT64_T for portability
-//--------------------------------------------------------------
-#include
-#include
-
-#include
-#include "MatlabCStruct.h"
-
-int MatlabCStruct_DebugFlag = 0;
-
-#ifndef MAX
-#define MAX(a,b) ((a)>=(b)?(a):(b))
-#define MIN(a,b) ((a)<=(b)?(a):(b))
-#endif
-
-//--------------------------------------------------------------
-// ClassIDText() - Simply return the name of the class
-//--------------------------------------------------------------
-char *ClassIDText(const mxArray *pArray)
-{
- switch(mxGetClassID(pArray)) {
- case mxUNKNOWN_CLASS :
- return "UNKNOWN";
-
- case mxCELL_CLASS :
- return "CELL";
-
- case mxFUNCTION_CLASS:
- return "FUNCTION";
-
- //case mxOBJECT_CLASS : return "OBJECT";
- case mxSTRUCT_CLASS :
- return "STRUCT";
-
- case mxCHAR_CLASS :
- return "CHAR";
-
- case mxLOGICAL_CLASS :
- return "LOGICAL";
-
- case mxDOUBLE_CLASS :
- return "DOUBLE";
-
- case mxSINGLE_CLASS :
- return "SINGLE";
-
- case mxINT8_CLASS :
- return "INT8";
-
- case mxUINT8_CLASS :
- return "UINT8";
-
- case mxINT16_CLASS :
- return "INT16";
-
- case mxUINT16_CLASS :
- return "UINT16";
-
- case mxINT32_CLASS :
- return "INT32";
-
- case mxUINT32_CLASS :
- return "UINT32";
-
- case mxINT64_CLASS :
- return "INT64";
-
- default:
- return "INVALID";
- }
-} // end ClassIDText()
-
-//--------------------------------------------------------------
-// SwapBytes() - size must be even.
-//--------------------------------------------------------------
-void SwapBytes(char *p0, int size, int count)
-{
- char t; // Temporory register for byte swaps
- int inc0 = size/2; // pointer increments
- int inc1 = size+inc0;
- char *p1 = p0+(size-1);
-
- while (count-- > 0) {
- while (p1>p0) {
- t = *p0;
- *p0 = *p1;
- p0++;
- *p1 = t;
- p1--;
- }
-
- p0 += inc0;
- p1 += inc1;
- }
-}
-#define SWAP(x) SwapBytes(&(x), sizeof(x))
-
-//--------------------------------------------------------------
-// funciton: MatlabCStruct() - Traverse the structure tree
-// to determine the storage requirements when converted to a
-// C structure.
-// INPUTS:
-// pArray - Pointer to Matlab array to be analyzed
-// MemoryAlignment - 1, 2, 4, or 8, indicating desired (maximum) element
-// alignment in the C structure.
-// NestLevel - For recursing strucutres containing structures.
-// pDataDest - NULL, or a pointer to the beginning of a C structure/
-// memory area to which to move Matlab array data.
-// pDataSource - NULL, or a pointer to the beginning of a C structure/
-// memory area from which to move Matlab array data.
-// RETURNS:
-// ELEMENT_ATTRIBUTES structure, containing information about the
-// Matlab array being analyzed.
-// NOTES:
-// Call with both pDataDest and pDataSource equal to NULL to simply
-// determine how much C storage is required for a given Matlab
-// array. That amount can then be allocated, or compared to
-// expected.
-//--------------------------------------------------------------
-ELEMENT_ATTRIBUTES MatlabCStruct(const mxArray *pArray, int MemoryAlignment, int NestLevel,
- unsigned char *pDataDest, unsigned char *pDataSource, int SwapFlag)
-{
-#define SPACES {int k;for (k=0; k 0) {
- int Padding;
- Padding = CellAttributes.Alignment - (Attributes.StorageSize % CellAttributes.Alignment);
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [%d bytes of padding]\n", Attributes.StorageSize, Padding);
- }
-
- Attributes.StorageSize += Padding;
- }
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [cell %d of %d]: %dx%d bytes of %s data\n", Attributes.StorageSize, i, nElem, CellAttributes.StorageSize, CellAttributes.ElementCount, ClassIDText(pCell));
- }
-
- if (pDataDest)
- if ((long)pDataDest == -1)
- CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, pDataDest, NULL, SwapFlag);
- else
- CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, pDataDest+Attributes.StorageSize, NULL, SwapFlag);
-
- if (pDataSource)
- if ((long)pDataSource == -1)
- CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, NULL, pDataSource, SwapFlag);
- else
- CellAttributes = MatlabCStruct(pCell, MemoryAlignment, NestLevel+1, NULL, pDataSource+Attributes.StorageSize, SwapFlag);
-
- Attributes.StorageSize += CellAttributes.StorageSize * CellAttributes.ElementCount;
- Attributes.Alignment = MAX(Attributes.Alignment, CellAttributes.Alignment);
- }
-
- // See if padding needs to be added at the end of the structure
- if (Attributes.StorageSize % Attributes.Alignment > 0) {
- int Padding;
- Padding = Attributes.Alignment - (Attributes.StorageSize % Attributes.Alignment);
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [%d bytes of padding]\n", Attributes.StorageSize, Padding);
- }
-
- Attributes.StorageSize += Padding;
- }
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [end of cell array]\n", Attributes.StorageSize);
- }
-
- // 08/14/03 jaj Make the element count 1 for cell arrays
- Attributes.ElementCount = 1;
-
- } // end array is Cell array
-
-
- else if (mxIsChar(pArray)) {
- mxChar *pChar;
- Attributes.StorageSize = sizeof(char); // special case
- Attributes.Alignment = MIN(Attributes.StorageSize, MemoryAlignment);
-
- if (pDataDest && (long)pDataDest != -1) {
- pChar = (mxChar *)mxGetData(pArray);
-
- for (i=0; i 1 && MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [index %d of %d]\n", Attributes.StorageSize, j, nElem);
- NestLevel++;
- }
-
-
- for (i=0; i 0) {
- int Padding;
- Padding = FieldAttributes.Alignment - (LocalAttributes.StorageSize % FieldAttributes.Alignment);
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [%d bytes of padding]\n", LocalAttributes.StorageSize, Padding);
- }
-
- LocalAttributes.StorageSize += Padding;
- }
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [%s] %dx%d bytes of %s data\n", LocalAttributes.StorageSize, FieldName, FieldAttributes.StorageSize, FieldAttributes.ElementCount, ClassIDText(pField));
- }
-
- if (pDataDest) {
- if ((long)pDataDest == -1)
- FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, pDataDest, NULL, SwapFlag);
- else
- FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, pDataDest+LocalAttributes.StorageSize+Attributes.StorageSize, NULL, SwapFlag);
- }
-
- if (pDataSource) {
- if ((long)pDataSource == -1)
- FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, NULL, pDataSource, SwapFlag);
- else
- FieldAttributes = MatlabCStruct(pField, MemoryAlignment, NestLevel+1, NULL, pDataSource+LocalAttributes.StorageSize+Attributes.StorageSize, SwapFlag);
- }
-
- LocalAttributes.StorageSize += FieldAttributes.StorageSize * FieldAttributes.ElementCount;
- LocalAttributes.Alignment = MAX(LocalAttributes.Alignment, FieldAttributes.Alignment);
- LocalAttributes.ElementCount = 1;
- }
-
- // See if padding needs to be added at the end of the structure
- if (LocalAttributes.StorageSize % LocalAttributes.Alignment > 0) {
- int Padding;
- Padding = LocalAttributes.Alignment - (LocalAttributes.StorageSize % LocalAttributes.Alignment);
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [%d bytes of padding]\n", LocalAttributes.StorageSize, Padding);
- }
-
- LocalAttributes.StorageSize += Padding;
- }
-
- Attributes.StorageSize += LocalAttributes.StorageSize * LocalAttributes.ElementCount;
- Attributes.Alignment = MAX(Attributes.Alignment, LocalAttributes.Alignment);
-
- if (nElem > 1 && MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- NestLevel--;
- }
- } // end for(j)
-
- // See if padding needs to be added at the end of the structure
- if (Attributes.StorageSize % Attributes.Alignment > 0) {
- int Padding;
- Padding = Attributes.Alignment - (Attributes.StorageSize % Attributes.Alignment);
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [%d bytes of padding]\n", Attributes.StorageSize, Padding);
- }
-
- Attributes.StorageSize += Padding;
- }
-
- if (MatlabCStruct_DebugFlag && (pDataDest || pDataSource)) {
- SPACES printf("%3d: [end of structure]\n", Attributes.StorageSize);
- }
-
- // 08/14/03 jaj Make the element count 1 for structure arrays
- Attributes.ElementCount = 1;
-
- } // end array is Structure
-
-
- else {
- // Array is any of the basic, non-aggregate types, except mxChar
- // Handle byte-swapping on Windows WIN32 platform
-
- Attributes.StorageSize = Attributes.ElementSize;
- Attributes.Alignment = MIN(Attributes.StorageSize, MemoryAlignment);
-
- if (pDataDest && (long)pDataDest != -1) {
- memcpy(pDataDest, mxGetData(pArray), Attributes.ElementSize * Attributes.ElementCount);
-
- if (SwapFlag)
- SwapBytes((char *)pDataDest, Attributes.ElementSize, Attributes.ElementCount);
- }
-
- if (pDataSource && (long)pDataSource != -1) {
- if (SwapFlag)
- SwapBytes((char *)pDataSource, Attributes.ElementSize, Attributes.ElementCount);
-
- memcpy(mxGetData(pArray), pDataSource, Attributes.ElementSize * Attributes.ElementCount);
-
- // and un-swap
- if (SwapFlag)
- SwapBytes((char *)pDataSource, Attributes.ElementSize, Attributes.ElementCount);
- }
- } // end basic type (except mxChar)
-
-
- return Attributes;
-} // end MatlabCStruct()
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h b/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h
deleted file mode 100644
index a0b5551854..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/MatlabCStruct.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-//--------------------------------------------------------------
-// file: MatlabCStruct.h - Include file for MatlabCStruct.c
-//--------------------------------------------------------------
-
-//--------------------------------------------------------------
-// ELEMENT_ATTRIBUTES
-//--------------------------------------------------------------
-typedef struct {
- int ElementSize; // Number of bytes required for storage of a single element in a Matlab array
- int ElementCount; // Number of elements in array
- int StorageSize; // Number of bytes required for storage of a single element in a C Structure
- int Alignment; // 1, 2, 4, or 8 denoting required byte alignment for this structure.
-} ELEMENT_ATTRIBUTES;
-
-extern int MatlabCStruct_DebugFlag;
-
-// Function prototypes
-ELEMENT_ATTRIBUTES MatlabCStruct(const mxArray *pArray, int MemoryAlignment, int NestLevel,
- unsigned char *pDataDest, unsigned char *pDataSource,
- int SwapFlag);
-char *ClassIDText(const mxArray *pArray);
-void SwapBytes(char *p0, int size, int count);
-#define SWAP(x) SwapBytes(&(x), sizeof(x))
-
-
-
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/binread.m b/openair1/EMOS/LTE/IMPORT_FILTER/binread.m
deleted file mode 100644
index 4d4b63f100..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/binread.m
+++ /dev/null
@@ -1,53 +0,0 @@
-function s=binread(fid,fmt,count,varargin)
-% BINREAD - Read formatted binary data from a file
-% S=BINREAD(FID,TEMPLATE) reads binary data from an open file handle and
-% formats it according to TEMPLATE. TEMPLATE is typically a structure, but
-% it may be any data or aggregate type. Refer to CSTRUCT for more details
-% on formatting.
-%
-% S=BINREAD(...,COUNT) reads sucessive records from the file. If COUNT is
-% INF, then all data possible is read from the file. If omitted, or empty,
-% only one data record will be read.
-%
-% S=BINREAD(...,COUNT,OPTS) passes the OPTS along to the call to CSTRUCT
-% which allows the byte alignment or order to be changed from default.
-%
-% Example: (modeled from C structures)
-% header_template = struct('DataType',uint32(0),'DataCount',uint32(0));
-% data_template = struct('SampleTime',double(0),'Data',int16(zeros(1,16)));
-% fid = fopen('myfile.bin','rb');
-% header = binread(fid,header_template);
-% data = binread(fid,data_template,double(header.DataCount));
-%
-% See also BINREAD, FOPEN, CSTRUCT
-
-% 11/14/2003 fixed OBOB thanks to Olaf Bousche
-
-if nargin < 3
- count = 1;
-end
-
-attrib = cstruct(fmt,[],varargin{:});
-if isinf(count)
- s=cell(0,0);
-else
- s = cell(count,1); % Preallocate cell structure
-end
-i=1;
-while i <= count % 11/14/2003 '<' changed to '<='
- b = uint8(fread(fid,attrib.size,'uint8'));
- if length(b) < attrib.size
- if length(b) > 0
- warning('partial data record at end of file');
- end
- s(i:end) = []; % Out of data, remove extraneous elements
- break;
- end
- s{i} = cstruct(fmt,b,varargin{:});
- i = i+1;
-end
-
-try
- % Try de-celling the data, if possible
- s = [s{:}];
-end
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m b/openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m
deleted file mode 100644
index cd24d733d1..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/binwrite.m
+++ /dev/null
@@ -1,25 +0,0 @@
-function n=binwrite(fid,data,varargin)
-%BINWRITE - Write data to a formatted binary file
-% BINWRITE(FID,DATA) writes data to an open file handle in a binary
-% format, according to the structure of DATA, and returns the number of
-% bytes written to the file. DATA is typically a structure, but it may
-% be any data or aggregate type. Refer to CSTRUCT for more details on
-% formatting.
-%
-% S=BINWRITE(...,,OPTS) passes the OPTS along to the call to CSTRUCT
-% which allows the byte alignment or order to be changed from default.
-%
-% Example: (modeled from C structures)
-% data(1) = struct('SampleTime',double(8),'Data',int16(1:16));
-% data(2) = struct('SampleTime',double(9),'Data',int16(101:116));
-% data(3) = struct('SampleTime',double(10),'Data',int16(201:216));
-% header = struct('DataType',uint32(1),'DataCount',uint32(length(data)));
-% fid = fopen('myfile.bin','wb');
-% binwrite(fid,header);
-% binwrite(fid,data);
-% fclose(fid);
-%
-% See also BINREAD, FOPEN, CSTRUCT
-[attrib,bytes] = cstruct(data);
-n = fwrite(fid,bytes,'uint8');
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c
deleted file mode 100644
index bd502b307f..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-//--------------------------------------------------------------
-// file: cstruct.c - Analyze a Matlab array, to determine how it
-// would fit into C structure.
-// 05/25/2004 jaj Removed include; stricter type
-// type compatibility when calling mxCreateStructMatrix();
-//--------------------------------------------------------------
-#include "mex.h"
-#include
-//#include jaj 05/25/2004 removed
-
-#include "MatlabCStruct.h"
-
-// TODO: Add you supporting functions here
-
-
-//--------------------------------------------------------------
-// function: mexFunction - Entry point from Matlab environment
-// INPUTS:
-// nlhs - number of left hand side arguments (outputs)
-// plhs[] - pointer to table where created matrix pointers are
-// to be placed
-// nrhs - number of right hand side arguments (inputs)
-// prhs[] - pointer to table of input matrices
-//--------------------------------------------------------------
-void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )
-{
- ELEMENT_ATTRIBUTES Attributes;
- int ByteCount; // Total number of bytes required for C structure
- int Alignment = 8;
- int SwapFlag; // Byte Swapping Flag
- int LittleEndian = 0; // 0/1=local machine is big/litle Endian
- int ii;
-
- // Determine local byte ordering
- {
- unsigned char pattern[2] = {0x12, 0x34};
- unsigned short word1 = 0x1234;
- unsigned short word2 = *(unsigned short *)&pattern;
- LittleEndian = (word1 == word2) ? 0 : 1;
- }
- SwapFlag = LittleEndian; // Default = assume data is big endian
-
- if (nlhs == 0)
- MatlabCStruct_DebugFlag = 1;
- else
- MatlabCStruct_DebugFlag = 0;
-
- if (nrhs < 1)
- mexErrMsgTxt("Not enough input arguments.");
-
- if (nrhs >= 3) {
- for (ii=2; ii= 2 && !mxIsEmpty(prhs[1])) {
- mxClassID ClassID;
- ClassID = mxGetClassID(prhs[1]);
-
- if (ClassID != mxUINT8_CLASS && ClassID != mxINT8_CLASS)
- mexErrMsgTxt("Byte data vector must be of type INT8 or UINT8");
-
- if (ByteCount != mxGetNumberOfElements(prhs[1])) {
- char msg[100];
- sprintf(msg, "Number of elements in Byte data vector (%d) does not match structure size (%d)",
- mxGetNumberOfElements(prhs[1]), ByteCount);
- mexErrMsgTxt(msg);
- }
-
- plhs[0] = mxDuplicateArray(prhs[0]);
- MatlabCStruct(plhs[0], Alignment, 0, NULL, mxGetData(prhs[1]), SwapFlag);
- } else
- // Create output structure for Attributes
- {
- const char *FieldNames[] = {"size","align"}; // jaj 05/24/2004 added const
- plhs[0] = mxCreateStructMatrix(1, 1, 2, &FieldNames[0]);// jaj 05/24/2004 slightly altered
- mxSetField(plhs[0], 0, "size", mxCreateDoubleScalar(ByteCount));
- mxSetField(plhs[0], 0, "align", mxCreateDoubleScalar(Attributes.Alignment));
-
- if (nlhs >= 2) {
- // Extract C Data from array
- plhs[1] = mxCreateNumericMatrix(1, ByteCount, mxUINT8_CLASS, mxREAL);
- MatlabCStruct(prhs[0], Alignment, 0, mxGetData(plhs[1]), NULL, SwapFlag);
- }
- }
-
-} // end mexFunction()
-
-
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll
deleted file mode 100644
index c4a72ad1b2..0000000000
Binary files a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.dll and /dev/null differ
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.m b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.m
deleted file mode 100644
index d56b4c0445..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.m
+++ /dev/null
@@ -1,48 +0,0 @@
-%CSTRUCT Analyze a Matlab array to be packed into a C structure
-% ATTRIB = CSTRUCT(FORMAT) analyzes a Matlab array, to determine how many
-% bytes required to pack the data into a C language structure, and its
-% byte alignment. FORMAT is any numerical or aggregate (CELL or STRUCT)
-% data type. ATTRIB is a structure containing fields SIZE, which
-% determines how many bytes are required to store data organized lie
-% FORMAT, and ALIGN which is the data's byte alignment.
-%
-% DATA = CSTRUCT(FORMAT,BYTES) - packs the INT8 or UINT8 type values in
-% BYTES, organizes them according to FORMAT, and returns the bytes as
-% DATA.
-%
-% [ATTRIB,BYTES] = CSTRUCT(DATA) allows conversion of a Matlab structure
-% to a UINT8 vector BYTES as would be stored by a C structure.
-%
-% ATTRIB = CSTRUCT(FORMAT,[],...) and
-% [ATTRIB,BYTES] = CSTRUCT(DATA,[],...) and
-% DATA = CSTRUCT(FORMAT,BYTES,...) allows options to be specified starting
-% at the third argument.
-%
-% [...] = CSTRUCT(...,ALIGNEMNT) allows the default byte
-% alignment of 8 to be changed to the specified value, typically 1, 2, 4,
-% 8, depending on how the C (or other) compiler organizes the data within
-% BYTES.
-%
-% [...] = CSTRUCT(...,BYTEORDER) allows the default byte order (big Endian)
-% of the binary data to be changed using one of the following characters:
-% 'n' - Native byte ordering (byte are not swapped, regarless of platform)
-% 'l' - Little Endian byte ordering
-% 'b' - Big Endian byte ordering
-% 'r' - Reverse byte ordering (bytes always swapped)
-%
-% CSTRUCT is particularly useful when reading or writing data to/from a
-% file or socket interface which contains data that was created in
-% another language, such as C. As an example, lets say the following C
-% structure as written to a file:
-% struct { long A; double B; char C[5]; };
-% Because double values are (typically) aligned on 8-byte boundaries,
-% padding gets added to the structure. The memory-byte representation
-% or BYTES would be (24 bytes):
-% A A A A x x x x B B B B B B B B C C C C C x x x
-% To convert this vector of bytes to a matlab structure, the following
-% would work:
-% DATA = CSTRUCT(struct('A',int32(0),'B',double(0),'C','xxxxx'},BYTES)
-% DATA would be STRUCT fields A, B and C with data types INT32, DOUBLE
-% and CHAR, respectively.
-%
-% See also BINREAD, BINWRITE, COMPUTER
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mex b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mex
deleted file mode 100755
index c24b326663..0000000000
Binary files a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mex and /dev/null differ
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexa64 b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexa64
deleted file mode 100755
index 1ea42265cf..0000000000
Binary files a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexa64 and /dev/null differ
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexglx b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexglx
deleted file mode 100755
index f8a1e90fc8..0000000000
Binary files a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexglx and /dev/null differ
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexw64 b/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexw64
deleted file mode 100644
index 6e7fae7903..0000000000
Binary files a/openair1/EMOS/LTE/IMPORT_FILTER/cstruct.mexw64 and /dev/null differ
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/dump_size.c b/openair1/EMOS/LTE/IMPORT_FILTER/dump_size.c
deleted file mode 100644
index e39e1a2987..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/dump_size.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include
-#include "SCHED/phy_procedures_emos.h"
-
-int main(void)
-{
- printf("MAX_CQI_BITS = %zu;\n",MAX_CQI_BITS);
- printf("PHY_measurements_size = %zu;\n",sizeof(PHY_MEASUREMENTS));
- printf("PHY_measurements_eNb_size = %zu;\n",sizeof(PHY_MEASUREMENTS_eNB));
- //printf("UCI_data_t_size = %zu;\n",sizeof(UCI_DATA_t));
- //printf("DCI_alloc_t_size = %zu;\n",sizeof(DCI_ALLOC_t));
- printf("eNb_UE_stats_size = %zu;\n",sizeof(LTE_eNB_UE_stats));
- printf("fifo_dump_emos_UE_size = %zu;\n",sizeof(fifo_dump_emos_UE));
- printf("fifo_dump_emos_eNb_size = %zu;\n",sizeof(fifo_dump_emos_eNB));
- printf("gps_fix_t_size = %zu;\n",sizeof(struct gps_fix_t));
- printf("align = %zu;\n",sizeof(void*));
- return(0);
-}
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/example.m b/openair1/EMOS/LTE/IMPORT_FILTER/example.m
deleted file mode 100644
index 4a882d00c9..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/example.m
+++ /dev/null
@@ -1,89 +0,0 @@
-clear all
-close all
-
-addpath('../IMPORT_FILTER');
-
-% [estimates_eNB,NFrames_eNB]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\eNB_data_20130327_163635.EMOS',inf,1,1);
-% [estimates_UE,NFrames_UE]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\UE_data_20130327_163721.EMOS',inf,1,0);
-
-[estimates_eNB,NFrames_eNB]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\eNB_data_20130328_114006.EMOS',inf,1,1);
-[estimates_UE,NFrames_UE]=load_estimates_lte_new('E:\EMOS\recip_exmimo2\UE_data_20130328_115128.EMOS',inf,1,0);
-
-%load eNB_estimates2
-%load UE_estimates2
-
-% use r3531 for measuremnts taken march 2013
-struct_template_new
-
-%%
-NFrames = 1000;
-decimation = 1;
-NFrames_eNB = size(estimates_eNB,2);
-NFrames_UE = size(estimates_UE,2);
-
-H_eNB = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_eNb.channel,1)/2,size(fifo_dump_emos_struct_eNb.channel,2)));
-H_UE = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_UE.channel,1)/2,size(fifo_dump_emos_struct_UE.channel,2),size(fifo_dump_emos_struct_UE.channel,3)));
-
-% find the indices to align the eNB and the UE data
-frames_eNB = [estimates_eNB.frame_tx]; %frame counter at eNB
-frames_UE = [estimates_UE.frame_rx]; %frame counter at UE
-%frame0 = frames_UE(3);
-%idx0_eNB = find(frames_eNB==frame0);
-%idx0_UE = find(frames_UE==frame0);
-idx0_eNB = 1;
-idx0_UE = 4354;
-
-%%
-for k=1:NFrames %-max(idx0_eNB,idx0_UE)
- %disp([frame0+k-1 frames_eNB(idx0_eNB+k-1) frames_UE(idx0_UE+k-1)]);
- H_eNB(k,:,:) = double(estimates_eNB(idx0_eNB+k-1).channel(1:2:end,:)) + 1j*double(estimates_eNB(idx0_eNB+k-1).channel(2:2:end,:));
- H_UE(k,:,:,:) = double(estimates_UE(idx0_UE+k-1).channel(1:2:end,:,:)) + 1j*double(estimates_UE(idx0_UE+k-1).channel(2:2:end,:,:));
-end
-
-% size(H_eNB) = [NFrames,N_RB_UL_EMOS*12*N_PILOTS_UL_EMOS*N_SUBFRAMES_UL_EMOS,NB_ANTENNAS_RX_EMOS]
-% where N_RB_UL_EMOS*12 = 25*12 = 300 is the number of usefull subcarriers
-% N_PILOTS_UL_EMOS = 2 is the number of OFDM symbols per subframe that have pilots
-% N_SUBFRAMES_UL_EMOS = 3 is the number of UL subframes per frame*
-
-% size(H_UE) =
-% [NFrames,NUMBER_OF_OFDM_CARRIERS_EMOS*N_PILOTS_DL_EMOS*N_SUBFRAMES_DL_EMOS,NB_ANTENNAS_TX_EMOS]
-% where NUMBER_OF_OFDM_CARRIERS_EMOS = 512 is the number of OFDM carrier
-% (out of which only the first 300 are non-zero)
-% N_PILOTS_DL_EMOS = 4 is the number of OFDM carriers that have pilots
-% (linear interpolation in the frequency domain has already been
-% performed)
-% N_SUBFRAMES_DL_EMOS = 5 is the number of DL subframes per frame*
-
-% NB_ANTENNAS_TX_EMOS = NB_ANTENNAS_RX =2 is the number of antennas at the eNB
-% (the UE has one antenna for TX/RX)
-
-% *here we are using TDD configuration 3 which looks like this (S = special subframe)
-% [DL | S | UL | UL | UL | DL | DL | DL | DL | DL]
-
-
-%%
-figure(1)
-hold off
-%plot(idx0_eNB:idx0_eNB+NFrames_eNB-1,[estimates_eNB.frame_tx]-1024*4)
-%hold on
-plot(idx0_UE:idx0_UE+NFrames_UE-1,[estimates_UE.frame_rx],'r')
-
-%%
-txant = 1;
-rxant = 1;
-frames = 201:210;
-
-%H_UE2 = reshape(permute(H_UE(frames,2049:2560,:),[2 1 3]),512,[],2);
-%H_UE2 = reshape(permute(H_UE(:,2561:3072,:),[2 1 3]),512,[],2);
-H_UE2 = reshape(permute(H_UE(:,1:512,:),[2 1 3]),512,NFrames,2,2);
-H_UE3 = complex(zeros(size(H_UE2)));
-H_UE3(363:512,:,:,:) = H_UE2(6:155,:,:,:);
-H_UE3(1:151,:,:,:) = H_UE2(156:306,:,:,:);
-H_UE_t = ifft(conj(H_UE3),512,1); %the channel estimates are stored in conjugated format
-H_UE_t = circshift(H_UE_t,[-15,0,0]); %shift the peak to the desired position
-figure(2)
-hold off
-%waterfall(squeeze(20*log10(abs(H_UE_t))).')
-plot(squeeze(20*log10(abs(H_UE_t(:,frames,txant,rxant)))))
-title('PDP DL channel')
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m b/openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m
deleted file mode 100644
index 75b1d2d5bd..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/get_dump_size.m
+++ /dev/null
@@ -1,3 +0,0 @@
-system(sprintf('make clean && make dump_size EMOS_CHANNEL=%d',EMOS_CHANNEL));
-[status,result] = system('./dump_size');
-eval(result);
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m b/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m
deleted file mode 100755
index 52e08c2220..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte.m
+++ /dev/null
@@ -1,158 +0,0 @@
-function [H, H_fq, estimates, gps_data, NFrames] = load_estimates_lte(filename, NFrames_max, decimation, is_eNb, version)
-%
-% EMOS Single User Import Filter
-%
-% [H, H_fq, estimates, gps_data, NFrames] =
-% load_estimates_lte(filename, NFrames_max, version)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% decimation - read every 'decimation' frame
-% is_eNb - if ~= 0 we load data from an eNb
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20100317 0.1 Created based on load_estimates
-
-if nargin < 5
- version = Inf;
-end
-if nargin < 4
- is_eNb = 0;
-end
-if nargin < 3
- decimation = 1;
-end
-if nargin < 2
- NFrames_max = Inf;
-end
-
-% NTx = 2;
-% NRx = 2;
-% NFreq = 512;
-% NZFreq = 300;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-
-if exist('../IMPORT_FILTER/a.out','file') && isunix
- [dummy,result] = system('../IMPORT_FILTER/a.out');
- eval(result);
-else
- warning('File dump_size.c has to be compiled to enable error checking of sizes');
- %PHY_measurements_size = 1120;
- %UCI_data_t_size = 49;
- %DCI_alloc_t_size = 16;
- %eNb_UE_stats_size = 20;
- %fifo_dump_emos_UE_size = 33492;
- %fifo_dump_emos_eNb_size = 36980;
- %gps_fix_t_size = 108;
-end
-
-struct_template;
-
-if (version < 1)
- fifo_dump_emos_struct_eNb = fifo_dump_emos_struct_eNb_old;
- fifo_dump_emos_struct_eNb_a = fifo_dump_emos_struct_eNb_old_a;
-end
-
-gps_fix_t_size = gps_data_struct_a.size;
-fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size;
-fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size;
-
-
-NO_ESTIMATES_DISK = 100;
-if (is_eNb)
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size;
-else
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size;
-end
-
-if (mod(NO_ESTIMATES_DISK,decimation) ~= 0)
- error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK);
-end
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
- if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0)
- warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag is wrong.');
- end
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-if (is_eNb)
- estimates = repmat(fifo_dump_emos_struct_eNb,1,floor(NFrames/decimation));
-else
- estimates = repmat(fifo_dump_emos_struct_UE,1,floor(NFrames/decimation));
-end
-
-gps_data = repmat(gps_data_struct,1,NFrames/100);
-
-k = 1;
-l = 1;
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while (~feof(fid) && (k <= min(sum(NFrames_file(1:n)),NFrames_max)))
-
- if (is_eNb)
- estimates_tmp = binread(fid,fifo_dump_emos_struct_eNb,1,4,'l');
- else
- estimates_tmp = binread(fid,fifo_dump_emos_struct_UE,1,4,'l');
- end
-
- if (mod((k-1),decimation) == 0)
- estimates(((k-1)/decimation)+1) = estimates_tmp;
- end
-
- %read GPS data
- if ((mod(k,NO_ESTIMATES_DISK)==0) && ~feof(fid))
- gps_data(l) = binread(fid,gps_data_struct,1,4,'l');
- l=l+1;
- end
- %I will have to add it here if the data is huge
- %enough************************************************************
- %******************************************************************
- %******************************************************************
- k=k+1;
- end
-
- fclose(fid);
-end
-
-H=[];
-H_fq=[];
-
-% H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames));
-% H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames);
-% H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames);
-%
-% H = ifft(H_fq,[],3);
-%
-% % remove zero carriers from Frequency response
-% NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
-% H_fq = H_fq(:,:,NZFreq_ind,:);
-%
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m b/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m
deleted file mode 100644
index 64da83bde6..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/load_estimates_lte_new.m
+++ /dev/null
@@ -1,128 +0,0 @@
-function [estimates, NFrames, gps_data, H] = load_estimates_lte_new(filename, NFrames_max, decimation, is_eNb, EMOS_CHANNEL, align)
-%
-% EMOS Single User Import Filter
-%
-% [estimates, NFrames] =
-% load_estimates_lte(filename, NFrames_max, decimation, is_eNb, EMOS_CHANNEL, align)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% decimation - read every 'decimation' frame
-% is_eNb - if ~= 0 we load data from an eNb
-% EMOS_CHANNEL - if the measurement contains the full channel estimate, set this to 1
-% align - alignment of the data structures. If data was recorded on a 64bit
-% machine set this to 8, for 32bit use 4.
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20100317 0.1 Created based on load_estimates
-
-if nargin < 6
- align=4;
-end
-if nargin < 5
- EMOS_CHANNEL = 0;
-end
-if nargin < 4
- is_eNb = 1;
-end
-if nargin < 3
- decimation = 1;
-end
-if nargin < 2
- NFrames_max = Inf;
-end
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-
-struct_template_new;
-
-gps_fix_t_size = gps_data_struct_a.size;
-fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size;
-fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size;
-
-
-NO_ESTIMATES_DISK = 100;
-if (is_eNb)
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size;
-else
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size;
-end
-
-if (mod(NO_ESTIMATES_DISK,decimation) ~= 0)
- error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK);
-end
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
- if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0)
- warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag or alignment is wrong.');
- end
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-if (is_eNb)
- estimates = repmat(fifo_dump_emos_struct_eNb,1,floor(NFrames/decimation));
- if nargout==4
- H = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_eNb.channel,1)/2,size(fifo_dump_emos_struct_eNb.channel,2)));
- end
-else
- estimates = repmat(fifo_dump_emos_struct_UE,1,floor(NFrames/decimation));
- if nargout==4
- H = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_UE.channel,1)/2,size(fifo_dump_emos_struct_UE.channel,2)));
- end
-end
-
-%gps_data = repmat(gps_data_struct,1,NFrames/100);
-
-k = 1;
-l = 1;
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while (~feof(fid) && (k <= min(sum(NFrames_file(1:n)),NFrames_max)))
-
- if (is_eNb)
- estimates_tmp = binread(fid,fifo_dump_emos_struct_eNb,1,align,'l');
- else
- estimates_tmp = binread(fid,fifo_dump_emos_struct_UE,1,align,'l');
- end
-
- if (mod((k-1),decimation) == 0)
- estimates(((k-1)/decimation)+1) = estimates_tmp;
- end
- if nargout==4
- H(k,:,:) = (double(estimates_tmp.channel(1:2:end,:)) + 1j*double(estimates_tmp.channel(2:2:end,:)));
- end
-
- %read GPS data
- if ((mod(k,NO_ESTIMATES_DISK)==0) && ~feof(fid))
- gps_data(l) = binread(fid,gps_data_struct,1,align,'l');
- l=l+1;
- end
- k=k+1;
- end
-
- fclose(fid);
-end
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m b/openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m
deleted file mode 100644
index 5230bf00e9..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template.m
+++ /dev/null
@@ -1,290 +0,0 @@
-% file: struct_template.m
-% author: florian.kaltenberger@eurecom.fr
-% date: 13.3.2010
-% purpose: this file reconstructs the structures fifo_dump_emos_struct_UE
-% and fifo_dump_emos_struct_UE which are defined in
-% SCHED/phy_procedures_emos.h
-
-
-NUMBER_OF_OFDM_CARRIERS_EMOS = 512;
-NUMBER_OF_USEFUL_CARRIERS_EMOS = 300;
-
-N_RB_DL_EMOS = 25;
-N_PILOTS_PER_RB = 4;
-N_SLOTS_EMOS = 4;
-
-N_RB_UL_EMOS = 25;
-N_SRS_SYMBOLS = 3;
-
-N_PILOTS_PER_RB_UL = 12;
-N_SRS_SYMBOLS_OLD = 5;
-
-MAX_DCI_PER_FRAME = 20;
-MAX_UCI_PER_FRAME = 20;
-
-PBCH_PDU_SIZE = 6;
-
-NUMBER_OF_eNB_MAX = 3;
-NUMBER_OF_UE_MAX = 1;
-NUMBER_OF_SUBBANDS = 7;
-
-NB_ANTENNAS_RX = 2;
-NB_ANTENNAS_TX = 2;
-
-MAX_CQI_BITS = 40;
-MAX_DCI_SIZE_BITS = 45;
-
-phy_measurements_struct = struct(...
- 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_tot', uint32(0),...
- 'n0_power_tot_dB', uint16(0),...
- 'n0_power_tot_dBm', int16(0),...
- 'rx_spatial_power', uint32(zeros(2,2,NUMBER_OF_eNB_MAX)),...
- 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_eNB_MAX)),...
- 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'rx_correlation', int32(zeros(2,NUMBER_OF_eNB_MAX)),...
- 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_eNB_MAX)),...
- 'wideband_cqi', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'wideband_cqi_dB', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'wideband_cqi_tot', int32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'precoded_cqi_dB', int32(zeros(4,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi_tot', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi_dB', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi_tot_dB', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'wideband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'wideband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'subband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'subband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'selected_rx_antennas', int8(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'rank', uint8(zeros(1,NUMBER_OF_eNB_MAX)));
-
-phy_measurements_struct_a = cstruct(phy_measurements_struct,[],4);
-if (exist('PHY_measurements_size','var') && (phy_measurements_struct_a.size ~= PHY_measurements_size))
- error('PHY_measurements_size does not match');
-end
-
-phy_measurements_eNb_struct = struct(...
- 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_tot', uint32(0),...
- 'n0_power_tot_dB', uint16(0),...
- 'n0_power_tot_dBm', int16(0),...
- 'n0_subband_power', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),...
- 'n0_subband_power_dB', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),...
- 'n0_subband_power_tot_dB', int16(zeros(1,N_RB_UL_EMOS)),...
- 'n0_subband_power_tot_dBm', int16(zeros(1,N_RB_UL_EMOS)),...
- 'rx_spatial_power', uint32(zeros(2,2,NUMBER_OF_UE_MAX)),...
- 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_UE_MAX)),...
- 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_UE_MAX)),...
- 'rx_correlation', int32(zeros(2,NUMBER_OF_UE_MAX)),...
- 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_UE_MAX)),...
- 'wideband_cqi', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'wideband_cqi_dB', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'wideband_cqi_tot', int8(zeros(1,NUMBER_OF_UE_MAX)),...
- 'subband_cqi', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'subband_cqi_tot', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX)),...
- 'subband_cqi_dB', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'subband_cqi_tot_dB', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX)));
-
-phy_measurements_eNb_struct_a = cstruct(phy_measurements_eNb_struct,[],4);
-if (exist('PHY_measurements_eNb_size','var') && (phy_measurements_eNb_struct_a.size ~= PHY_measurements_eNb_size))
- error('PHY_measurements_eNb_size does not match');
-end
-
-uci_data_struct = struct(...
- 'o',uint8(zeros(1,MAX_CQI_BITS)),...
- 'O',uint8(0),...
- 'o_RI',uint8(zeros(1,2)),...
- 'O_RI',uint8(0),...
- 'o_ACK',uint8(zeros(1,4)),...
- 'O_ACK',uint8(0));
-
-uci_data_struct_a = cstruct(uci_data_struct,[],4);
-if (exist('UCI_data_t_size','var') && (uci_data_struct_a.size ~= UCI_data_t_size))
- error('UCI_data_t_size does not match');
-end
-
-
-dci_alloc_struct = struct(...
- 'dci_length',uint8(0),...
- 'L',uint8(0),...
- 'rnti',uint16(0),...
- 'format',uint32(0),...
- 'dci_pdu',uint16(zeros(1,1+floor(MAX_DCI_SIZE_BITS/16))));
-
-% this one does not work unfortunately
-% dci_alloc_struct = struct(...
-% 'dci_length',uint8(0),...
-% 'L',uint8(0),...
-% 'rnti',uint16(0),...
-% 'format',uint32(0),...
-% 'rah',logical(0),...
-% 'rballoc',logical(zeros(1,13)),...
-% 'TPC',logical(zeros(1,2)),... %16
-%
-% 'dai',logical(zeros(1,2)),... 1:2
-% 'harq_pid',logical(zeros(1,4)),... 3:6
-% 'tb_swap',logical(0),... 7
-% 'mcs1',logical(zeros(1,5)),... 8:12
-% 'ndi1',logical(0),... 13
-% 'rv1',logical(zeros(1,2)),... 14:15
-% 'tpmi',logical(zeros(1,3)),... 16:17:...
-% 'mcs2',logical(zeros(1,5)),...
-% 'ndi2',logical(0),...
-% 'rv2',logical(zeros(1,2)),...
-% 'padding',logical(zeros(1,6)));
-
-dci_alloc_struct_a = cstruct(dci_alloc_struct,[],4);
-if (exist('DCI_alloc_t_size','var') && (dci_alloc_struct_a.size ~= DCI_alloc_t_size))
- error('DCI_alloc_t_size does not match');
-end
-
-
-eNb_UE_stats_struct = struct(...
- 'UL_rssi',int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'DL_cqi',uint8(zeros(2,NUMBER_OF_UE_MAX)),...
- 'DL_diffcqi',uint8(zeros(2,NUMBER_OF_UE_MAX)),...
- 'DL_pmi_single',uint16(zeros(1,NUMBER_OF_UE_MAX)),...
- 'DL_pmi_dual',uint16(zeros(1,NUMBER_OF_UE_MAX)),...
- 'rank',uint8(zeros(1,NUMBER_OF_UE_MAX)),...
- 'UE_id',uint16(zeros(1,NUMBER_OF_UE_MAX)),...
- 'UE_timing_offset',int16(zeros(1,NUMBER_OF_UE_MAX)),...
- 'UE_mode',uint32(zeros(1,NUMBER_OF_UE_MAX)),...
- 'sector',uint8(zeros(1,NUMBER_OF_UE_MAX)));
-
-
-eNb_UE_stats_struct_a = cstruct(eNb_UE_stats_struct,[],4);
-if (exist('eNb_UE_stats_size','var') && (eNb_UE_stats_struct_a.size ~= eNb_UE_stats_size))
- error('eNb_UE_stats_size does not match');
-end
-
-complex_struct = struct('real',int16(0),'imag',int16(0));
-
-fifo_dump_emos_struct_UE = struct(...
- 'timestamp',int64(0),...
- 'frame_tx',uint32(0),...
- 'frame_rx',uint32(0),...
- 'UE_mode',uint32(0),...
- 'phy_measurements', repmat(phy_measurements_struct,1,20),...
- 'pbch_pdu',uint8(zeros(PBCH_PDU_SIZE,NUMBER_OF_eNB_MAX)),...
- 'pbch_errors',uint32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'pbch_errors_last',uint32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'pbch_errors_conseq',uint32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'pbch_fer',uint32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'dci_cnt',uint32(zeros(1,10)),...
- 'dci_errors',uint32(0),...
- 'dci_received',uint32(0),...
- 'dci_false',uint32(0),...
- 'dci_missed',uint32(0),...
- 'dci_alloc',repmat(dci_alloc_struct,10,2),...
- 'dlsch_errors',uint32(0),...
- 'dlsch_errors_last',uint32(0),...
- 'dlsch_received',uint32(0),...
- 'dlsch_received_last',uint32(0),...
- 'dlsch_fer',uint32(0),...
- 'dlsch_cntl_errors',uint32(0),...
- 'dlsch_ra_errors',uint32(0),...
- 'timing_offset',int32(0),...
- 'timing_advance',int32(0),...
- 'freq_offset',int32(0),...
- 'rx_total_gain_dB',uint32(0),...
- 'eNb_id',uint8(0),...
- 'mimo_mode',uint8(0),...
- 'channel',int32(zeros(N_RB_DL_EMOS*N_PILOTS_PER_RB*N_SLOTS_EMOS,NB_ANTENNAS_RX*NB_ANTENNAS_TX,NUMBER_OF_eNB_MAX)),...
- 'uci_cnt',uint32(zeros(1,10)),...
- 'uci_data',repmat(uci_data_struct,10,2));
-
-fifo_dump_emos_struct_UE_a = cstruct(fifo_dump_emos_struct_UE,[],4);
-if (exist('fifo_dump_emos_UE_size','var') && (fifo_dump_emos_struct_UE_a.size ~= fifo_dump_emos_UE_size))
- error('fifo_dump_emos_UE_size does not match');
-end
-
-fifo_dump_emos_struct_eNb_old = struct(...
- 'timestamp',int64(0),...
- 'frame_tx',uint32(0),...
- 'dci_cnt',uint32(zeros(1,10)),...
- 'dci_alloc',repmat(dci_alloc_struct,10,2),...
- 'mimo_mode',uint8(0),...
- 'phy_measurements_eNb',repmat(phy_measurements_eNb_struct,1,3),...
- 'eNb_UE_stats',repmat(eNb_UE_stats_struct,10,NUMBER_OF_eNB_MAX),...
- 'ulsch_errors',uint32(0),...
- 'rx_total_gain_dB',uint32(0),...
- 'channel',int16(zeros(N_RB_DL_EMOS*N_PILOTS_PER_RB_UL*2,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX,N_SRS_SYMBOLS_OLD)));
-
-fifo_dump_emos_struct_eNb_old_a = cstruct(fifo_dump_emos_struct_eNb_old,[],4);
-
-fifo_dump_emos_struct_eNb = struct(...
- 'timestamp',int64(0),...
- 'frame_tx',uint32(0),...
- 'dci_cnt',uint32(zeros(1,10)),...
- 'dci_alloc',repmat(dci_alloc_struct,10,2),...
- 'mimo_mode',uint8(0),...
- 'phy_measurements_eNb',repmat(phy_measurements_eNb_struct,1,3),...
- 'eNb_UE_stats',repmat(eNb_UE_stats_struct,3,1),...
- 'ulsch_errors',uint32(0),...
- 'rx_total_gain_dB',uint32(0),...
- 'channel',int16(zeros(NUMBER_OF_OFDM_CARRIERS_EMOS*2,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX,N_SRS_SYMBOLS)));
-
-
-fifo_dump_emos_struct_eNb_a = cstruct(fifo_dump_emos_struct_eNb,[],4);
-if (exist('fifo_dump_emos_eNb_size','var') && (fifo_dump_emos_struct_eNb_a.size ~= fifo_dump_emos_eNb_size))
- error('fifo_dump_emos_eNb_size does not match');
-end
-
-
-gps_data_struct = struct(...
- 'timestamp', double(0),...
- 'mode', int32(0),...
- 'ept',double(0),...
- 'latitude',double(0),...
- 'longitude',double(0),...
- 'eph',double(0),...
- 'altitude',double(0),...
- 'epv',double(0),...
- 'track',double(0),...
- 'epd',double(0),...
- 'speed',double(0),...
- 'eps',double(0),...
- 'climb',double(0),...
- 'epc',double(0));
-
-gps_data_struct_a = cstruct(gps_data_struct,[],4);
-if (exist('gps_fix_t_size','var') && (gps_data_struct_a.size ~= gps_fix_t_size))
- error('gps_data_struct_size does not match');
-end
-
-
-min_estimates_struct = struct(...
- 'mcs',double(0),...
- 'tbs',double(0),...
- 'rx_rssi_dBm',int16(0),...
- 'frame_tx',uint32(0),...
- 'frame_rx',uint32(0),...
- 'pbch_fer',uint32(0),...
- 'timestamp',int64(0),...
- 'UE_mode',uint32(0),...
- 'phy_measurements', repmat(phy_measurements_struct,1,1),...
- 'dlsch_fer',uint32(0),...
- 'dlsch_errors',uint32(0),...
- 'mimo_mode',uint8(0),...
- 'eNb_id',uint8(0));
-min_estimates_struct_a = cstruct(min_estimates_struct,[],4);
-
-min_estimates_struct_eNb = struct(...
- 'mcs',double(0),...
- 'tbs',double(0),...
- 'rx_rssi_dBm',int16(0),...
- 'frame_tx',uint32(0),...
- 'timestamp',int64(0),...
- 'UE_mode',uint32(0),...
- 'phy_measurements', repmat(phy_measurements_eNb_struct,1,1),...
- 'ulsch_errors',uint32(0),...
- 'mimo_mode',uint8(0),...
- 'eNb_id',uint8(0));
-min_estimates_struct_eNb_a = cstruct(min_estimates_struct,[],4);
-
-
-
-
diff --git a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m b/openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m
deleted file mode 100644
index c633cf8c98..0000000000
--- a/openair1/EMOS/LTE/IMPORT_FILTER/struct_template_new.m
+++ /dev/null
@@ -1,335 +0,0 @@
-% file: struct_template.m
-% author: florian.kaltenberger@eurecom.fr
-% date: 13.3.2010
-% purpose: this file reconstructs the structures fifo_dump_emos_struct_UE
-% and fifo_dump_emos_struct_UE which are defined in
-% SCHED/phy_procedures_emos.h
-
-
-NUMBER_OF_OFDM_CARRIERS_EMOS = 512;
-NUMBER_OF_USEFUL_CARRIERS_EMOS = 300;
-
-N_RB_UL_EMOS = 25;
-N_PILOTS_DL_EMOS = 2; % ofdm symbols with pilots per slot
-N_PILOTS_UL_EMOS = 2; % ofdm symbols with pilots per subframe
-N_SLOTS_DL_EMOS = 2; % we take slots 10,11
-N_SUBFRAMES_UL_EMOS = 1; % we take subframes 3
-NB_ANTENNAS_TX_EMOS = 2; % antennas at eNB
-NB_ANTENNAS_RX_EMOS = 2; % antennas at UE
-
-
-MAX_DCI_PER_FRAME = 20;
-MAX_UCI_PER_FRAME = 20;
-
-PBCH_PDU_SIZE = 6;
-
-NUMBER_OF_eNB_MAX = 3;
-NUMBER_OF_UE_MAX = 2;
-NUMBER_OF_SUBBANDS = 13;
-
-NB_ANTENNAS_RX = 2; % maximum number of antennas (for memory allocation only)
-%NB_ANTENNAS_TX = 2;
-
-MAX_CQI_BITS = 40;
-MAX_DCI_SIZE_BITS = 45;
-
-% enable this line to enable error checking
-if exist('check_errors','var') && (check_errors==1)
- if isunix
- get_dump_size
- else
- warning('Error checking of sizes only possible in Linux');
- end
-end
-
-if ~exist('align','var')
- error('variable align must be specified');
-else
- if ((align~=4) && (align~=8))
- error('variable align must be either 4 or 8');
- end
-end
-
-if ~exist('EMOS_CHANNEL','var')
- error('variable EMOS_CHANNEL must be specified');
-end
-
-
-phy_measurements_struct = struct(...
- 'rssi', uint32(0),...
- 'n_adj_cells', int32(0),...
- 'n_adj_cells_id', uint32(zeros(1,6)),...
- 'rsrq', uint32(zeros(1,7)),...
- 'rsrp', uint32(zeros(1,7)),...
- 'rsrp_filtered', single(zeros(1,7)),...
- 'rsrq_filtered', single(zeros(1,7)),...
- 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_tot', uint32(0),...
- 'n0_power_tot_dB', uint16(0),...
- 'n0_power_avg', uint32(0),...
- 'n0_power_avg_dB', uint16(0),...
- 'n0_power_tot_dBm', int16(0),...
- 'rx_spatial_power', int32(zeros(2,2,NUMBER_OF_eNB_MAX)),...
- 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_eNB_MAX)),...
- 'rx_power', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'rx_power_dB', uint16(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'rx_power_tot', int32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'rx_power_tot_dB', uint16(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'rx_power_avg', int32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'rx_power_avg_dB', uint16(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'wideband_cqi_tot', int32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'wideband_cqi_avg', int32(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'rx_correlation', int32(zeros(2,NUMBER_OF_eNB_MAX)),...
- 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_eNB_MAX)),...
- 'precoded_cqi_dB', int32(zeros(4,NUMBER_OF_eNB_MAX+1)),...
- 'subband_cqi', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi_tot', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi_dB', int32(zeros(NUMBER_OF_SUBBANDS,NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'subband_cqi_tot_dB', int32(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'wideband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'wideband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_eNB_MAX)),...
- 'subband_pmi_re', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'subband_pmi_im', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'selected_rx_antennas', int8(zeros(NUMBER_OF_SUBBANDS,NUMBER_OF_eNB_MAX)),...
- 'rank', uint8(zeros(1,NUMBER_OF_eNB_MAX)),...
- 'nb_antennas_rx', uint8(0));
-
-
-phy_measurements_struct_a = cstruct(phy_measurements_struct,[],align);
-if (exist('PHY_measurements_size','var') && (phy_measurements_struct_a.size ~= PHY_measurements_size))
- warning('PHY_measurements_size does not match');
-end
-
-phy_measurements_eNb_struct = struct(...
- 'n0_power', uint32(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_dB', uint16(zeros(1,NB_ANTENNAS_RX)),...
- 'n0_power_tot', uint32(0),...
- 'n0_power_tot_dB', uint16(0),...
- 'n0_power_tot_dBm', int16(0),...
- 'n0_subband_power', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),...
- 'n0_subband_power_dB', uint16(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX)),...
- 'n0_subband_power_tot_dB', int16(zeros(1,N_RB_UL_EMOS)),...
- 'n0_subband_power_tot_dBm', int16(zeros(1,N_RB_UL_EMOS)),...
- 'rx_spatial_power', uint32(zeros(2,2,NUMBER_OF_UE_MAX)),...
- 'rx_spatial_power_dB', uint16(zeros(2,2,NUMBER_OF_UE_MAX)),...
- 'rx_rssi_dBm', int16(zeros(1,NUMBER_OF_UE_MAX)),...
- 'rx_correlation', int32(zeros(2,NUMBER_OF_UE_MAX)),...
- 'rx_correlation_dB', int32(zeros(2,NUMBER_OF_UE_MAX)),...
- 'wideband_cqi', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'wideband_cqi_dB', int32(zeros(NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'wideband_cqi_tot', int8(zeros(1,NUMBER_OF_UE_MAX)),...
- 'subband_cqi', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'subband_cqi_tot', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX)),...
- 'subband_cqi_dB', int32(zeros(N_RB_UL_EMOS,NB_ANTENNAS_RX,NUMBER_OF_UE_MAX)),...
- 'subband_cqi_tot_dB', int32(zeros(N_RB_UL_EMOS,NUMBER_OF_UE_MAX)));
-
-phy_measurements_eNb_struct_a = cstruct(phy_measurements_eNb_struct,[],align);
-if (exist('PHY_measurements_eNb_size','var') && (phy_measurements_eNb_struct_a.size ~= PHY_measurements_eNb_size))
- warning('PHY_measurements_eNb_size does not match');
-end
-
-uci_data_struct = struct(...
- 'o',uint8(zeros(1,MAX_CQI_BITS)),...
- 'O',uint8(0),...
- 'o_RI',uint8(zeros(1,2)),...
- 'O_RI',uint8(0),...
- 'o_ACK',uint8(zeros(1,4)),...
- 'O_ACK',uint8(0));
-
-uci_data_struct_a = cstruct(uci_data_struct,[],align);
-if (exist('UCI_data_t_size','var') && (uci_data_struct_a.size ~= UCI_data_t_size))
- warning('UCI_data_t_size does not match');
-end
-
-
-dci_alloc_struct = struct(...
- 'dci_length',uint8(0),...
- 'L',uint8(0),...
- 'rnti',uint16(0),...
- 'format',uint32(0),...
- 'dci_pdu',uint16(zeros(1,1+floor(MAX_DCI_SIZE_BITS/16))));
-
-% this one does not work unfortunately
-% dci_alloc_struct = struct(...
-% 'dci_length',uint8(0),...
-% 'L',uint8(0),...
-% 'rnti',uint16(0),...
-% 'format',uint32(0),...
-% 'rah',logical(0),...
-% 'rballoc',logical(zeros(1,13)),...
-% 'TPC',logical(zeros(1,2)),... %16
-%
-% 'dai',logical(zeros(1,2)),... 1:2
-% 'harq_pid',logical(zeros(1,4)),... 3:6
-% 'tb_swap',logical(0),... 7
-% 'mcs1',logical(zeros(1,5)),... 8:12
-% 'ndi1',logical(0),... 13
-% 'rv1',logical(zeros(1,2)),... 14:15
-% 'tpmi',logical(zeros(1,3)),... 16:17:...
-% 'mcs2',logical(zeros(1,5)),...
-% 'ndi2',logical(0),...
-% 'rv2',logical(zeros(1,2)),...
-% 'padding',logical(zeros(1,6)));
-
-dci_alloc_struct_a = cstruct(dci_alloc_struct,[],align);
-if (exist('DCI_alloc_t_size','var') && (dci_alloc_struct_a.size ~= DCI_alloc_t_size))
- warning('DCI_alloc_t_size does not match');
-end
-
-
-eNb_UE_stats_struct = struct(...
- 'UL_rssi',int32(zeros(1,NB_ANTENNAS_RX)),...
- 'DL_cqi',uint8(zeros(1,2)),...
- 'DL_subband_cqi',uint8(zeros(13,2)),...
- 'DL_pmi_single',uint16(0),...
- 'DL_pmi_dual',uint16(0),...
- 'rank',uint8(0),...
- 'crnti',uint16(0),...
- 'UE_timing_offset',int32(0),...
- 'timing_advance_update',int32(0),...
- 'UE_mode',uint32(0),...
- 'sector',uint8(0),...
- 'dlsch_l2_errors', uint32(zeros(1,8)),...
- 'dlsch_trials', uint32(zeros(8,8)),...
- 'dlsch_ACK', uint32(zeros(8,8)),...
- 'dlsch_NAK', uint32(zeros(8,8)),...
- 'ulsch_errors', uint32(zeros(1,8)),...
- 'ulsch_consecutive_errors', uint32(0),...
- 'ulsch_decoding_attempts', uint32(zeros(8,8)),...
- 'ulsch_round_errors', uint32(zeros(8,8)),...
- 'ulsch_decoding_attempts_last', uint32(zeros(8,8)),...
- 'ulsch_round_errors_last', uint32(zeros(8,8)),...
- 'ulsch_round_fer', uint32(zeros(8,8)),...
- 'sr_received', uint32(0), ...
- 'sr_total', uint32(0), ...
- 'dlsch_sliding_cnt', uint32(0),...
- 'dlsch_NAK_round0', uint32(0),...
- 'dlsch_mcs_offset', int8(0),...
- 'dlsch_mcs1', uint8(0),...
- 'dlsch_mcs2', uint8(0),...
- 'total_TBS_MAC', int32(0),...
- 'total_TBS', int32(0),...
- 'total_TBS_last', int32(0),...
- 'dlsch_bitrate', uint32(0));
-
-
-eNb_UE_stats_struct_a = cstruct(eNb_UE_stats_struct,[],align);
-if (exist('eNb_UE_stats_size','var') && (eNb_UE_stats_struct_a.size ~= eNb_UE_stats_size))
- warning('eNb_UE_stats_size does not match');
-end
-
-complex_struct = struct('real',int16(0),'imag',int16(0));
-
-fifo_dump_emos_struct_UE = struct(...
- 'timestamp',int64(0),...
- 'frame_tx',uint32(0),...
- 'frame_rx',uint32(0),...
- 'UE_mode',uint32(0),...
- 'phy_measurements', phy_measurements_struct,...
- 'pbch_errors',uint32(0),...
- 'pbch_errors_last',uint32(0),...
- 'pbch_errors_conseq',uint32(0),...
- 'pbch_fer',uint32(0),...
- 'dlsch_errors',uint32(0),...
- 'dlsch_errors_last',uint32(0),...
- 'dlsch_received',uint32(0),...
- 'dlsch_received_last',uint32(0),...
- 'dlsch_fer',uint32(0),...
- 'dlsch_cntl_errors',uint32(0),...
- 'dlsch_ra_errors',uint32(0),...
- 'total_TBS',uint32(0),...
- 'total_TBS_last',uint32(0),...
- 'bitrate',uint32(0),...
- 'total_received_bits',uint32(0),...
- 'timing_offset',int32(0),...
- 'timing_advance',int32(0),...
- 'freq_offset',int32(0),...
- 'use_ia_receiver',int32(0),...
- 'pmi_saved',uint16(0),...
- 'mcs',uint16(0),...
- 'rx_total_gain_dB',uint32(0),...
- 'eNb_id',uint8(0),...
- 'mimo_mode',uint8(0));
-if (EMOS_CHANNEL)
- fifo_dump_emos_struct_UE.channel=int16(zeros(2*NUMBER_OF_OFDM_CARRIERS_EMOS*N_PILOTS_DL_EMOS*N_SLOTS_DL_EMOS,NB_ANTENNAS_TX_EMOS,NB_ANTENNAS_RX_EMOS));
-end
-
-fifo_dump_emos_struct_UE_a = cstruct(fifo_dump_emos_struct_UE,[],align);
-if (exist('fifo_dump_emos_UE_size','var') && (fifo_dump_emos_struct_UE_a.size ~= fifo_dump_emos_UE_size))
- warning('fifo_dump_emos_UE_size does not match');
-end
-
-fifo_dump_emos_struct_eNb = struct(...
- 'timestamp',int64(0),...
- 'frame_tx',uint32(0),...
- 'mimo_mode',uint8(0),...
- 'phy_measurements_eNb',phy_measurements_eNb_struct,...
- 'eNb_UE_stats',repmat(eNb_UE_stats_struct,1,NUMBER_OF_UE_MAX),...
- 'rx_total_gain_dB',uint32(0));
-if (EMOS_CHANNEL)
- fifo_dump_emos_struct_eNb.channel = int16(zeros(2*N_RB_UL_EMOS*12*N_PILOTS_UL_EMOS*N_SUBFRAMES_UL_EMOS,NB_ANTENNAS_RX_EMOS));
-end
-
-fifo_dump_emos_struct_eNb_a = cstruct(fifo_dump_emos_struct_eNb,[],align);
-if (exist('fifo_dump_emos_eNb_size','var') && (fifo_dump_emos_struct_eNb_a.size ~= fifo_dump_emos_eNb_size))
- warning('fifo_dump_emos_eNb_size does not match');
-end
-
-
-gps_data_struct = struct(...
- 'timestamp', double(0),...
- 'mode', int32(0),...
- 'ept',double(0),...
- 'latitude',double(0),...
- 'epy',double(0),...
- 'longitude',double(0),...
- 'epx',double(0),...
- 'altitude',double(0),...
- 'epv',double(0),...
- 'track',double(0),...
- 'epd',double(0),...
- 'speed',double(0),...
- 'eps',double(0),...
- 'climb',double(0),...
- 'epc',double(0));
-
-gps_data_struct_a = cstruct(gps_data_struct,[],align);
-if (exist('gps_fix_t_size','var') && (gps_data_struct_a.size ~= gps_fix_t_size))
- warning('gps_data_struct_size does not match');
-end
-
-
-min_estimates_struct = struct(...
- 'mcs',double(0),...
- 'tbs',double(0),...
- 'rx_rssi_dBm',int16(0),...
- 'frame_tx',uint32(0),...
- 'frame_rx',uint32(0),...
- 'pbch_fer',uint32(0),...
- 'timestamp',int64(0),...
- 'UE_mode',uint32(0),...
- 'phy_measurements', repmat(phy_measurements_struct,1,1),...
- 'dlsch_fer',uint32(0),...
- 'dlsch_errors',uint32(0),...
- 'mimo_mode',uint8(0),...
- 'eNb_id',uint8(0));
-min_estimates_struct_a = cstruct(min_estimates_struct,[],align);
-
-min_estimates_struct_eNb = struct(...
- 'mcs',double(0),...
- 'tbs',double(0),...
- 'rx_rssi_dBm',int16(0),...
- 'frame_tx',uint32(0),...
- 'timestamp',int64(0),...
- 'UE_mode',uint32(0),...
- 'phy_measurements', repmat(phy_measurements_eNb_struct,1,1),...
- 'ulsch_errors',uint32(0),...
- 'mimo_mode',uint8(0),...
- 'eNb_id',uint8(0));
-min_estimates_struct_eNb_a = cstruct(min_estimates_struct,[],align);
-
-
-
-
diff --git a/openair1/EMOS/LTE/MU-MIMO/eval_results.m b/openair1/EMOS/LTE/MU-MIMO/eval_results.m
deleted file mode 100644
index 8cff48b390..0000000000
--- a/openair1/EMOS/LTE/MU-MIMO/eval_results.m
+++ /dev/null
@@ -1,76 +0,0 @@
-%% Script for reading in the EMOS input
-clear all;
-%close all;
-
-addpath('E:\Synchro\kaltenbe\My Documents\openair4G\openair1\EMOS\LTE\IMPORT_FILTER')
-
-% 2rx
-% [estimates,NFrames]=load_estimates_lte_new('E:\Synchro\kaltenbe\My Documents\openair4G\openair1\EMOS\DUMP\UE_data_20130315_142130.EMOS',inf,1,0);
-% 1rx
-% estimates = load_estimates_lte_new('E:\EMOS\globecom\UE_data_20130315_155139.EMOS', inf, 1, 0);
-
-% 2rx long test
-% estimates = load_estimates_lte_new('/home/wagner/GC/UE_data_20130315_142130.EMOS', 250000, 1, 0);
-% 1rx short test
-% estimates = load_estimates_lte_new('/home/wagner/GC/UE_data_20130315_153101.EMOS', inf, 1, 0);
-
-% ITJ
-%Nrx = 1;
-%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130916_175331.EMOS', inf, 1, 0, 0);
-Nrx = 2;
-%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130916_174719.EMOS', inf, 1, 0, 0);
-%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130924_143804.EMOS', inf, 1, 0, 0);
-%estimates = load_estimates_lte_new('E:\EMOS\ITJ (globecom bis)\UE_data_20130924_143250.EMOS', inf, 1, 0, 0);
-
-% outdoor messungen 2013-10-10
-filepath = 'E:\EMOS\MU-MIMO\ITJ3\';
-filename = 'UE_data_20131030_143345';
-estimates = load_estimates_lte_new([filepath filename '.EMOS'], inf, 1, 0, 0);
-
-%% frame
-frame_rx = double([estimates.frame_rx]);
-%throughput = [0 diff(double([estimates.total_TBS]))*100];
-throughput = double([estimates.bitrate]);
-mcs = double([estimates.mcs]);
-use_iu_receiver = ([estimates.use_ia_receiver]==0);
-use_ia_receiver = ([estimates.use_ia_receiver]==1);
-use_iag_receiver = ([estimates.use_ia_receiver]==2);
-
-
-%% average
-avg_tp_ia = zeros(28,1);
-avg_tp_iag = zeros(28,1);
-avg_tp_iu = zeros(28,1);
-num_ia = zeros(28,1);
-num_iag = zeros(28,1);
-num_iu = zeros(28,1);
-
-for imcs=0:1:27
- mcs_window = (mcs==imcs);
- throughput_iag_mcs = throughput(use_iag_receiver & mcs_window);
- num_iag(imcs+1) = sum(use_iag_receiver & mcs_window);
- avg_tp_iag(imcs+1) = mean(throughput_iag_mcs);
- throughput_ia_mcs = throughput(use_ia_receiver & mcs_window);
- num_ia(imcs+1) = sum(use_ia_receiver & mcs_window);
- avg_tp_ia(imcs+1) = mean(throughput_ia_mcs);
- throughput_iu_mcs = throughput(use_iu_receiver & mcs_window);
- num_iu(imcs+1) = sum(use_iu_receiver & mcs_window);
- avg_tp_iu(imcs+1) = mean(throughput_iu_mcs);
-end
-
-
-%% Plot
-figure(2)
-hold off
-colormap hot
-bar(0:1:27,[avg_tp_iu avg_tp_ia avg_tp_iag])
-grid on
-xlim([-1 28])
-h = legend('IU Receiver','IA Receiver','IA genie');
-set(h,'FontSize',14);
-xlabel('MCS','FontSize',14)
-ylabel('Throughput [bps]','FontSize',14)
-
-%saveas(gcf, filename, 'eps')
-%save(filename,'avg_tp*', 'mcs*', 'throughput*', 'use*', 'frame*');
-%csvwrite([filename '.csv'],[(0:1:27).' avg_tp_iu avg_tp_ia avg_tp_iag])
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m b/openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m
deleted file mode 100644
index 69b06eecd3..0000000000
--- a/openair1/EMOS/LTE/MU-MIMO/eval_results_sam.m
+++ /dev/null
@@ -1,149 +0,0 @@
-%% Script for reading in the EMOS input
-clear all;
-close all;
-
-addpath('E:\Synchro\kaltenbe\My Documents\openair4G\openair1\EMOS\LTE\IMPORT_FILTER')
-
-% outdoor messungen 2013-10-10 fuer ITJ paper
-%filepath = 'E:\EMOS\MU-MIMO\ITJ3\';
-%filename = 'UE_data_20131030_143345';
-
-% indoor messungen 20140220 fuer SAM paper
-filepath = 'E:\EMOS\MU-MIMO\SAM\';
-
-% outdoor messungen for SAM paper
-%filename = 'UE_data_pmi_fixed_all';
-filename = 'UE_data_20140220_163107';
-%filename = 'UE_data_all';
-
-[estimates, NFrames] = load_estimates_lte_new([filepath filename '.EMOS'], inf, 1, 0, 0);
-
-%% frame
-frame_rx = double([estimates.frame_rx]);
-%throughput = [0 diff(double([estimates.total_TBS]))*100];
-throughput = double([estimates.bitrate]);
-mcs = double([estimates.mcs]);
-use_iu_receiver = ([estimates.use_ia_receiver]==0);
-use_ia_receiver = ([estimates.use_ia_receiver]==1);
-use_iag_receiver = ([estimates.use_ia_receiver]==2);
-
-%% phy measurements
-SNR_dB = zeros(1,NFrames);
-INR_dB = zeros(1,NFrames);
-for i=2:NFrames
- SNR_dB(i-1) = estimates(i).phy_measurements.precoded_cqi_dB(1,1);
- INR_dB(i-1) = estimates(i).phy_measurements.precoded_cqi_dB(1,2);
-end
-SIR_dB = SNR_dB - INR_dB;
-
-%% average
-avg_tp_ia = zeros(28,1);
-avg_tp_iag = zeros(28,1);
-avg_tp_iu = zeros(28,1);
-avg_SIR_ia = zeros(28,1);
-avg_SIR_iag = zeros(28,1);
-num_ia = zeros(28,1);
-num_iag = zeros(28,1);
-num_iu = zeros(28,1);
-
-
-for imcs=16 %[0:11 13:25]
- %%
- mcs_window = (mcs==imcs);
- throughput_iag_mcs = throughput(use_iag_receiver & mcs_window);
- num_iag(imcs+1) = sum(use_iag_receiver & mcs_window);
- avg_tp_iag(imcs+1) = mean(throughput_iag_mcs);
- throughput_ia_mcs = throughput(use_ia_receiver & mcs_window);
- num_ia(imcs+1) = sum(use_ia_receiver & mcs_window);
- avg_tp_ia(imcs+1) = mean(throughput_ia_mcs);
- throughput_iu_mcs = throughput(use_iu_receiver & mcs_window);
- num_iu(imcs+1) = sum(use_iu_receiver & mcs_window);
- avg_tp_iu(imcs+1) = mean(throughput_iu_mcs);
-
- SIR_iu_mcs = SIR_dB(use_iu_receiver & mcs_window);
- SIR_ia_mcs = SIR_dB(use_ia_receiver & mcs_window);
- SIR_iag_mcs = SIR_dB(use_iag_receiver & mcs_window);
- avg_SIR_ia(imcs+1) = mean(SIR_ia_mcs);
- avg_SIR_iag(imcs+1) = mean(SIR_iag_mcs);
-
- isir=0;
- for sir=min(SIR_dB):max(SIR_dB)
- ia(1,isir+1) = sum(use_ia_receiver & mcs_window & (SIR_dB==sir));
- if ia(1,isir+1)>=5
- IA(1,isir+1) = mean(throughput(use_ia_receiver & mcs_window & (SIR_dB==sir)));
- else
- IA(1,isir+1) = NaN;
- end
- iu(1,isir+1) = sum(use_iu_receiver & mcs_window & (SIR_dB==sir));
- if iu(1,isir+1)>=5
- IU(1,isir+1) = mean(throughput(use_iu_receiver & mcs_window & (SIR_dB==sir)));
- else
- IU(1,isir+1) = NaN;
- end
- iag(1,isir+1) = sum(use_iag_receiver & mcs_window & (SIR_dB==sir));
- if iag(1,isir+1)>=5
- IAG(1,isir+1) = mean(throughput(use_iag_receiver & mcs_window & (SIR_dB==sir)));
- else
- IAG(1,isir+1) = NaN;
- end
- isir = isir+1;
- end
-end
-
-
-%% Plot
-f = figure(1);
-hold off
-colormap hot
-bar(0:1:27,[avg_tp_iu avg_tp_ia avg_tp_iag])
-grid on
-xlim([-1 28])
-h = legend('IU Receiver','IA Receiver','IA genie');
-set(h,'FontSize',14);
-xlabel('MCS','FontSize',14)
-ylabel('Throughput [bps]','FontSize',14)
-
-saveas(f, ['tp_vs_mcs' filename '.eps'], 'epsc2')
-%save(filename,'avg_tp*', 'mcs*', 'throughput*', 'use*', 'frame*');
-%csvwrite([filename '.csv'],[(0:1:27).' avg_tp_iu avg_tp_ia avg_tp_iag])
-
-%% Plot2
-plot_style = {'b-*';'r-*';'g-*';'y-*';'k-*';...
- 'b-o';'r-o';'g-o';'y-o';'k-o';...
- 'b-s';'r-s';'g-s';'y-s';'k-s';...
- 'b-d';'r-d';'g-d';'y-d';'k-d';...
- 'b-x';'r-x';'g-x';'y-x';'k-x';...
- 'b-+';'r-+';'g-+';'y-+';'k-+'};
-legend_str = {};
-f = figure(2);
-hold off
-plot(min(SIR_dB):max(SIR_dB),IAG/1000,'r-x','Markersize',10)
-hold on
-plot(min(SIR_dB):max(SIR_dB),IA/1000,'b--o')
-plot(min(SIR_dB):max(SIR_dB),IU/1000,'k:s')
-h=legend('NA-IA','IA','IU','Location','NorthWest');
-set(h,'FontSize',14);
-%for imcs=0:27
- %plot(avg_SIR_ia(imcs+1),avg_tp_ia(imcs+1)-avg_tp_iu(imcs+1),plot_style{imcs+1},'Markersize',10);
- %hold on
- %legend_str{imcs+1} = sprintf('mcs %d',imcs);
-%end
-%legend(legend_str)
-xlabel('SIR [dB]');
-ylabel('Throughput [kbps]')
-saveas(f, ['tp_vs_sir' filename '.eps'], 'epsc2')
-
-%% Plot 3
-f = figure(3);
-hold off
-bar(min(SIR_dB):max(SIR_dB),[ia; iu; iag].')
-h=legend('NA-IA','IA','IU','Location','NorthWest');
-set(h,'FontSize',14);
-xlabel('SIR [dB]');
-ylabel('Occurrence');
-shading flat
-% plot([0:4], X(15:2:23,:).')
-% legend('mcs 14', 'mcs 16', 'mcs 18', 'mcs 20', 'mcs 22')
-% xlabel('SIR [dB]')
-% ylabel('delta TP [bps]')
-saveas(f,['hist_sir' filename '.eps'], 'epsc2')
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m
deleted file mode 100644
index d7f9edd443..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat.m
+++ /dev/null
@@ -1,18 +0,0 @@
-close all
-clear all
-
-root_path = '/emos/AMBIALET/Mode2/';
-
-d = dir(fullfile(root_path, '*MODE2*'));
-dir_names = {d.name};
-
-for d_idx=1:length(dir_names)
- pathname = fullfile(root_path,dir_names{d_idx});
- disp(pathname)
- Concatenate_results_UE_quick
- %Concatenate_results_eNb_quick
-
-end
-
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m
deleted file mode 100644
index 9ba7fb3657..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_UE_comp.m
+++ /dev/null
@@ -1,39 +0,0 @@
-%% This file concatenates all the matlab results files from different folders and then saves the resulting file in root_path folder.
-clear all;
-close all;
-
-start_idx = 1;
-root_path = '/emos/AMBIALET/Mode2/';
-
-d = dir(fullfile(root_path, '*MODE2*'));
-dir_names = {d.name};
-
-%%
-for d_idx=1:length(dir_names)
-
- pathname = fullfile(root_path,dir_names{d_idx})
- try
- temp = load(fullfile(pathname, 'results_cat_UE.mat'));
- catch exception
- disp(exception.getReport)
- disp(sprintf('Detected error in folder %s, skipping it',pathname));
- continue
- end
-% vars = whos('*_cat');
-% nn = {vars.name};
-
- nn = fieldnames(temp);
- if (start_idx==1)
- for n = 1:length(nn)
- eval([nn{n} ' = [];']);
- end
- end
- for n = 1:length(nn)
- eval([nn{n} ' = [' nn{n} ' ' 'temp.' nn{n} '];']);
- end
-
- save(fullfile(root_path,'results_cat_UE.mat'), '*_cat');
- start_idx = start_idx + 1;
-
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m
deleted file mode 100644
index cb5567cab6..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Cat_eNB_comp.m
+++ /dev/null
@@ -1,39 +0,0 @@
-%% This file concatenates all the matlab results files from different folders and then saves the resulting file in root_path folder.
-clear all;
-close all;
-clc
-
-start_idx = 1;
-root_path = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2/';
-
-d = dir(fullfile(root_path, '*mode*'));
-dir_names = {d.name};
-
-for d_idx=1:length(dir_names)
-
- pathname = fullfile(root_path,dir_names{d_idx})
- try
- temp = load(fullfile(pathname, 'results_cat_eNb.mat'));
- catch exception
- disp(exception.getReport)
- disp(sprintf('Detected error in folder %s, skipping it',pathname));
- continue
- end
-% vars = whos('*_cat');
-% nn = {vars.name};
-
- nn = fieldnames(temp);
- if (start_idx==1)
- for n = 1:length(nn)
- eval([nn{n} ' = [];']);
- end
- end
- for n = 1:length(nn)
- eval([nn{n} ' = [' nn{n} ' ' 'temp.' nn{n} '];']);
- end
-
- save(fullfile(root_path,'results_cat_eNb.mat'), '*_cat');
- start_idx = start_idx + 1;
-
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m
deleted file mode 100755
index 0e595605cd..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_UE_quick.m
+++ /dev/null
@@ -1,54 +0,0 @@
-%pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/20100510_mode2_parcours1_part1/';
-
-d = dir(fullfile(pathname, 'data_term3*.mat'));
-d1 = dir(fullfile(pathname, 'data_term3*.EMOS'));
-filenames = {d.name};
-filedates = {d1.date};
-[filedates,idx] = sort(filedates);
-filenames = filenames(idx);
-
-gps_data_cat = [];
-
-%minestimates_cat = [];
-UE_mode_cat = [];
-
-K_fac_cat = [];
-
-%%
-for f = 1:length(filenames)
- s = fullfile(pathname, filenames{f});
- load(s);
-
- nn = fieldnames(throughput);
- if (f==1)
- for n = 1:length(nn)
- eval([nn{n} '_cat = [];']);
- end
- end
- for n = 1:length(nn)
- eval([nn{n} '_cat = [' nn{n} '_cat throughput.' nn{n} '];']);
- end
-
- nn = fieldnames(SNR);
- if (f==1)
- for n = 1:length(nn)
- eval([nn{n} '_cat = [];']);
- end
- end
- for n = 1:length(nn)
- eval([nn{n} '_cat = [' nn{n} '_cat SNR.' nn{n} '];']);
- end
-
- gps_data_cat = cat(2,gps_data_cat,gps_data);
-
- %minestimates_cat = cat(2,minestimates_cat,minestimates);
-
- UE_mode_cat = cat(2,UE_mode_cat,[minestimates.UE_mode]);
-
- K_fac_cat = cat(2,K_fac_cat,K_fac);
-
- save(fullfile(pathname,'results_cat_UE.mat'),'*_cat');
-
-end
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m
deleted file mode 100644
index 86dddbeb28..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Concatenate_results_eNB_quick.m
+++ /dev/null
@@ -1,44 +0,0 @@
-d = dir(fullfile(pathname, 'data_term1*.mat'));
-filenames = {d.name};
-
-gps_data_cat = [];
-
-%minestimates_cat = [];
-
-%K_fac_cat = [];
-
-%%
-for f = 1:length(filenames)
- s = fullfile(pathname, filenames{f});
- load(s);
-
- nn = fieldnames(throughput);
- if (f==1)
- for n = 1:length(nn)
- eval([nn{n} '_cat = [];']);
- end
- end
- for n = 1:length(nn)
- eval([nn{n} '_cat = [' nn{n} '_cat throughput.' nn{n} '];']);
- end
-
- nn = fieldnames(SNR);
- if (f==1)
- for n = 1:length(nn)
- eval([nn{n} '_cat = [];']);
- end
- end
- for n = 1:length(nn)
- eval([nn{n} '_cat = [' nn{n} '_cat SNR.' nn{n} '];']);
- end
-
- gps_data_cat = cat(2,gps_data_cat,gps_data);
-
- %minestimates_cat = cat(2,minestimates_cat,minestimates);
-
- %K_fac_cat = cat(2,K_fac_cat,K_fac);
-
- save(fullfile(pathname,'results_cat_eNB.mat'),'*_cat');
-
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m
deleted file mode 100755
index 7afe7067e5..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Dist_Calc_from_GPS.m
+++ /dev/null
@@ -1,42 +0,0 @@
-function [DISTANCE] = Dist_Calc_from_GPS(LAT1, LONG1, LAT2, LONG2)
-%% Distance Calculator between two GPS coordinates
-% [DISTANCE] = Dist_Calc_from_GPS(LAT1, LONG1, LAT2, LONG2)
-% DISTANCE is in Kilometers.
-% LAT1 is the latitude value of first point in decimal degrees
-% LONG1 is the longitude value of first point in decimal degrees
-% LAT2 is the latitude value of second point in decimal degrees
-% LONG2 is the longitude value of second point in decimal degrees
-%
-% For Example
-%
-% DISTANCE = Dist_Calc_from_GPS(43.62785, 7.052418, 43.629224, 7.040884);
-%
-% Date: 20-04-2010
-% Author: Imran Latif (imran.latif@eurecom.fr)
-% Source: http://www.mathforum.com/library/drmath/view/51711.html
-
-% all converted to radians: degree/57.29577951
-
- A = LAT1/57.29577951;
- B = LONG1/57.29577951;
-
- C = LAT2/57.29577951;
- D = LONG2/57.29577951;
-
-
- if (A == C && B == D)
- DISTANCE = 0;
- else
- if ((sin(A) * sin(C) + cos(A) * cos(C) * cos(B-D)) > 1)
- DISTANCE = 6378 * acos(1);
- else
- DISTANCE = 6378 * acos(sin(A) * sin(C) + cos(A) * cos(C) * cos(B-D));
- end
- end
-
-% disp('distance in Kilometers: ');
-% DISTANCE
-if isnan(DISTANCE)
- DISTANCE = 0;
-end
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m
deleted file mode 100644
index 1a146095ef..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/Rice_Factor_Plot.m
+++ /dev/null
@@ -1,66 +0,0 @@
-%% Concatenating Script
-lat_cat= [];
-lon_cat=[];
-K_fac_cat=[];
-
-root_path = '/media/Expansion_Drive/Mode2/';
-
-d = dir(fullfile(root_path, '*mode2_parcours*'));
-dir_names = {d.name};
-
-% post processing for vehicular measurements
-for i=1:length(dir_names)
-
- pathname = fullfile(root_path,dir_names{i});
-%pathname = '/homes/latif/Mode2_UE_matFiles/';
-
-d = dir(fullfile(pathname, '*_K_factor.mat'));
-filenames = {d.name};
-
-for f = 1:length(filenames)
- s = fullfile(pathname, filenames{f});
- load(s);
-
- lat_cat = [lat_cat [gps_data.latitude]];
- lon_cat = [lon_cat [gps_data.longitude]];
-
- K_fac_cat=[K_fac_cat K_fac];
-
-
-end
-
-end
-save(fullfile(root_path, 'mode2_K_factor.mat'), 'lat_cat', 'lon_cat','K_fac_cat');
-
-mm='cordes';
-
-%% Plotting Script
-in = 0;
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(1:4:end)));
-title('Ricean Factor for First Antenna Pair(H11)')
-saveas(h_fig,fullfile(root_path,'K_factor_h11.jpg'),'jpg')
-
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(2:4:end)));
-title('Ricean Factor for Second Antenna Pair(H12)')
-saveas(h_fig,fullfile(pathname,'K_factor_h12.jpg'),'jpg')
-
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(3:4:end)));
-title('Ricean Factor for third Antenna Pair(H21)')
-saveas(h_fig,fullfile(pathname,'K_factor_h21.jpg'),'jpg')
-
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm,lon_cat,lat_cat,10*log10(K_fac_cat(4:4:end)));
-title('Ricean Factor for Fourth Antenna Pair(H22)')
-saveas(h_fig,fullfile(pathname,'K_factor_h22.jpg'),'jpg')
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m
deleted file mode 100644
index 309bcb0da0..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_dist.m
+++ /dev/null
@@ -1,41 +0,0 @@
-function [dist, dist_travelled] = calc_dist(MS_Lat, MS_Long, site)
-% [dist, dist_traveled] = calc_dist(MS_Lat, MS_Long)
-% Calculates distance from Base Station as well as distance travelled in km.
-% We take the reference of the BS in Cordes
-% Source http://itouchmap.com/latlong.html
-
-if nargin<3
- site = 'cordes';
-end
-
-switch(site)
- case 'cordes'
- BS_Lat = 44.084015;
- BS_Long = 1.965765;
- case 'penne'
- BS_Lat = 44.079722;
- BS_Long = 1.714722;
- case 'ambialet'
- BS_Lat = 43.945;
- BS_Long = 2.373889;
-end
-
-
-dist = zeros(1,length(MS_Lat));
-for i = 1:length(MS_Lat)
- if (MS_Lat(i)~=0 && MS_Long(i)~=0)
- dist(i) = Dist_Calc_from_GPS(BS_Lat, BS_Long, MS_Lat(i), MS_Long(i));
- else
- dist(i) = nan;
- end
-end
-
-dist_travelled = zeros(1,length(MS_Lat));
-for i = 2:length(MS_Lat);
- if (MS_Lat(i-1)~=0 && MS_Long(i-1)~=0 && MS_Lat(i)~=0 && MS_Long(i)~=0)
- dist_travelled(i) = Dist_Calc_from_GPS(MS_Lat(i-1), MS_Long(i-1), MS_Lat(i), MS_Long(i));
- else
- dist_travelled(i) = nan;
- end
-end
-dist_travelled = cumsum(dist_travelled);
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m
deleted file mode 100755
index dfd0458814..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Alamouti.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function [Rate_4Qam_1stRx,Rate_16Qam_1stRx,Rate_64Qam_1stRx,Rate_4Qam_2ndRx,...
- Rate_16Qam_2ndRx,Rate_64Qam_2ndRx, alam_SNR_1stRx_persecond,alam_SNR_2ndRx_persecond,...
- Rate_4Qam_2Rx,Rate_16Qam_2Rx,Rate_64Qam_2Rx,alam_SNR_2Rx_persecond,...
- Rate_SupportedQam_1stRx,Rate_SupportedQam_2ndRx,Rate_SupportedQam_2Rx] = calc_rps_Alamouti(estimates_UE)
-
-capacity_Alamouti_1
-
-alam_SNR_1stRx_persecond = mean(SNR_eNB_1stRx(:));
-alam_SNR_2ndRx_persecond = mean(SNR_eNB_2ndRx(:));
-alam_SNR_2Rx_persecond = mean(SNR_eNB_2Rx(:));
-
-%plot(SNR_eNB1, 'g-x');
-
-%[x y z] = size(chcap_siso_single_stream_4Qam_eNB1);
-
-% Following will hold the data rate of one whole Frame
-
-Frame_DL_sum_4Qam_1stRx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_1stRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_1stRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_1stRx = zeros(1,length(estimates_UE));
-
-Frame_DL_sum_4Qam_2ndRx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_2ndRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_2ndRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_2ndRx = zeros(1,length(estimates_UE));
-
-Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE));
-
-for i = 1:length(estimates_UE)
- %following holds accumulated data rate of 200 resource elements
-
- RS_sum_4Qam_1stRx = sum(chcap_alamouti_4Qam_1stRx(1,:,i));
- RS_sum_16Qam_1stRx = sum(chcap_alamouti_16Qam_1stRx(1,:,i));
- RS_sum_64Qam_1stRx = sum(chcap_alamouti_64Qam_1stRx(1,:,i));
- RS_sum_supportedQam_1stRx = sum(chcap_alamouti_supportedQam_1stRx(1,:,i));
-
- RS_sum_4Qam_2ndRx = sum(chcap_alamouti_4Qam_2ndRx(1,:,i));
- RS_sum_16Qam_2ndRx = sum(chcap_alamouti_16Qam_2ndRx(1,:,i));
- RS_sum_64Qam_2ndRx = sum(chcap_alamouti_64Qam_2ndRx(1,:,i));
- RS_sum_supportedQam_2ndRx = sum(chcap_alamouti_supportedQam_2ndRx(1,:,i));
-
-
- RS_sum_4Qam_2Rx = sum(chcap_alamouti_4Qam_2Rx(1,:,i));
- RS_sum_16Qam_2Rx = sum(chcap_alamouti_16Qam_2Rx(1,:,i));
- RS_sum_64Qam_2Rx = sum(chcap_alamouti_64Qam_2Rx(1,:,i));
- RS_sum_supportedQam_2Rx = sum(chcap_alamouti_supportedQam_2Rx(1,:,i));
-
- % since 4200/200 = 21 groups of 200 resource elements are there in one subframe, so to get
- % the estimate of whole subframe we need to multiply RS_sum_XQam by 21.
-
- Subframe_DL_sum_4Qam_1stRx = RS_sum_4Qam_1stRx * 12;
- Subframe_DL_sum_16Qam_1stRx = RS_sum_16Qam_1stRx * 12;
- Subframe_DL_sum_64Qam_1stRx = RS_sum_64Qam_1stRx * 12;
- Subframe_DL_sum_supportedQam_1stRx = RS_sum_supportedQam_1stRx * 12;
-
- Subframe_DL_sum_4Qam_2ndRx = RS_sum_4Qam_2ndRx * 12;
- Subframe_DL_sum_16Qam_2ndRx = RS_sum_16Qam_2ndRx * 12;
- Subframe_DL_sum_64Qam_2ndRx = RS_sum_64Qam_2ndRx * 12;
- Subframe_DL_sum_supportedQam_2ndRx = RS_sum_supportedQam_2ndRx * 12;
-
-
- Subframe_DL_sum_4Qam_2Rx = RS_sum_4Qam_2Rx * 12;
- Subframe_DL_sum_16Qam_2Rx = RS_sum_16Qam_2Rx * 12;
- Subframe_DL_sum_64Qam_2Rx = RS_sum_64Qam_2Rx * 12;
- Subframe_DL_sum_supportedQam_2Rx = RS_sum_supportedQam_2Rx * 12;
-
- %In LTE Confguration 3 we have 6 downlink subframes in one frame so
-
- Frame_DL_sum_4Qam_1stRx(i) = Subframe_DL_sum_4Qam_1stRx * 6;
- Frame_DL_sum_16Qam_1stRx(i) = Subframe_DL_sum_16Qam_1stRx * 6;
- Frame_DL_sum_64Qam_1stRx(i) = Subframe_DL_sum_64Qam_1stRx * 6;
- Frame_DL_sum_supportedQam_1stRx(i) = Subframe_DL_sum_supportedQam_1stRx * 6;
-
- Frame_DL_sum_4Qam_2ndRx(i) = Subframe_DL_sum_4Qam_2ndRx * 6;
- Frame_DL_sum_16Qam_2ndRx(i) = Subframe_DL_sum_16Qam_2ndRx * 6;
- Frame_DL_sum_64Qam_2ndRx(i) = Subframe_DL_sum_64Qam_2ndRx * 6;
- Frame_DL_sum_supportedQam_2ndRx(i) = Subframe_DL_sum_supportedQam_2ndRx * 6;
-
- Frame_DL_sum_4Qam_2Rx(i) = Subframe_DL_sum_4Qam_2Rx * 6;
- Frame_DL_sum_16Qam_2Rx(i) = Subframe_DL_sum_16Qam_2Rx * 6;
- Frame_DL_sum_64Qam_2Rx(i) = Subframe_DL_sum_64Qam_2Rx * 6;
- Frame_DL_sum_supportedQam_2Rx(i) = Subframe_DL_sum_supportedQam_2Rx * 6;
-end
-
- % add rate of all 100 frames each of 10ms length to compute data rate/sec
- Rate_4Qam_1stRx = sum(Frame_DL_sum_4Qam_1stRx(:));
- Rate_16Qam_1stRx = sum(Frame_DL_sum_16Qam_1stRx(:));
- Rate_64Qam_1stRx = sum(Frame_DL_sum_64Qam_1stRx(:));
- Rate_SupportedQam_1stRx = sum(Frame_DL_sum_supportedQam_1stRx(:));
-
- Rate_4Qam_2ndRx = sum(Frame_DL_sum_4Qam_2ndRx(:));
- Rate_16Qam_2ndRx = sum(Frame_DL_sum_16Qam_2ndRx(:));
- Rate_64Qam_2ndRx = sum(Frame_DL_sum_64Qam_2ndRx(:));
- Rate_SupportedQam_2ndRx = sum(Frame_DL_sum_supportedQam_2ndRx(:));
-
- Rate_4Qam_2Rx = sum(Frame_DL_sum_4Qam_2Rx(:));
- Rate_16Qam_2Rx = sum(Frame_DL_sum_16Qam_2Rx(:));
- Rate_64Qam_2Rx = sum(Frame_DL_sum_64Qam_2Rx(:));
- Rate_SupportedQam_2Rx = sum(Frame_DL_sum_supportedQam_2Rx(:));
-
-
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m
deleted file mode 100755
index 38f75d6a05..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_Beamforming.m
+++ /dev/null
@@ -1,131 +0,0 @@
-function [Rate_4Qam_1Rx_maxq,Rate_16Qam_1Rx_maxq,Rate_64Qam_1Rx_maxq, Rate_4Qam_1Rx_feedbackq,...
- Rate_16Qam_1Rx_feedbackq,Rate_64Qam_1Rx_feedbackq,bmfr_optmq_SNR_1Rx, bmfr_feedbkq_SNR_1Rx,...
- Rate_4Qam_2Rx_maxq,Rate_16Qam_2Rx_maxq,Rate_64Qam_2Rx_maxq, Rate_4Qam_2Rx_feedbackq,...
- Rate_16Qam_2Rx_feedbackq,Rate_64Qam_2Rx_feedbackq,bmfr_optmq_SNR_2Rx,...
- bmfr_feedbkq_SNR_2Rx, Rate_supportedQam_1Rx_maxq, Rate_supportedQam_1Rx_feedbackq,...
- Rate_supportedQam_2Rx_maxq,Rate_supportedQam_2Rx_feedbackq] = calc_rps_Beamforming(estimates_UE)
-
-capacity_Mode6_beamforming_1
-
-
-bmfr_optmq = SNR_eNB_1Rx(1,1:200,:);
-bmfr_optmq_SNR_1Rx = mean(bmfr_optmq(:));
-
-bmfr_optmq = SNR_eNB_2Rx(1,1:200,:);
-bmfr_optmq_SNR_2Rx = mean(bmfr_optmq(:));
-
-bmfr_feedbkq = SNR_eNB_1Rx(1,201:end,:);
-bmfr_feedbkq_SNR_1Rx = mean(bmfr_feedbkq(:));
-
-bmfr_feedbkq = SNR_eNB_2Rx(1,201:end,:);
-bmfr_feedbkq_SNR_2Rx = mean(bmfr_feedbkq(:));
-
-%[x y z] = size(chcap_siso_single_stream_4Qam_1Rx_eNB1);
-
-% Following will hold the data rate of one whole Frame
-
-Frame_DL_sum_4Qam_1Rx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_1Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_1Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_1Rx = zeros(1,length(estimates_UE));
-
-Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE));
-for i = 1:length(estimates_UE)
-
- %following holds accumulated data rate of 200 resource elements
- % first 200 values corresponds to q which maximizes the over all sum
- % rate, and next 200 values correspond to the calculations which are
- % done on the basis of fedback q
- RS_sum_4Qam_1Rx_maxq = sum(chcap_beamforming_4Qam_1Rx(1,1:200,i));
- RS_sum_16Qam_1Rx_maxq = sum(chcap_beamforming_16Qam_1Rx(1,1:200,i));
- RS_sum_64Qam_1Rx_maxq = sum(chcap_beamforming_64Qam_1Rx(1,1:200,i));
- RS_sum_supportedQam_1Rx_maxq = sum(chcap_beamforming_supportedQam_1Rx(1,1:200,i));
-
- RS_sum_4Qam_2Rx_maxq = sum(chcap_beamforming_4Qam_2Rx(1,1:200,i));
- RS_sum_16Qam_2Rx_maxq = sum(chcap_beamforming_16Qam_2Rx(1,1:200,i));
- RS_sum_64Qam_2Rx_maxq = sum(chcap_beamforming_64Qam_2Rx(1,1:200,i));
- RS_sum_supportedQam_2Rx_maxq = sum(chcap_beamforming_supportedQam_2Rx(1,1:200,i));
-
- RS_sum_4Qam_1Rx_feedbackq = sum(chcap_beamforming_4Qam_1Rx(1,201:end,i));
- RS_sum_16Qam_1Rx_feedbackq = sum(chcap_beamforming_16Qam_1Rx(1,201:end,i));
- RS_sum_64Qam_1Rx_feedbackq = sum(chcap_beamforming_64Qam_1Rx(1,201:end,i));
- RS_sum_supportedQam_1Rx_feedbackq = sum(chcap_beamforming_supportedQam_1Rx(1,201:end,i));
-
- RS_sum_4Qam_2Rx_feedbackq = sum(chcap_beamforming_4Qam_2Rx(1,201:end,i));
- RS_sum_16Qam_2Rx_feedbackq = sum(chcap_beamforming_16Qam_2Rx(1,201:end,i));
- RS_sum_64Qam_2Rx_feedbackq = sum(chcap_beamforming_64Qam_2Rx(1,201:end,i));
- RS_sum_supportedQam_2Rx_feedbackq = sum(chcap_beamforming_supportedQam_2Rx(1,201:end,i));
-
- % since 4200/200 = 21 groups of 200 resource elements are there in one subframe, so to get
- % the estimate of whole subframe we need to multiply RS_sum_XQam_1Rx by 21.
-
- Subframe_DL_sum_4Qam_1Rx_maxq = RS_sum_4Qam_1Rx_maxq * 12;
- Subframe_DL_sum_16Qam_1Rx_maxq = RS_sum_16Qam_1Rx_maxq * 12;
- Subframe_DL_sum_64Qam_1Rx_maxq = RS_sum_64Qam_1Rx_maxq * 12;
- Subframe_DL_sum_supportedQam_1Rx_maxq = RS_sum_supportedQam_1Rx_maxq * 12;
-
- Subframe_DL_sum_4Qam_1Rx_feedbackq = RS_sum_4Qam_1Rx_feedbackq * 12;
- Subframe_DL_sum_16Qam_1Rx_feedbackq = RS_sum_16Qam_1Rx_feedbackq * 12;
- Subframe_DL_sum_64Qam_1Rx_feedbackq = RS_sum_64Qam_1Rx_feedbackq * 12;
- Subframe_DL_sum_supportedQam_1Rx_feedbackq = RS_sum_supportedQam_1Rx_feedbackq * 12;
-
- Subframe_DL_sum_4Qam_2Rx_maxq = RS_sum_4Qam_2Rx_maxq * 12;
- Subframe_DL_sum_16Qam_2Rx_maxq = RS_sum_16Qam_2Rx_maxq * 12;
- Subframe_DL_sum_64Qam_2Rx_maxq = RS_sum_64Qam_2Rx_maxq * 12;
- Subframe_DL_sum_supportedQam_2Rx_maxq = RS_sum_supportedQam_2Rx_maxq * 12;
-
- Subframe_DL_sum_4Qam_2Rx_feedbackq = RS_sum_4Qam_2Rx_feedbackq * 12;
- Subframe_DL_sum_16Qam_2Rx_feedbackq = RS_sum_16Qam_2Rx_feedbackq * 12;
- Subframe_DL_sum_64Qam_2Rx_feedbackq = RS_sum_64Qam_2Rx_feedbackq * 12;
- Subframe_DL_sum_supportedQam_2Rx_feedbackq = RS_sum_supportedQam_2Rx_feedbackq * 12;
-
- %In LTE Confguration 3 we have 6 downlink subframes in one frame so
-
- Frame_DL_sum_4Qam_1Rx_feedbackq(i) = Subframe_DL_sum_4Qam_1Rx_feedbackq * 6;
- Frame_DL_sum_16Qam_1Rx_feedbackq(i) = Subframe_DL_sum_16Qam_1Rx_feedbackq * 6;
- Frame_DL_sum_64Qam_1Rx_feedbackq(i) = Subframe_DL_sum_64Qam_1Rx_feedbackq * 6;
- Frame_DL_sum_supportedQam_1Rx_feedbackq(i) = Subframe_DL_sum_supportedQam_1Rx_feedbackq * 6;
-
- Frame_DL_sum_4Qam_1Rx_maxq(i) = Subframe_DL_sum_4Qam_1Rx_maxq * 6;
- Frame_DL_sum_16Qam_1Rx_maxq(i) = Subframe_DL_sum_16Qam_1Rx_maxq * 6;
- Frame_DL_sum_64Qam_1Rx_maxq(i) = Subframe_DL_sum_64Qam_1Rx_maxq * 6;
- Frame_DL_sum_supportedQam_1Rx_maxq(i) = Subframe_DL_sum_supportedQam_1Rx_maxq * 6;
-
- Frame_DL_sum_4Qam_2Rx_feedbackq(i) = Subframe_DL_sum_4Qam_2Rx_feedbackq * 6;
- Frame_DL_sum_16Qam_2Rx_feedbackq(i) = Subframe_DL_sum_16Qam_2Rx_feedbackq * 6;
- Frame_DL_sum_64Qam_2Rx_feedbackq(i) = Subframe_DL_sum_64Qam_2Rx_feedbackq * 6;
- Frame_DL_sum_supportedQam_2Rx_feedbackq(i) = Subframe_DL_sum_supportedQam_2Rx_feedbackq * 6;
-
- Frame_DL_sum_4Qam_2Rx_maxq(i) = Subframe_DL_sum_4Qam_2Rx_maxq * 6;
- Frame_DL_sum_16Qam_2Rx_maxq(i) = Subframe_DL_sum_16Qam_2Rx_maxq * 6;
- Frame_DL_sum_64Qam_2Rx_maxq(i) = Subframe_DL_sum_64Qam_2Rx_maxq * 6;
- Frame_DL_sum_supportedQam_2Rx_maxq(i) = Subframe_DL_sum_supportedQam_2Rx_maxq * 6;
-end
-
- % add rate of all 100 frames each of 10ms length to compute data rate/sec
- Rate_4Qam_1Rx_maxq = sum(Frame_DL_sum_4Qam_1Rx_maxq(:));
- Rate_16Qam_1Rx_maxq = sum(Frame_DL_sum_16Qam_1Rx_maxq(:));
- Rate_64Qam_1Rx_maxq = sum(Frame_DL_sum_64Qam_1Rx_maxq(:));
- Rate_supportedQam_1Rx_maxq = sum(Frame_DL_sum_supportedQam_1Rx_maxq(:));
-
- Rate_4Qam_1Rx_feedbackq = sum(Frame_DL_sum_4Qam_1Rx_feedbackq(:));
- Rate_16Qam_1Rx_feedbackq = sum(Frame_DL_sum_16Qam_1Rx_feedbackq(:));
- Rate_64Qam_1Rx_feedbackq = sum(Frame_DL_sum_64Qam_1Rx_feedbackq(:));
- Rate_supportedQam_1Rx_feedbackq = sum(Frame_DL_sum_supportedQam_1Rx_feedbackq(:));
-
- Rate_4Qam_2Rx_maxq = sum(Frame_DL_sum_4Qam_2Rx_maxq(:));
- Rate_16Qam_2Rx_maxq = sum(Frame_DL_sum_16Qam_2Rx_maxq(:));
- Rate_64Qam_2Rx_maxq = sum(Frame_DL_sum_64Qam_2Rx_maxq(:));
- Rate_supportedQam_2Rx_maxq = sum(Frame_DL_sum_supportedQam_2Rx_maxq(:));
-
- Rate_4Qam_2Rx_feedbackq = sum(Frame_DL_sum_4Qam_2Rx_feedbackq(:));
- Rate_16Qam_2Rx_feedbackq = sum(Frame_DL_sum_16Qam_2Rx_feedbackq(:));
- Rate_64Qam_2Rx_feedbackq = sum(Frame_DL_sum_64Qam_2Rx_feedbackq(:));
- Rate_supportedQam_2Rx_feedbackq = sum(Frame_DL_sum_supportedQam_2Rx_feedbackq(:));
-
-
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m
deleted file mode 100755
index a3b06036f3..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO.m
+++ /dev/null
@@ -1,108 +0,0 @@
-function [Rate_4Qam_1stRx,Rate_16Qam_1stRx,Rate_64Qam_1stRx,Rate_4Qam_2ndRx,...
- Rate_16Qam_2ndRx,Rate_64Qam_2ndRx,siso_SNR_1stRx_persecond,...
- siso_SNR_2ndRx_persecond,Rate_4Qam_2Rx,Rate_16Qam_2Rx,Rate_64Qam_2Rx,...
- siso_SNR_2Rx_persecond,Rate_supportedQam_1stRx,Rate_supportedQam_2ndRx, Rate_supportedQam_2Rx] = calc_rps_SISO(estimates_UE)
-
-capacity_siso_1
-
-[x y z] = size(chcap_siso_single_stream_4Qam_1stRx);
-
-siso_SNR_1stRx_persecond = mean(SNR_eNB_1stRx(:));
-siso_SNR_2ndRx_persecond = mean(SNR_eNB_2ndRx(:));
-siso_SNR_2Rx_persecond = mean(SNR_eNB_2Rx(:));
-% figure
-% hold on
-% plot(SNR_eNB1, 'b-x');
-
-% Following will hold the data rate of one whole Frame
-
-Frame_DL_sum_4Qam_1stRx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_1stRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_1stRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_1stRx = zeros(1,length(estimates_UE));
-
-Frame_DL_sum_4Qam_2ndRx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_2ndRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_2ndRx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_2ndRx = zeros(1,length(estimates_UE));
-
-Frame_DL_sum_4Qam_2Rx = zeros(1, length(estimates_UE));
-Frame_DL_sum_16Qam_2Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_64Qam_2Rx = zeros(1,length(estimates_UE));
-Frame_DL_sum_supportedQam_2Rx = zeros(1,length(estimates_UE));
-
-for i = 1:length(estimates_UE)
- %following holds accumulated data rate of 200 resource elements
-
- RS_sum_4Qam_1stRx = sum(chcap_siso_single_stream_4Qam_1stRx(1,:,i));
- RS_sum_16Qam_1stRx = sum(chcap_siso_single_stream_16Qam_1stRx(1,:,i));
- RS_sum_64Qam_1stRx = sum(chcap_siso_single_stream_64Qam_1stRx(1,:,i));
- RS_sum_supportedQam_1stRx = sum(chcap_siso_single_stream_supportedQam_1stRx(1,:,i));
-
- RS_sum_4Qam_2ndRx = sum(chcap_siso_single_stream_4Qam_2ndRx(1,:,i));
- RS_sum_16Qam_2ndRx = sum(chcap_siso_single_stream_16Qam_2ndRx(1,:,i));
- RS_sum_64Qam_2ndRx = sum(chcap_siso_single_stream_64Qam_2ndRx(1,:,i));
- RS_sum_supportedQam_2ndRx = sum(chcap_siso_single_stream_supportedQam_2ndRx(1,:,i));
-
- RS_sum_4Qam_2Rx = sum(chcap_siso_single_stream_4Qam_2Rx(1,:,i));
- RS_sum_16Qam_2Rx = sum(chcap_siso_single_stream_16Qam_2Rx(1,:,i));
- RS_sum_64Qam_2Rx = sum(chcap_siso_single_stream_64Qam_2Rx(1,:,i));
- RS_sum_supportedQam_2Rx = sum(chcap_siso_single_stream_supportedQam_2Rx(1,:,i));
- % The number of RE availiable for the DLSCH is 9 OFDM symbols * 300
- % subcarriers - 300 pilots = 2400.
- % since 2400/200 = 12 groups of 200 resource elements are there in one subframe, so to get
- % the estimate of whole subframe we need to multiply RS_sum_XQam by 12.
-
- Subframe_DL_sum_4Qam_1stRx = RS_sum_4Qam_1stRx * 12;
- Subframe_DL_sum_16Qam_1stRx = RS_sum_16Qam_1stRx * 12;
- Subframe_DL_sum_64Qam_1stRx = RS_sum_64Qam_1stRx * 12;
- Subframe_DL_sum_supportedQam_1stRx = RS_sum_supportedQam_1stRx * 12;
-
- Subframe_DL_sum_4Qam_2ndRx = RS_sum_4Qam_2ndRx * 12;
- Subframe_DL_sum_16Qam_2ndRx = RS_sum_16Qam_2ndRx * 12;
- Subframe_DL_sum_64Qam_2ndRx = RS_sum_64Qam_2ndRx * 12;
- Subframe_DL_sum_supportedQam_2ndRx = RS_sum_supportedQam_2ndRx * 12;
-
- Subframe_DL_sum_4Qam_2Rx = RS_sum_4Qam_2Rx * 12;
- Subframe_DL_sum_16Qam_2Rx = RS_sum_16Qam_2Rx * 12;
- Subframe_DL_sum_64Qam_2Rx = RS_sum_64Qam_2Rx * 12;
- Subframe_DL_sum_supportedQam_2Rx = RS_sum_supportedQam_2Rx * 12;
-
- %In LTE Confguration 3 we have 6 downlink subframes in one frame so
-
- Frame_DL_sum_4Qam_1stRx(i) = Subframe_DL_sum_4Qam_1stRx * 6;
- Frame_DL_sum_16Qam_1stRx(i) = Subframe_DL_sum_16Qam_1stRx * 6;
- Frame_DL_sum_64Qam_1stRx(i) = Subframe_DL_sum_64Qam_1stRx * 6;
-
- Frame_DL_sum_supportedQam_1stRx(i) = Subframe_DL_sum_supportedQam_1stRx * 6;
-
- Frame_DL_sum_4Qam_2ndRx(i) = Subframe_DL_sum_4Qam_2ndRx * 6;
- Frame_DL_sum_16Qam_2ndRx(i) = Subframe_DL_sum_16Qam_2ndRx * 6;
- Frame_DL_sum_64Qam_2ndRx(i) = Subframe_DL_sum_64Qam_2ndRx * 6;
- Frame_DL_sum_supportedQam_2ndRx(i) = Subframe_DL_sum_supportedQam_2ndRx * 6;
-
- Frame_DL_sum_4Qam_2Rx(i) = Subframe_DL_sum_4Qam_2Rx * 6;
- Frame_DL_sum_16Qam_2Rx(i) = Subframe_DL_sum_16Qam_2Rx * 6;
- Frame_DL_sum_64Qam_2Rx(i) = Subframe_DL_sum_64Qam_2Rx * 6;
- Frame_DL_sum_supportedQam_2Rx(i) = Subframe_DL_sum_supportedQam_2Rx * 6;
-end
-
- % add rate of all 100 frames each of 10ms length to compute data rate/sec
- Rate_4Qam_1stRx = sum(Frame_DL_sum_4Qam_1stRx(:));
- Rate_16Qam_1stRx = sum(Frame_DL_sum_16Qam_1stRx(:));
- Rate_64Qam_1stRx = sum(Frame_DL_sum_64Qam_1stRx(:));
- Rate_supportedQam_1stRx = sum(Frame_DL_sum_supportedQam_1stRx(:));
-
- Rate_4Qam_2ndRx = sum(Frame_DL_sum_4Qam_2ndRx(:));
- Rate_16Qam_2ndRx = sum(Frame_DL_sum_16Qam_2ndRx(:));
- Rate_64Qam_2ndRx = sum(Frame_DL_sum_64Qam_2ndRx(:));
- Rate_supportedQam_2ndRx = sum(Frame_DL_sum_supportedQam_2ndRx(:));
-
- Rate_4Qam_2Rx = sum(Frame_DL_sum_4Qam_2Rx(:));
- Rate_16Qam_2Rx = sum(Frame_DL_sum_16Qam_2Rx(:));
- Rate_64Qam_2Rx = sum(Frame_DL_sum_64Qam_2Rx(:));
- Rate_supportedQam_2Rx = sum(Frame_DL_sum_supportedQam_2Rx(:));
-
-
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m
deleted file mode 100644
index a1dcdfe5d9..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_SISO_UL.m
+++ /dev/null
@@ -1,93 +0,0 @@
-function [Rate_4Qam,Rate_16Qam,Rate_64Qam, siso_SNR_persecond] = calc_rps_SISO_UL(estimates_eNB, nb_rx, version, avg)
-% Channel Capacity of SISO system
-% [Rate_4Qam,Rate_16Qam,Rate_64Qam, siso_SNR_persecond] = calc_rps_SISO_UL(estimates_eNB, nb_rx, version, avg)
-%
-% set version=0 if using measurements with the storage bug.
-% All measurements before the 10.6.2010 did not store the UL properly.
-% In fact only the first 133 carriers of the 1st Rx antenna of sector 0
-% was stored. So if version==0 and sector~=0, we return 0. If version==0
-% and sector==0, we extrapolate and assume the same signal on both RX
-% antennas.
-%
-% set avg=1 if averaging should be performed over all estimates
-
-
-load 'SISO.mat';
-
-if version<1
- srs_len = 113;
-else
- srs_len = 144;
-end
-
-chcap_siso_single_stream_4Qam = zeros(1, 3*srs_len, length(estimates_eNB));
-chcap_siso_single_stream_16Qam = zeros(1, 3*srs_len, length(estimates_eNB));
-chcap_siso_single_stream_64Qam = zeros(1, 3*srs_len, length(estimates_eNB));
-
-SNR_eNB = zeros(1,3*srs_len,length(estimates_eNB));
-
-for est=1:length(estimates_eNB)
-
- % choose the right sector
- if (version<1)
- sector = estimates_eNB(est).eNb_UE_stats(3,1).sector;
- if sector~=0
- chcap_siso_single_stream_4Qam(1, :, est) = nan;
- chcap_siso_single_stream_16Qam(1, :, est) = nan;
- chcap_siso_single_stream_64Qam(1, :, est) = nan;
- continue
- end
- else
- sector = estimates_eNB(est).eNb_UE_stats(1,1).sector;
- end
-
- N0 = double(estimates_eNB(est).phy_measurements_eNb(sector+1).n0_power(1));
-
- H_abs_sqr = double(estimates_eNB(est).channel(1:2:end,:,:,1:3)).^2 + ...
- double(estimates_eNB(est).channel(2:2:end,:,:,1:3)).^2;
-
- % extract 144 carriers with constitute SRS
- if version<1
- H_abs_sqr = reshape(H_abs_sqr,450,2,2,3);
- ind = [363:2:450 2:2:138 ];
- H_abs_sqr_tot = sum(H_abs_sqr(ind,ones(1,nb_rx),1,:),2);
- else
- ind = [363:2:512 2:2:138];
- H_abs_sqr_tot = sum(H_abs_sqr(ind,1:nb_rx,sector+1,:),2);
- end
-
- SNR_eNB(1, :, est) = 10*log10(H_abs_sqr_tot(:)/N0);
-
-% SNR_eNB(isnan(SNR_eNB)) = 0;
-%
-% index = (SNR_eNB(1, :, est) < -20);
-% SNR_eNB(1, index, est) = -20;
-%
-% index = (SNR_eNB(1, :, est) > 40);
-% SNR_eNB(1, index, est) = 40;
-
- chcap_siso_single_stream_4Qam(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB(1, :, est),'nearest','extrap');
-
- chcap_siso_single_stream_16Qam(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB(1, :, est),'nearest','extrap');
-
- chcap_siso_single_stream_64Qam(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB(1, :, est),'nearest','extrap');
-
-end
-
-% for the UL we have 300 subcarriers times 9 symbols (2 are DRS, 1 is SRS)
-if avg
- siso_SNR_persecond = mean(SNR_eNB(:));
- Rate_4Qam = sum(sum(chcap_siso_single_stream_4Qam,2)*300/srs_len*9,3);
- Rate_16Qam = sum(sum(chcap_siso_single_stream_16Qam,2)*300/srs_len*9,3);
- Rate_64Qam = sum(sum(chcap_siso_single_stream_64Qam,2)*300/srs_len*9,3);
-else
- siso_SNR_persecond = squeeze(mean(SNR_eNB,2));
- Rate_4Qam = squeeze(sum(chcap_siso_single_stream_4Qam,2)*300/srs_len*9);
- Rate_16Qam = squeeze(sum(chcap_siso_single_stream_16Qam,2)*300/srs_len*9);
- Rate_64Qam = squeeze(sum(chcap_siso_single_stream_64Qam,2)*300/srs_len*9);
-end
-
-
-
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m
deleted file mode 100644
index e519b83b1a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_alamouti_2.m
+++ /dev/null
@@ -1,41 +0,0 @@
-function [Ratepersec_4Qam_alamouti,Ratepersec_16Qam_alamouti,Ratepersec_64Qam_alamouti] = ...
- calc_rps_alamouti_2(estimates_UE_1)
-
-% this function calculates the MU-MIMO rate of the two users
-% first we have to determine the compatible subbands (based on PMI feedback)
-% on the compatible subbands we should use the MU-MIMO capacity, on the
-% others we use the single layer precoding capacity and select the user
-% with the higher capacity
-
-capacity_mode2_alamouti
-
-Frame_DL_sum_4Qam = zeros(1, 100);
-Frame_DL_sum_16Qam = zeros(1, 100);
-Frame_DL_sum_64Qam = zeros(1, 100);
-
-
-for i = 1:length(estimates_UE_1)
- RS_sum_4Qam = sum(chcap_alamouti(1,:,i));
- RS_sum_16Qam = sum(chcap_alamouti_16(1,:,i));
- RS_sum_64Qam = sum(chcap_alamouti_64(1,:,i));
- % Since RS_sum_4Qam contains the throughput for the 4 symobols and there
- % are total 12 symbols in exteded cyclic prefix subframe of LTE out of
- % which 3 are used for control signals and rest of the 9 are used for
- % DLSCH with 12*25 = 300 cell specific reference signals in between
- % them. so basically we need to measure the throughput for in total 8
- % symbols.
-
- Subframe_DL_sum_4Qam = (RS_sum_4Qam * 2);
- Subframe_DL_sum_16Qam = (RS_sum_16Qam * 2);
- Subframe_DL_sum_64Qam = (RS_sum_64Qam * 2);
- %In LTE TDD Confguration 3 we have 6 downlink subframes in one frame so
- Frame_DL_sum_4Qam(i) = Subframe_DL_sum_4Qam * 6;
- Frame_DL_sum_16Qam(i) = Subframe_DL_sum_16Qam * 6;
- Frame_DL_sum_64Qam(i) = Subframe_DL_sum_64Qam * 6;
-
-end
-% add rate of all 100 frames each of 10ms length to compute data rate/sec
-Ratepersec_4Qam_alamouti = sum(Frame_DL_sum_4Qam(:));
- Ratepersec_16Qam_alamouti = sum(Frame_DL_sum_16Qam(:));
- Ratepersec_64Qam_alamouti = sum(Frame_DL_sum_64Qam(:));
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m
deleted file mode 100644
index e9f7127a27..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_mu_mimo.m
+++ /dev/null
@@ -1,33 +0,0 @@
-function [Ratepersec_4Qam_MUMIMO] = ...
- calc_rps_mu_mimo(estimates_UE_1)
-
-% this function calculates the MU-MIMO rate of the two users
-% first we have to determine the compatible subbands (based on PMI feedback)
-% on the compatible subbands we should use the MU-MIMO capacity, on the
-% others we use the single layer precoding capacity and select the user
-% with the higher capacity
-
-capacity_mode5_mumimo
-
-Frame_DL_sum_4Qam = zeros(1, 100);
-
-for i = 1:length(estimates_UE_1)
- RS_sum_4Qam = sum(chcap_mumimo(1,:,i));
-
- % Since RS_sum_4Qam contains the throughput for the 4 symobols and there
- % are total 12 symbols in exteded cyclic prefix subframe of LTE out of
- % which 3 are used for control signals and rest of the 9 are used for
- % DLSCH with 12*25 = 300 cell specific reference signals in between
- % them. so basically we need to measure the throughput for in total 8
- % symbols.
- Subframe_DL_sum_4Qam = (RS_sum_4Qam * 2);
-
- %In LTE TDD Confguration 3 we have 6 downlink subframes in one frame so
- Frame_DL_sum_4Qam(i) = Subframe_DL_sum_4Qam * 6;
-
-end
-% add rate of all 100 frames each of 10ms length to compute data rate/sec
-Ratepersec_4Qam_MUMIMO = sum(Frame_DL_sum_4Qam(:));
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m
deleted file mode 100644
index 187bf7c6ef..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/calc_rps_siso_2.m
+++ /dev/null
@@ -1,40 +0,0 @@
-function [Ratepersec_4Qam_siso,Ratepersec_16Qam_siso,Ratepersec_64Qam_siso ] = ...
- calc_rps_siso_2(estimates_UE_1)
-
-% this function calculates the MU-MIMO rate of the two users
-% first we have to determine the compatible subbands (based on PMI feedback)
-% on the compatible subbands we should use the MU-MIMO capacity, on the
-% others we use the single layer precoding capacity and select the user
-% with the higher capacity
-
-capacity_mode1_siso
-
-Frame_DL_sum_4Qam = zeros(1, 100);
-Frame_DL_sum_16Qam = zeros(1, 100);
-Frame_DL_sum_64Qam = zeros(1, 100);
-
-for i = 1:length(estimates_UE_1)
- RS_sum_4Qam = sum(chcap_siso(1,:,i));
- RS_sum_16Qam = sum(chcap_siso_16(1,:,i));
- RS_sum_64Qam = sum(chcap_siso_64(1,:,i));
- % Since RS_sum_4Qam contains the throughput for the 4 symobols and there
- % are total 12 symbols in exteded cyclic prefix subframe of LTE out of
- % which 3 are used for control signals and rest of the 9 are used for
- % DLSCH with 12*25 = 300 cell specific reference signals in between
- % them. so basically we need to measure the throughput for in total 8
- % symbols.
- Subframe_DL_sum_4Qam = (RS_sum_4Qam * 2);
- Subframe_DL_sum_16Qam = (RS_sum_16Qam * 2);
- Subframe_DL_sum_64Qam = (RS_sum_64Qam * 2);
-
- %In LTE TDD Confguration 3 we have 6 downlink subframes in one frame so
- Frame_DL_sum_4Qam(i) = Subframe_DL_sum_4Qam * 6;
- Frame_DL_sum_16Qam(i) = Subframe_DL_sum_16Qam * 6;
- Frame_DL_sum_64Qam(i) = Subframe_DL_sum_64Qam * 6;
-end
-% add rate of all 100 frames each of 10ms length to compute data rate/sec
-Ratepersec_4Qam_siso = sum(Frame_DL_sum_4Qam(:));
-Ratepersec_16Qam_siso = sum(Frame_DL_sum_16Qam(:));
-Ratepersec_64Qam_siso = sum(Frame_DL_sum_64Qam(:));
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m
deleted file mode 100755
index 46d4f64557..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Alamouti_1.m
+++ /dev/null
@@ -1,205 +0,0 @@
-%Channel Capacity of Alamouti MIMO system
-
-load 'SISO.mat';
-
-[x, y, z] = size(estimates_UE(1).channel);
-
-z = x/4;
-
-%MultiAntenna_Rx = 1; % 0 for Single antenna
- % 1 for Multi Antenna (2 antennas here)
-h = zeros(1,z);
-
-chcap_alamouti_4Qam_1stRx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_16Qam_1stRx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_64Qam_1stRx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_supportedQam_1stRx = zeros(1,length(h), length(estimates_UE));
-
-chcap_alamouti_4Qam_2ndRx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_16Qam_2ndRx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_64Qam_2ndRx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_supportedQam_2ndRx = zeros(1,length(h), length(estimates_UE));
-
-chcap_alamouti_4Qam_2Rx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_16Qam_2Rx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_64Qam_2Rx = zeros(1,length(h), length(estimates_UE));
-chcap_alamouti_supportedQam_2Rx = zeros(1,length(h), length(estimates_UE));
-
-SNR_eNB_1stRx = zeros(1,length(h), length(estimates_UE));
-SNR_eNB_2ndRx = zeros(1,length(h), length(estimates_UE));
-SNR_eNB_2Rx = zeros(1,length(h), length(estimates_UE));
-
-for est=1:length(estimates_UE)
-
- NO_1stRx = double(estimates_UE(est).phy_measurements(11).n0_power(1));
- NO_2ndRx = double(estimates_UE(est).phy_measurements(11).n0_power(2));
-
- % for checking the connected Sector
- H = estimates_UE(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind] = max(Hs);
-
-
- h11_eNB = double(estimates_UE(est).channel(2*z+1:2:end,1,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,1,ind));
- h12_eNB = double(estimates_UE(est).channel(2*z+1:2:end,2,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,2,ind));
- h21_eNB = double(estimates_UE(est).channel(2*z+1:2:end,3,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,3,ind));
- h22_eNB = double(estimates_UE(est).channel(2*z+1:2:end,4,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,4,ind));
-
-
- %SNR calculation for Alamouti Scheme
- SNR_eNB_1stRx(1, :, est) = 10*log10(((abs(h11_eNB).^2) + (abs(h21_eNB).^2))/NO_1stRx);
- SNR_eNB_2ndRx(1, :, est) = 10*log10(((abs(h12_eNB).^2) + (abs(h22_eNB).^2))/NO_2ndRx);
- SNR_eNB_2Rx(1, :, est) = 10*log10((((abs(h11_eNB).^2) + (abs(h12_eNB).^2))/NO_1stRx) + (((abs(h21_eNB).^2) + (abs(h22_eNB).^2))/NO_2ndRx));
-
-
-
- nan_in_SNR = isnan(SNR_eNB_1stRx);
- SNR_eNB_1stRx(nan_in_SNR) = 0;
-
- nan_in_SNR = isnan(SNR_eNB_2ndRx);
- SNR_eNB_2ndRx(nan_in_SNR) = 0;
-
- nan_in_SNR = isnan(SNR_eNB_2Rx);
- SNR_eNB_2Rx(nan_in_SNR) = 0;
-
- chcap_alamouti_4Qam_1stRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap');
- chcap_alamouti_4Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap');
- chcap_alamouti_4Qam_2Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- chcap_alamouti_16Qam_1stRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap');
- chcap_alamouti_16Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap');
- chcap_alamouti_16Qam_2Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- chcap_alamouti_64Qam_1stRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap');
- chcap_alamouti_64Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap');
- chcap_alamouti_64Qam_2Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- %%
-
-
- while (min(SNR_eNB_1stRx(1, :, est)) < -20)
- [value, index] = min(SNR_eNB_1stRx(1, :, est));
- SNR_eNB_1stRx(1, index, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_1stRx(1, :, est)) > 40)
- [value, index] = max(SNR_eNB_1stRx(1, :, est));
- SNR_eNB_1stRx(1, index, est) = 40;
- continue
-
- end
- while (min(SNR_eNB_2ndRx(1, :, est)) < -20)
- [value, index] = min(SNR_eNB_2ndRx(1, :, est));
- SNR_eNB_2ndRx(1, index, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_2ndRx(1, :, est)) > 40)
- [value, index] = max(SNR_eNB_2ndRx(1, :, est));
- SNR_eNB_2ndRx(1, index, est) = 40;
- continue
-
- end
-
- while (min(SNR_eNB_2Rx(1, :, est)) < -20)
- [value, index] = min(SNR_eNB_2Rx(1, :, est));
- SNR_eNB_2Rx(1, index, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_2Rx(1, :, est)) > 40)
- [value, index] = max(SNR_eNB_2Rx(1, :, est));
- SNR_eNB_2Rx(1, index, est) = 40;
- continue
- end
-
- MI = log2(abs((1 + SNR_eNB_1stRx(1,:,est))));
- C1 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_2ndRx(1,:,est))));
- C2 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_2Rx(1,:,est))));
- C3 = mean(MI);
-
- if C1 <2
- for c=1:z
- chcap_alamouti_supportedQam_1stRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
- end
- else
- if C1 >2 && C1 < 4
- for c=1:z
- chcap_alamouti_supportedQam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
- end
- else
- for c=1:z
- chcap_alamouti_supportedQam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
- end
-
- end
- end
-
- if C2 <2
- for c=1:z
- chcap_alamouti_supportedQam_2ndRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
- end
- else
- if C2 >2 && C2 < 4
- for c=1:z
- chcap_alamouti_supportedQam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
- end
- else
- for c=1:z
- chcap_alamouti_supportedQam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
- end
- end
- end
-
- if C3 <2
- for c=1:z
- chcap_alamouti_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- if C3 >2 && C3 < 4
- for c=1:z
- chcap_alamouti_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- for c=1:z
- chcap_alamouti_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- end
- end
-% for const=1:3
-% if const ==1
-% for c=1:length(h)
-% chcap_alamouti_4Qam_1stRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
-% chcap_alamouti_4Qam_2ndRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
-% chcap_alamouti_4Qam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
-% end
-% else if const==2
-% for c=1:length(h)
-% chcap_alamouti_16Qam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
-% chcap_alamouti_16Qam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
-% chcap_alamouti_16Qam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
-% end
-% else
-% for c=1:length(h)
-% chcap_alamouti_64Qam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
-% chcap_alamouti_64Qam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
-% chcap_alamouti_64Qam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
-% end
-% end
-% end
-% end
-end
-% if MultiAntenna_Rx == 1
-% save 'chcap_alamouti_MultiAntennaUE_Measurements.mat' 'chcap_alamouti*' 'SNR_eNB*'
-% else
-% save 'chcap_alamouti_SingleAntennaUE_Measurements.mat' 'chcap_alamouti*' 'SNR_eNB*'
-% end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m
deleted file mode 100755
index 21e1e3b5b1..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_Mode6_beamforming_1.m
+++ /dev/null
@@ -1,229 +0,0 @@
-%Channel Capacity for LTE Mode 6 Beamforming
-load 'SISO.mat'
-
-[x, y, z] = size(estimates_UE(1).channel);
-
-z = x/4;
-h = zeros(1,2*z);
-
-%precoding matrix values q
-qi = [1 -1 1i -1i];
-
-chcap_beamforming_4Qam_1Rx = zeros(1,length(h), length(estimates_UE));
-chcap_beamforming_16Qam_1Rx = zeros(1,length(h), length(estimates_UE));
-chcap_beamforming_64Qam_1Rx = zeros(1,length(h), length(estimates_UE));
-chcap_beamforming_supportedQam_1Rx = zeros(1,length(h), length(estimates_UE));
-
-chcap_beamforming_4Qam_2Rx = zeros(1,length(h), length(estimates_UE));
-chcap_beamforming_16Qam_2Rx = zeros(1,length(h), length(estimates_UE));
-chcap_beamforming_64Qam_2Rx = zeros(1,length(h), length(estimates_UE));
-chcap_beamforming_supportedQam_2Rx = zeros(1,length(h), length(estimates_UE));
-
-SNR_eNB_1Rx = zeros(1,length(h), length(estimates_UE));
-SNR_eNB_2Rx = zeros(1,length(h), length(estimates_UE));
-
-index(1).subband = [1:8 51:58 101:108 151:158];
-index(2).subband = [9:16 59:66 109:116 159:166];
-index(3).subband = [17:24 67:74 117:124 167:174];
-index(4).subband = [25:32 75:82 125:132 175:182];
-index(5).subband = [33:40 83:90 133:140 183:190];
-index(6).subband = [41:48 91:98 141:148 191:198];
-index(7).subband = [49 50 99 100 149 150 199 200];
-
-for est=1:length(estimates_UE)
-
- NO_1Rx = double(estimates_UE(est).phy_measurements(11).n0_power(1));
- NO_2ndRx = double(estimates_UE(est).phy_measurements(11).n0_power(2));
-
- % for checking the connected Sector
- H = estimates_UE(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind] = max(Hs);
- antenna_index = estimates_UE(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- h11_eNB = double(estimates_UE(est).channel(2*z+1:2:end,1,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,1,ind));
- h12_eNB = double(estimates_UE(est).channel(2*z+1:2:end,2,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,2,ind));
- h21_eNB = double(estimates_UE(est).channel(2*z+1:2:end,3,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,3,ind));
- h22_eNB = double(estimates_UE(est).channel(2*z+1:2:end,4,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,4,ind));
-
- for i=1:1:7
-
- for qq=1:4
-
- Rx1(qq).eNB = abs(h11_eNB(index(i).subband) + qi(qq)*h21_eNB(index(i).subband)).^2;
- Rx2(qq).eNB = abs(h12_eNB(index(i).subband) + qi(qq)*h22_eNB(index(i).subband)).^2;
-
- end
-
-
- for ii=1:4
-
- SNR_eNB_q_1Rx(ii).snr = 10*log10((Rx1(ii).eNB)/NO_1Rx);
- sum_eNB_q_1Rx(ii) = sum(SNR_eNB_q_1Rx(ii).snr);
-
- SNR_eNB_q_2Rx(ii).snr = 10*log10(((Rx1(ii).eNB)/NO_1Rx) + ((Rx2(ii).eNB)/NO_2ndRx));
- sum_eNB_q_2Rx(ii) = sum(SNR_eNB_q_2Rx(ii).snr);
-
- end
-
- [value_eNB_1Rx, index_eNB_1Rx] = max(sum_eNB_q_1Rx);
- [value_eNB_2Rx, index_eNB_2Rx] = max(sum_eNB_q_2Rx);
-
- %SNR calculation
- SNR_eNB_1Rx(1, (index(i).subband), est) = SNR_eNB_q_1Rx(index_eNB_1Rx).snr;
- SNR_eNB_2Rx(1, (index(i).subband), est) = SNR_eNB_q_2Rx(index_eNB_2Rx).snr;
- end
-
-
- % after feedback in 3rd subframe
-
- Rx111 = [];
- Rx222 = [];
-
- % q = double(estimates_UE(est).phy_measurements(1).subband_pmi_re((antenna_index(i)+1),i,ind))+1j*double(estimates_UE(est).phy_measurements(1).subband_pmi_im((antenna_index(i)+1),i,ind));
- % q = double(estimates_UE(est).phy_measurements(1).subband_pmi_re(ind,:,1))+1j*double(estimates_UE(est).phy_measurements(1).subband_pmi_im(ind,:,1));
- for i =1:1:7
-
- q = double(estimates_UE(est).phy_measurements(1).subband_pmi_re((antenna_index(i)+1),i,1))+1j*double(estimates_UE(est).phy_measurements(1).subband_pmi_im((antenna_index(i)+1),i,1));
-
- qq(i) = quantize_q(q);
-
- Rx11 = abs(h11_eNB(index(i).subband) + qq(i)*h21_eNB(index(i).subband)).^2;
- Rx22 = abs(h12_eNB(index(i).subband) + qq(i)*h22_eNB(index(i).subband)).^2;
-
- Rx111 = [Rx111 Rx11'];
- Rx222 = [Rx222 Rx22'];
- end
-
- SNR_eNB_1Rx(1, 201:end, est) = 10*log10((Rx111)/NO_1Rx);
- SNR_eNB_2Rx(1, 201:end, est) = 10*log10((Rx111/NO_1Rx) + (Rx222/NO_2ndRx));
-
- nan_in_SNR = isnan(SNR_eNB_1Rx);
- SNR_eNB_1Rx(nan_in_SNR) = 0;
-
- nan_in_SNR = isnan(SNR_eNB_2Rx);
- SNR_eNB_2Rx(nan_in_SNR) = 0;
-
-
- chcap_beamforming_4Qam_1Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_1Rx(1, :, est),'nearest','extrap');
- chcap_beamforming_4Qam_2Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- chcap_beamforming_16Qam_1Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_1Rx(1, :, est),'nearest','extrap');
- chcap_beamforming_16Qam_2Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- chcap_beamforming_64Qam_1Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_1Rx(1, :, est),'nearest','extrap');
- chcap_beamforming_64Qam_2Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- %%
- while (min(SNR_eNB_1Rx(1, :, est)) < -20)
- [value, index1] = min(SNR_eNB_1Rx(1, :, est));
- SNR_eNB_1Rx(1, index1, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_1Rx(1, :, est)) > 40)
- [value, index1] = max(SNR_eNB_1Rx(1, :, est));
- SNR_eNB_1Rx(1, index1, est) = 40;
- continue
-
- end
-
- while (min(SNR_eNB_2Rx(1, :, est)) < -20)
- [value, index1] = min(SNR_eNB_2Rx(1, :, est));
- SNR_eNB_2Rx(1, index1, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_2Rx(1, :, est)) > 40)
- [value, index1] = max(SNR_eNB_2Rx(1, :, est));
- SNR_eNB_2Rx(1, index1, est) = 40;
- continue
- end
-
- MI = log2(abs((1 + SNR_eNB_1Rx(1,1:200,est))));
- C1 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_1Rx(1,201:end,est))));
- C2 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_2Rx(1,1:200,est))));
- C3 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_2Rx(1,201:end,est))));
- C4 = mean(MI);
-
-
-% MI = log2(abs((1 + SNR_eNB_2ndRx(1,:,est))));
-% C2 = mean(MI);
-
-
- if C1 <2
- for c=1:z
- chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est))));
- end
- else
- if C1 >2 && C1 < 4
- for c=1:z
- chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est))));
- end
- else
- for c=1:z
- chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est))));
- end
-
- end
- end
-
- if C2 <2
- for c=201:2*z
- chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est))));
- end
- else
- if C2 >2 && C2 < 4
- for c=201:2*z
- chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est))));
- end
- else
- for c=201:2*z
- chcap_beamforming_supportedQam_1Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1Rx(1, c, est))));
- end
- end
- end
-
- if C3 <2
- for c=1:z
- chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- if C3 >2 && C3 < 4
- for c=1:z
- chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- for c=1:z
- chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
-
- end
- end
-
- if C4 <2
- for c=201:2*z
- chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- if C4 >2 && C4 < 4
- for c=201:2*z
- chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- for c=201:2*z
- chcap_beamforming_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- end
- end
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m
deleted file mode 100644
index 6ab8d78de8..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_mode5_mumimo.m
+++ /dev/null
@@ -1,340 +0,0 @@
-global mumimo_count beamforming_count
-
-load 'table_LTE_MODE_4_5.mat';
-load 'SISO.mat';
-
-[x, y, z] = size(estimates_UE_1(1).channel);
-
-estimates_UE1 = estimates_UE_1(1,:);
-estimates_UE2 = estimates_UE_1(2,:);
-
-chcap_mumimo = zeros(1,1200, length(estimates_UE1));
-chcap_mumimo_ue1 = zeros(1,1200, length(estimates_UE1));
-chcap_mumimo_ue2 = zeros(1,1200, length(estimates_UE1));
-subband_indices = 1:48:288;
-subband_indices(7) = 289;
-subband_indices(8) = 301;
-for est=1:length(estimates_UE1)
-
- try
- N0_1Rx = (double(estimates_UE1(est).phy_measurements(11).n0_power(1)));
- N0_2ndRx = (double(estimates_UE2(est).phy_measurements(11).n0_power(1)));
-
- catch exception
- disp(exception.getReport)
- fprintf('Detected error in reading N0_2ndRx, Making it zero');
- N0_2ndRx = 0;
- continue
- end
-
- H = estimates_UE1(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind1] = max(Hs);
- antenna_index1 = estimates_UE1(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- H = estimates_UE2(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind2] = max(Hs);
- antenna_index2 = estimates_UE2(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- %h11_eNB1 = double([estimates_UE1(est).channel(z+1:end,1,ind1).real]) + 1j*double([estimates_UE1(est).channel(z+1:end,1,ind1).imag]);
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,1,ind1),'int16');
- h11_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h11_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h11_eNB1_srs1 = interp1(1:6:300,h11_eNB1(1:50),1:1:300,'linear','extrap');
- h11_eNB1_srs2 = interp1(4:6:300,h11_eNB1(51:100),1:1:300,'linear','extrap');
- h11_eNB1_srs3 = interp1(1:6:300,h11_eNB1(101:150),1:1:300,'linear','extrap');
- h11_eNB1_srs4 = interp1(4:6:300,h11_eNB1(151:200),1:1:300,'linear','extrap');
-
- h11_eNB1_comp = [h11_eNB1_srs1' h11_eNB1_srs2' h11_eNB1_srs3' h11_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,2,ind1),'int16');
-
- h12_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h12_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h12_eNB1_srs1 = interp1(1:6:300,h12_eNB1(1:50),1:1:300,'linear','extrap');
- h12_eNB1_srs2 = interp1(4:6:300,h12_eNB1(51:100),1:1:300,'linear','extrap');
- h12_eNB1_srs3 = interp1(1:6:300,h12_eNB1(101:150),1:1:300,'linear','extrap');
- h12_eNB1_srs4 = interp1(4:6:300,h12_eNB1(151:200),1:1:300,'linear','extrap');
-
- h12_eNB1_comp = [h12_eNB1_srs1' h12_eNB1_srs2' h12_eNB1_srs3' h12_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,3,ind1),'int16');
- h21_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h21_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h21_eNB1_srs1 = interp1(4:6:300,h21_eNB1(1:50),1:1:300,'linear','extrap');
- h21_eNB1_srs2 = interp1(1:6:300,h21_eNB1(51:100),1:1:300,'linear','extrap');
- h21_eNB1_srs3 = interp1(4:6:300,h21_eNB1(101:150),1:1:300,'linear','extrap');
- h21_eNB1_srs4 = interp1(1:6:300,h21_eNB1(151:200),1:1:300,'linear','extrap');
-
- h21_eNB1_comp = [h21_eNB1_srs1' h21_eNB1_srs2' h21_eNB1_srs3' h21_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,4,ind1),'int16');
- h22_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h22_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h22_eNB1_srs1 = interp1(4:6:300,h22_eNB1(1:50),1:1:300,'linear','extrap');
- h22_eNB1_srs2 = interp1(1:6:300,h22_eNB1(51:100),1:1:300,'linear','extrap');
- h22_eNB1_srs3 = interp1(4:6:300,h22_eNB1(101:150),1:1:300,'linear','extrap');
- h22_eNB1_srs4 = interp1(1:6:300,h22_eNB1(151:200),1:1:300,'linear','extrap');
-
- h22_eNB1_comp = [h22_eNB1_srs1' h22_eNB1_srs2' h22_eNB1_srs3' h22_eNB1_srs4']';
-
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,1,ind2),'int16');
-
- h11_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h11_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h11_eNB2_srs1 = interp1(1:6:300,h11_eNB2(1:50),1:1:300,'linear','extrap');
- h11_eNB2_srs2 = interp1(4:6:300,h11_eNB2(51:100),1:1:300,'linear','extrap');
- h11_eNB2_srs3 = interp1(1:6:300,h11_eNB2(101:150),1:1:300,'linear','extrap');
- h11_eNB2_srs4 = interp1(4:6:300,h11_eNB2(151:200),1:1:300,'linear','extrap');
-
- h11_eNB2_comp = [h11_eNB2_srs1' h11_eNB2_srs2' h11_eNB2_srs3' h11_eNB2_srs4']';
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,2,ind2),'int16');
- h12_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h12_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h12_eNB2_srs1 = interp1(1:6:300,h12_eNB2(1:50),1:1:300,'linear','extrap');
- h12_eNB2_srs2 = interp1(4:6:300,h12_eNB2(51:100),1:1:300,'linear','extrap');
- h12_eNB2_srs3 = interp1(1:6:300,h12_eNB2(101:150),1:1:300,'linear','extrap');
- h12_eNB2_srs4 = interp1(4:6:300,h12_eNB2(151:200),1:1:300,'linear','extrap');
-
- h12_eNB2_comp = [h12_eNB2_srs1' h12_eNB2_srs2' h12_eNB2_srs3' h12_eNB2_srs4']';
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,3,ind2),'int16');
- h21_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h21_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
- h21_eNB2_srs1 = interp1(4:6:300,h21_eNB2(1:50),1:1:300,'linear','extrap');
- h21_eNB2_srs2 = interp1(1:6:300,h21_eNB2(51:100),1:1:300,'linear','extrap');
- h21_eNB2_srs3 = interp1(4:6:300,h21_eNB2(101:150),1:1:300,'linear','extrap');
- h21_eNB2_srs4 = interp1(1:6:300,h21_eNB2(151:200),1:1:300,'linear','extrap');
-
- h21_eNB2_comp = [h21_eNB2_srs1' h21_eNB2_srs2' h21_eNB2_srs3' h21_eNB2_srs4']';
-
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,4,ind2),'int16');
- h22_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h22_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h22_eNB2_srs1 = interp1(4:6:300,h22_eNB2(1:50),1:1:300,'linear','extrap');
- h22_eNB2_srs2 = interp1(1:6:300,h22_eNB2(51:100),1:1:300,'linear','extrap');
- h22_eNB2_srs3 = interp1(4:6:300,h22_eNB2(101:150),1:1:300,'linear','extrap');
- h22_eNB2_srs4 = interp1(1:6:300,h22_eNB2(151:200),1:1:300,'linear','extrap');
-
- h22_eNB2_comp = [h22_eNB2_srs1' h22_eNB2_srs2' h22_eNB2_srs3' h22_eNB2_srs4']';
-
-
-
- % plot(10*log10(abs(h12_eNB2).^2),'go');
- % pause
- %end
- %if 0
- q1=zeros(1,7);
- q2=zeros(1,7);
- pmi_ue1=zeros(1,7);
- pmi_ue2=zeros(1,7);
-
- for i = 1:7
- if (antenna_index1(i) == 0)
- h11 = h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- h21 = h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- q1(i) = mean(conj(h11(:)).*h21(:));
- pmi_ue1(i) = quantize_q(q1(i));
- else
- h12 = h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- h22 = h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- q1(i) = mean(conj(h12(:)).*h22(:));
- pmi_ue1(i) = quantize_q(q1(i));
- end
-
- if (antenna_index2(i) == 0)
- h11 = h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- h21 = h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- q2(i) = mean(conj(h11(:)).*h21(:));
- pmi_ue2(i) = quantize_q(q2(i));
- else
- h12 = h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- h22 = h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1));
- q2(i) = mean(conj(h12(:)).*h22(:));
- pmi_ue2(i) = quantize_q(q2(i));
- end
-
-
- % q1(i) = double(estimates_UE1(est).phy_measurements(11).subband_pmi_re((antenna_index1(i)+1),i,1))+1j*double(estimates_UE1(est).phy_measurements(11).subband_pmi_im((antenna_index1(i)+1),i,1));
- % q2(i) = double(estimates_UE2(est).phy_measurements(11).subband_pmi_re((antenna_index2(i)+1),i,1))+1j*double(estimates_UE2(est).phy_measurements(11).subband_pmi_im((antenna_index2(i)+1),i,1));
- end
-
-
-
- %q_ext; % calculating the maximizing precoder
-
-
- %qq1 = q_ue1;
- %qq2 = q_ue2;
- Rx_ue1 = [];
- Rx_ue2 = [];
- Ry_ue1 = [];
- Ry_ue2 = [];
- chcap_mumimo_1 = [];
- chcap_mumimo_2 = [];
- chcap_mumimo_3 = [];
- for i = 1:1:7
- SNR_eNB_ue1=zeros(1,((subband_indices(i+1) - subband_indices(i))*4));
- SNR_eNB_ue2=zeros(1,((subband_indices(i+1) - subband_indices(i))*4));
- Rx_ue1 = [];
- Rx_ue2 = [];
- Ry_ue1 = [];
- Ry_ue2 = [];
- if (mumimo_on == 0)
-
- ran(i)=0;
- else
- qq11(i) = map_q(pmi_ue1(i));
- qq22(i) = map_q(pmi_ue2(i));
-
- if ((qq11(i)==0 && qq22(i)==1) || (qq11(i)==1 && qq22(i)==0) || (qq11(i)==2 && qq22(i)==3) || (qq11(i)==3 && qq22(i)==2))
- ran(i) = 1;
- else
- ran(i) = 0;
- end
- end
-
- if(ran(i)==1) %MU-MIMO
-
-
- mumimo_count = mumimo_count +1;
-
- %for i =1:1:7
-
- if(antenna_index1(i) == 0)
- Rx_ue1 = (abs(h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- Ry_ue1 = (abs(h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue1(i)*h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- else
- Rx_ue1 = (abs(h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- Ry_ue1 = (abs(h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue1(i)*h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- end
-
- if(antenna_index2(i) == 0)
- Rx_ue2 = (abs(h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- Ry_ue2 = (abs(h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue2(i)*h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- else
- Rx_ue2 = (abs(h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- Ry_ue2 = (abs(h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) - pmi_ue2(i)*h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)./2;
- end
-
- % Rx1_ue1 = [Rx1_ue1 Rx_ue1'];
- % Rx1_ue2 = [Rx1_ue2 Rx_ue2'];
- %
- % Ry1_ue1 = [Ry1_ue1 Ry_ue1'];
- % Ry1_ue2 = [Ry1_ue2 Ry_ue2'];
- %Rx222_ue2 = [Rx222_ue2 Rx22_ue2'];
-
- %end
-
- SNR_eNB_ue1 = 10*log10((Rx_ue1(:)/N0_1Rx));
- nan_in_SNR = isnan(SNR_eNB_ue1);
- SNR_eNB_ue1(nan_in_SNR) = 0;
- SNR_eNB_ue1(SNR_eNB_ue1 < 0) = 0;
- SNR_eNB_ue1(SNR_eNB_ue1 > 50) = 50;
-
- SNR_eNB_ue2 = 10*log10((Rx_ue2(:)/N0_2ndRx));
- nan_in_SNR = isnan(SNR_eNB_ue2);
- SNR_eNB_ue2(nan_in_SNR) = 0;
- SNR_eNB_ue2(SNR_eNB_ue2 < 0) = 0;
- SNR_eNB_ue2(SNR_eNB_ue2 > 50) = 50;
- %******************************************************************
- %% Red Zone
- I_ue1 = Ry_ue1(:)./Rx_ue1(:);
- I_ue2 = Ry_ue2(:)./Rx_ue2(:);
- % plot(I_ue1);
- % pause
-
- I_ue1 = round(I_ue1*10+1);
- I_ue2 = round(I_ue2*10+1);
-
- I_ue1(isnan(I_ue1))=11;
- I_ue2(isnan(I_ue2))=11;
-
- I_ue1(I_ue1>11) = 11;
- I_ue2(I_ue2>11) = 11;
- cap_mumimo_ue1 = [];
- cap_mumimo_ue2 = [];
- % Read Tables here ... MUMIMO QPSK-QPSK
- for c=1:((subband_indices(i+1) - subband_indices(i))*4)
- cap_mumimo_ue1(c) = chcap_mode5_4_4_user1_cat(I_ue1(c), round(SNR_eNB_ue1(c))+1);
- cap_mumimo_ue2(c) = chcap_mode5_4_4_user2_cat(I_ue2(c), round(SNR_eNB_ue2(c))+1);
- end
-
- %interp1(SNR_4_4_cat,chcap_mode5_4_4_user1_cat, SNR_eNB_ue1(1, :, est),'nearest','extrap');
- %chcap_mumimo_ue2(1, :, est) = interp1(SNR_4_4_cat,chcap_mode5_4_4_user2_cat, SNR_eNB_ue2(1, :, est),'nearest','extrap');
-
- chcap_mumimo_1 = [chcap_mumimo_1 (cap_mumimo_ue1 + cap_mumimo_ue2)];
- chcap_mumimo_2 = [chcap_mumimo_2 cap_mumimo_ue1];
- chcap_mumimo_3 = [chcap_mumimo_3 cap_mumimo_ue2];
- %******************************************************************
- %
- % call capacity_Mode5_mumimo_1 with parameters Channels, qq1,qq2, and
- % antenna index1 and 2
- else
- % select the user with the stronger precoded SNR and calculate its
- % capacity
- beamforming_count = beamforming_count + 1;
- if (antenna_index1(i) == 0)
- Rx1 = (abs(h11_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h21_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)';
- else
- Rx1 = (abs(h12_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue1(i)*h22_eNB1_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)';
- end
-
- SNR_eNB_ue1 = 10*log10((Rx1(:))/N0_1Rx);
-
- nan_in_SNR = isnan(SNR_eNB_ue1);
- SNR_eNB_ue1(nan_in_SNR) = 0;
-
- if ((antenna_index2(i) == 0))
- Rx2 = (abs(h11_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h21_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)';
- else
- Rx2 = (abs(h12_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1)) + pmi_ue2(i)*h22_eNB2_comp(:,(subband_indices(i):subband_indices(i+1)-1))).^2)';
- end
-
- SNR_eNB_ue2 = 10*log10((Rx2(:))/N0_2ndRx);
-
- nan_in_SNR = isnan(SNR_eNB_ue2);
- SNR_eNB_ue2(nan_in_SNR) = 0;
-
- if(sum(SNR_eNB_ue2) < sum(SNR_eNB_ue1))
- tmp = interp1(SNR,c_siso_4Qam,SNR_eNB_ue1','nearest','extrap');
- chcap_mumimo_1 = [chcap_mumimo_1 tmp];
- chcap_mumimo_2 = [chcap_mumimo_2 interp1(SNR,c_siso_16Qam,SNR_eNB_ue1','nearest','extrap')];
- chcap_mumimo_3 = [chcap_mumimo_3 interp1(SNR,c_siso_64Qam,SNR_eNB_ue1','nearest','extrap')];
- if(mumimo_on)
- chcap_mumimo_2 = [chcap_mumimo_2 tmp];
- chcap_mumimo_3 = [chcap_mumimo_3 interp1(SNR,c_siso_4Qam,SNR_eNB_ue2','nearest','extrap')];
- end
- else
- tmp = interp1(SNR,c_siso_4Qam,SNR_eNB_ue2','nearest','extrap');
- chcap_mumimo_1 = [chcap_mumimo_1 tmp];
- chcap_mumimo_2 = [chcap_mumimo_2 interp1(SNR,c_siso_16Qam,SNR_eNB_ue2','nearest','extrap')];
- chcap_mumimo_3 = [chcap_mumimo_3 interp1(SNR,c_siso_64Qam,SNR_eNB_ue2','nearest','extrap')];
- if(mumimo_on)
- chcap_mumimo_3 = [chcap_mumimo_3 tmp];
- chcap_mumimo_2 = [chcap_mumimo_2 interp1(SNR,c_siso_4Qam,SNR_eNB_ue1','nearest','extrap')];
-
- end
- end
- end
-
- end
- chcap_mumimo(1,:,est) = chcap_mumimo_1;
-% if (mumimo_on)
- chcap_mumimo_ue1(1,:,est) = chcap_mumimo_2;
- chcap_mumimo_ue2(1,:,est) = chcap_mumimo_3;
-% end
-end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m
deleted file mode 100755
index 62e78323ac..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/capacity_siso_1.m
+++ /dev/null
@@ -1,235 +0,0 @@
-%Channel Capacity of SISO system
-
-load 'SISO.mat';
-[x, y, z] = size(estimates_UE(1).channel);
-
-z = x/4;
-
-chcap_siso_single_stream_4Qam_2Rx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_16Qam_2Rx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_64Qam_2Rx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_supportedQam_2Rx = zeros(1,z, length(estimates_UE));
-
-chcap_siso_single_stream_4Qam_1stRx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_16Qam_1stRx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_64Qam_1stRx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_supportedQam_1stRx = zeros(1,z, length(estimates_UE));
-
-chcap_siso_single_stream_4Qam_2ndRx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_16Qam_2ndRx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_64Qam_2ndRx = zeros(1,z, length(estimates_UE));
-chcap_siso_single_stream_supportedQam_2ndRx = zeros(1,z, length(estimates_UE));
-
-SNR_eNB_1stRx = zeros(1,z, length(estimates_UE));
-SNR_eNB_2ndRx = zeros(1,z, length(estimates_UE));
-SNR_eNB_2Rx = zeros(1,z, length(estimates_UE));
-
-I = [1 0;0 1];
-for est=1:length(estimates_UE)
-
- NO_1stRx = double(estimates_UE(est).phy_measurements(11).n0_power(1));
- NO_2ndRx = double(estimates_UE(est).phy_measurements(11).n0_power(2));
-
- % for checking the connected Sector
- H = estimates_UE(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind] = max(Hs);
-
-
- h11_eNB = double(estimates_UE(est).channel(2*z+1:2:end,1,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,1,ind));
- h12_eNB = double(estimates_UE(est).channel(2*z+1:2:end,2,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,2,ind));
- h21_eNB = double(estimates_UE(est).channel(2*z+1:2:end,3,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,3,ind));
- h22_eNB = double(estimates_UE(est).channel(2*z+1:2:end,4,ind)) + 1j*double(estimates_UE(est).channel(2*z+2:2:end,4,ind));
-
-
- % version 1: using tabulated values
- SNR_eNB_1stRx(1, :, est) = 10*log10(abs(h11_eNB + h21_eNB).^2/NO_1stRx);
-
- SNR_eNB_2ndRx(1, :, est) = 10*log10(abs(h12_eNB + h22_eNB).^2/NO_2ndRx);
-
- SNR_eNB_2Rx(1, :, est) = 10*log10(((abs(h11_eNB + h21_eNB).^2)/NO_1stRx)+((abs(h12_eNB + h22_eNB).^2)/NO_2ndRx));
-
- nan_in_SNR = isnan(SNR_eNB_1stRx);
- SNR_eNB_1stRx(nan_in_SNR) = 0;
-
- nan_in_SNR = isnan(SNR_eNB_2ndRx);
- SNR_eNB_2ndRx(nan_in_SNR) = 0;
-
- nan_in_SNR = isnan(SNR_eNB_2Rx);
- SNR_eNB_2Rx(nan_in_SNR) = 0;
-
- chcap_siso_single_stream_4Qam_1stRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap');
- chcap_siso_single_stream_4Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap');
- chcap_siso_single_stream_4Qam_2Rx(1, :, est) = interp1(SNR,c_siso_4Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- chcap_siso_single_stream_16Qam_1stRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap');
- chcap_siso_single_stream_16Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap');
- chcap_siso_single_stream_16Qam_2Rx(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- chcap_siso_single_stream_64Qam_1stRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_1stRx(1, :, est),'nearest','extrap');
- chcap_siso_single_stream_64Qam_2ndRx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2ndRx(1, :, est),'nearest','extrap');
- chcap_siso_single_stream_64Qam_2Rx(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB_2Rx(1, :, est),'nearest','extrap');
-
- %%
-% CH = [h11_eNB'; h12_eNB'; h21_eNB'; h22_eNB'];
-%
-% Hh = reshape(CH,2,2,200);
-%
-% %for mi=1:200
-%
-% % MI(mi) = log2(det((I + SNR_eNB_1stRx(1,mi,est)*(Hh(:,:,mi)*(conj(Hh(:,:,mi)))'))));
-%
-% %end
-
-
- while (min(SNR_eNB_1stRx(1, :, est)) < -20 )
- [value, index] = min(SNR_eNB_1stRx(1, :, est));
- SNR_eNB_1stRx(1, index, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_1stRx(1, :, est)) > 40)
- [value, index] = max(SNR_eNB_1stRx(1, :, est));
- SNR_eNB_1stRx(1, index, est) = 40;
- continue
-
- end
-
-
- while (min(SNR_eNB_2ndRx(1, :, est)) < -20 )
- [value, index] = min(SNR_eNB_2ndRx(1, :, est));
- SNR_eNB_2ndRx(1, index, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_2ndRx(1, :, est)) > 40)
- [value, index] = max(SNR_eNB_2ndRx(1, :, est));
- SNR_eNB_2ndRx(1, index, est) = 40;
- continue
-
- end
-
- while (min(SNR_eNB_2Rx(1, :, est)) < -20 )
- [value, index] = min(SNR_eNB_2Rx(1, :, est));
- SNR_eNB_2Rx(1, index, est) = -20;
- continue
-
- end
-
- while (max(SNR_eNB_2Rx(1, :, est)) > 40)
- [value, index] = max(SNR_eNB_2Rx(1, :, est));
- SNR_eNB_2Rx(1, index, est) = 40;
- continue
-
- end
-
- MI = log2(abs((1 + SNR_eNB_1stRx(1,:,est))));
- C1 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_2ndRx(1,:,est))));
- C2 = mean(MI);
-
- MI = log2(abs((1 + SNR_eNB_2Rx(1,:,est))));
- C3 = mean(MI);
-
-
- if C1 <=2
- for c=1:z
- chcap_siso_single_stream_supportedQam_1stRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
- end
- else
- if C1 >2 && C1 <= 4
- for c=1:z
- chcap_siso_single_stream_supportedQam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
- end
- else
- for c=1:z
- chcap_siso_single_stream_supportedQam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
- end
-
- end
- end
-
- if C2 <=2
- for c=1:z
- chcap_siso_single_stream_supportedQam_2ndRx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
- end
- else
- if C2 >2 && C2 <= 4
- for c=1:z
- chcap_siso_single_stream_supportedQam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
- end
- else
- for c=1:z
- chcap_siso_single_stream_supportedQam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
- end
- end
- end
-
- if C3 <=2
- for c=1:z
- chcap_siso_single_stream_supportedQam_2Rx(1, c, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- if C3 >2 && C3 <= 4
- for c=1:z
- chcap_siso_single_stream_supportedQam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- else
- for c=1:z
- chcap_siso_single_stream_supportedQam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
- end
- end
- end
-
-% MI = log2(abs((1 + SNR_eNB_2Rx(1,:,est))));
-% C3 = mean(MI);
-% nc = [NO_1stRx 0;0 NO_2ndRx];
-%
-% for mi = 1:200
-%
-% MII(mi) = log2(abs(det((I + (conj(Hh(:,:,mi)))'*nc*Hh(:,:,mi)))));
-%
-% end
-%
-% C4 = mean(MI)
-% for const=1:3
-% if const ==1
-% for c=1:z
-
-
-
-% chcap_siso_single_stream_16Qam(1, :, est) = interp1(SNR,c_siso_16Qam,SNR_eNB(1, :, est),'nearest','extrap');
-%
-% chcap_siso_single_stream_64Qam(1, :, est) = interp1(SNR,c_siso_64Qam,SNR_eNB(1, :, est),'nearest','extrap');
-%
-% chcap_siso_single_stream_4Qam_1stRx(1, :, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_1stRx(1, :, est))));
-% chcap_siso_single_stream_4Qam_2ndRx(1, :, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2ndRx(1, :, est))));
-% chcap_siso_single_stream_4Qam_2Rx(1, :, est) = c_siso_4Qam(find(SNR == round(SNR_eNB_2Rx(1, :, est))));
-%
-% end
-% else if const==2
-% for c=1:z
-%
-% chcap_siso_single_stream_16Qam_1stRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
-% chcap_siso_single_stream_16Qam_2ndRx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
-% chcap_siso_single_stream_16Qam_2Rx(1, c, est) = c_siso_16Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
-%
-% end
-% else
-% for c=1:z
-%
-% chcap_siso_single_stream_64Qam_1stRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_1stRx(1, c, est))));
-% chcap_siso_single_stream_64Qam_2ndRx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2ndRx(1, c, est))));
-% chcap_siso_single_stream_64Qam_2Rx(1, c, est) = c_siso_64Qam(find(SNR == round(SNR_eNB_2Rx(1, c, est))));
-%
-% end
-% end
-% end
-% end
-end
-
-%save 'chcap_SISO_Measurements.mat' 'chcap_siso*' 'SNR_eNB*'
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m
deleted file mode 100644
index 996034098f..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/coded2uncoded.m
+++ /dev/null
@@ -1,34 +0,0 @@
-function uncoded_rps = coded2uncoded(coded_rps,direction)
-% uncoded_rps = coded2uncoded(coded_rps);
-%
-% This function computes the uncoded rate per second for a coded rate. It
-% basically caps the rate to the one given in the table below.
-%
-% The maximum uncoded throughput is derived as follows. Each DL subframe
-% contains 3600 REs out of which 400 REs are used for pilots and 800 for
-% the PDCCH, leaving 2400 REs for the DLSCH. Each UL subframe has 3600 RE,
-% out of which 600 are used for pilots and 300 for the SRS, leving 2700 REs
-% for the ULSCH. Assuming TDD frame configuration 3 (6 DL subframes, 3 UL
-% subframes, 1 special subframe), this results in a maximum throughput of
-%
-% DL UL
-% QPSK: 2.88 Mbps 1.62 Mbps
-% 16QAM: 5.76 Mbps 3.24 Mbps
-% 64QAM: 8.64 Mbps 4.86 Mbps
-
-uncoded_rps = coded_rps;
-
-switch (direction)
- case 'DL'
- uncoded_rps(coded_rps>0 & coded_rps<=2.88e6) = 2.88e6;
- uncoded_rps(coded_rps>2.88e6 & coded_rps<=5.76e6) = 5.76e6;
- uncoded_rps(coded_rps>5.76e6) = 8.64e6;
- case 'UL'
- uncoded_rps(coded_rps>0 & coded_rps<=1.62e6) = 1.62e6;
- uncoded_rps(coded_rps>1.62e6 & coded_rps<=3.24e6) = 3.24e6;
- uncoded_rps(coded_rps>3.24e6) = 4.86e6;
- otherwise
- error('Unknown direction')
-end
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m
deleted file mode 100755
index 1cd33f5858..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_1.m
+++ /dev/null
@@ -1,448 +0,0 @@
-function [H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(filename, NFrames_max, decimation, is_eNb, version)
-%
-% EMOS Single User Import Filter
-%
-% [H, H_fq, estimates, gps_data, NFrames] =
-% load_estimates_lte(filename, NFrames_max, version)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% decimation - read every 'decimation' frame
-% is_eNb - if ~= 0 we load data from an eNb
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger, Imran Latif
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20100317 0.1 Created based on load_estimates
-
-if nargin < 5
- version = Inf;
-end
-if nargin < 4
- is_eNb = 0;
-end
-if nargin < 3
- decimation = 1;
-end
-if nargin < 2
- NFrames_max = Inf;
-end
-
-% NTx = 2;
-% NRx = 2;
-% NFreq = 512;
-% NZFreq = 300;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-
-if exist('../../IMPORT_FILTER/a.out','file')
- [dummy,result] = system('../../IMPORT_FILTER/a.out');
- eval(result);
-else
- warning('File dump_size.c has to be compiled to enable error checking of sizes');
- %PHY_measurements_size = 1120;
- %UCI_data_t_size = 49;
- %DCI_alloc_t_size = 16;
- %eNb_UE_stats_size = 20;
- %fifo_dump_emos_UE_size = 33492;
- %fifo_dump_emos_eNb_size = 36980;
- %gps_fix_t_size = 108;
-end
-
-struct_template;
-
-% if (version < 1)
-% fifo_dump_emos_struct_eNb = fifo_dump_emos_struct_eNb_old;
-% fifo_dump_emos_struct_eNb_a = fifo_dump_emos_struct_eNb_old_a;
-% end
-
-gps_fix_t_size = gps_data_struct_a.size;
-fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size;
-fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size;
-
-
-NO_ESTIMATES_DISK = 100;
-if (is_eNb)
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size;
-else
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size;
-end
-
-if (mod(NO_ESTIMATES_DISK,decimation) ~= 0)
- error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK);
-end
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
- if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0)
- warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag is wrong.');
- end
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-% if (is_eNb)
-% estimates = repmat(fifo_dump_emos_struct_eNb,1,floor(NFrames/decimation));
-% else
-% estimates = repmat(fifo_dump_emos_struct_UE,1,floor(NFrames/decimation));
-% end
-
-if (is_eNb)
- estimates = repmat(fifo_dump_emos_struct_eNb,1,100);
-
- Ratepersec_4Qam_SISO_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_1Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
-
- siso_SNR_1Rx = zeros(1,floor(NFrames/100));
- siso_SNR_2Rx = zeros(1,floor(NFrames/100));
-
- minestimates = repmat(min_estimates_struct_eNb, 1,NFrames);
-else
- estimates = repmat(fifo_dump_emos_struct_UE,1,100);
-
- Ratepersec_4Qam_SISO_1stRx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_1stRx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_1stRx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_SISO_1stRx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_SISO_2ndRx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_2ndRx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_2ndRx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_SISO_2ndRx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_SISO_2Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_alamouti_1stRx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_alamouti_1stRx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_alamouti_1stRx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_alamouti_1stRx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_alamouti_2ndRx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_alamouti_2ndRx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_alamouti_2ndRx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_alamouti_2ndRx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_alamouti_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_alamouti_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_alamouti_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_alamouti_2Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_beamforming_maxq_1Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_beamforming_maxq_2Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_beamforming_feedbackq_1Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_supportedQam_beamforming_feedbackq_2Rx = zeros(1,floor(NFrames/100));
-
- % Rate_mode4_sch = zeros(1,floor(NFrames/100));
-
- siso_SNR_1stRx = zeros(1,floor(NFrames/100));
- siso_SNR_2ndRx = zeros(1,floor(NFrames/100));
- alam_SNR_1stRx = zeros(1,floor(NFrames/100));
- alam_SNR_2ndRx = zeros(1,floor(NFrames/100));
- bmfr_maxq_SNR_1Rx = zeros(1,floor(NFrames/100));
- bmfr_fbq_SNR_1Rx = zeros(1,floor(NFrames/100));
-
- siso_SNR_2Rx = zeros(1,floor(NFrames/100));
- alam_SNR_2Rx = zeros(1,floor(NFrames/100));
- bmfr_maxq_SNR_2Rx = zeros(1,floor(NFrames/100));
- bmfr_fbq_SNR_2Rx = zeros(1,floor(NFrames/100));
-
- K_fac = [];
-
- minestimates = repmat(min_estimates_struct, 1,NFrames);
- h11_eNbm = [];
- h12_eNbm = [];
- h21_eNbm = [];
- h22_eNbm = [];
-end
-gps_data = repmat(gps_data_struct,1,NFrames/100);
-
-k = 1;
-l = 1;
-sec = 1;
-count =0;
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while (~feof(fid) && (k <= min(sum(NFrames_file(1:n)),NFrames_max)))
-
- if (is_eNb)
- estimates_tmp = binread(fid,fifo_dump_emos_struct_eNb,1,4,'l');
-
- minestimates(k).mcs = get_mcs(estimates_tmp.dci_alloc(10,1).dci_pdu,'format0');
- minestimates(k).tbs = get_tbs(minestimates(k).mcs,25);
- minestimates(k).rx_rssi_dBm = estimates_tmp.phy_measurements_eNb(1).rx_rssi_dBm(1);
- minestimates(k).frame_tx = estimates_tmp.frame_tx;
- minestimates(k).timestamp = estimates_tmp.timestamp;
- if (version<1)
- minestimates(k).UE_mode = estimates_tmp.eNb_UE_stats(3,1).UE_mode;
- else
- minestimates(k).UE_mode = estimates_tmp.eNb_UE_stats(1,1).UE_mode;
- end
- minestimates(k).phy_measurements = estimates_tmp.phy_measurements_eNb(1);
- minestimates(k).ulsch_errors = estimates_tmp.ulsch_errors;
- minestimates(k).mimo_mode = estimates_tmp.mimo_mode;
- minestimates(k).eNb_id = estimates_tmp.eNb_UE_stats.sector;
-
- else
- estimates_tmp = binread(fid,fifo_dump_emos_struct_UE,1,4,'l');
-
- count = count +1;
- estimates(1,count) = estimates_tmp;
- minestimates(k).mcs = get_mcs(estimates_tmp.dci_alloc(7,1).dci_pdu);
- minestimates(k).tbs = get_tbs(minestimates(k).mcs,25);
- minestimates(k).rx_rssi_dBm = estimates_tmp.phy_measurements(1).rx_rssi_dBm(1);
- minestimates(k).frame_tx = estimates_tmp.frame_tx;
- minestimates(k).frame_rx = estimates_tmp.frame_rx;
- minestimates(k).pbch_fer = estimates_tmp.pbch_fer(1);
- minestimates(k).timestamp = estimates_tmp.timestamp;
- minestimates(k).UE_mode = estimates_tmp.UE_mode;
- minestimates(k).phy_measurements = estimates_tmp.phy_measurements(1);
- minestimates(k).dlsch_fer = estimates_tmp.dlsch_fer;
- minestimates(k).dlsch_errors = estimates_tmp.dlsch_errors;
- minestimates(k).mimo_mode = estimates_tmp.mimo_mode;
- minestimates(k).eNb_id = estimates_tmp.eNb_id;
-
-
- % Ricean Factor calculation
- H = estimates_tmp.channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind] = max(Hs);
-
- h11_eNB = double(estimates_tmp.channel(1:2:end/2,1,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,1,ind));
- h12_eNB = double(estimates_tmp.channel(1:2:end/2,2,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,2,ind));
- h21_eNB = double(estimates_tmp.channel(1:2:end/2,3,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,3,ind));
- h22_eNB = double(estimates_tmp.channel(1:2:end/2,4,ind)) + 1j*double(estimates_tmp.channel(2:2:end/2,4,ind));
-
- h11_eNB1 = reshape(h11_eNB, 50,4);
- h12_eNB1 = reshape(h12_eNB, 50,4);
- h21_eNB1 = reshape(h21_eNB, 50,4);
- h22_eNB1 = reshape(h22_eNB, 50,4);
-
- h11_eNbm = [h11_eNbm mean((abs(h11_eNB1)).^2,1)];
- h12_eNbm = [h12_eNbm mean((abs(h12_eNB1)).^2,1)];
- h21_eNbm = [h21_eNbm mean((abs(h21_eNB1)).^2,1)];
- h22_eNbm = [h22_eNbm mean((abs(h22_eNB1)).^2,1)];
-
-
- end
-
-
- %read GPS data and estimates every second
- if ((mod(k,NO_ESTIMATES_DISK)==0) && ~feof(fid))
- gps_data(l) = binread(fid,gps_data_struct,1,4,'l');
-
- count = 0;
-
- if (is_eNb)
- [Ratepersec_4Qam_SISO_1Rx(sec),Ratepersec_16Qam_SISO_1Rx(sec),Ratepersec_64Qam_SISO_1Rx(sec),siso_SNR_1Rx(sec)] = calc_rps_SISO_UL(estimates,1,version,1);
- [Ratepersec_4Qam_SISO_2Rx(sec),Ratepersec_16Qam_SISO_2Rx(sec),Ratepersec_64Qam_SISO_2Rx(sec),siso_SNR_2Rx(sec)] = calc_rps_SISO_UL(estimates,2,version,1);
- else
-
- K1(l) = estimate_rice(h11_eNbm);
- K2(l) = estimate_rice(h12_eNbm);
- K3(l) = estimate_rice(h21_eNbm);
- K4(l) = estimate_rice(h22_eNbm);
- h11_eNbm = [];
- h12_eNbm = [];
- h21_eNbm = [];
- h22_eNbm = [];
- K_fac = [K_fac K1(l) K2(l) K3(l) K4(l)];
-
- try
-
- % [Rate_mode4_sch(sec), mode4_SNR] = calc_rps_mode4(estimates);
-
- [Ratepersec_4Qam_SISO_1stRx(sec),Ratepersec_16Qam_SISO_1stRx(sec),Ratepersec_64Qam_SISO_1stRx(sec),Ratepersec_4Qam_SISO_2ndRx(sec),...
- Ratepersec_16Qam_SISO_2ndRx(sec),Ratepersec_64Qam_SISO_2ndRx(sec),siso_SNR_1stRx(sec),siso_SNR_2ndRx(sec),...
- Ratepersec_4Qam_SISO_2Rx(sec),Ratepersec_16Qam_SISO_2Rx(sec),Ratepersec_64Qam_SISO_2Rx(sec),...
- siso_SNR_2Rx(sec),Ratepersec_supportedQam_SISO_1stRx(sec),Ratepersec_supportedQam_SISO_2ndRx(sec),...
- Ratepersec_supportedQam_SISO_2Rx(sec)] = calc_rps_SISO(estimates);
-
- % siso_SNR_1stRx = [siso_SNR_1stRx siso_SNR_1stRx];
- % siso_SNR_2ndRx = [siso_SNR_2ndRx siso_SNR_2ndRx];
- % siso_SNR_2Rx = [siso_SNR_2Rx siso_SNR_2Rx];
-
- % include results for 1 Rx with other Rx antenna
- [Ratepersec_4Qam_alamouti_1stRx(sec),Ratepersec_16Qam_alamouti_1stRx(sec),Ratepersec_64Qam_alamouti_1stRx(sec),...
- Ratepersec_4Qam_alamouti_2ndRx(sec),Ratepersec_16Qam_alamouti_2ndRx(sec),Ratepersec_64Qam_alamouti_2ndRx(sec),...
- alam_SNR_1stRx(sec),alam_SNR_2ndRx(sec),Ratepersec_4Qam_alamouti_2Rx(sec),Ratepersec_16Qam_alamouti_2Rx(sec),...
- Ratepersec_64Qam_alamouti_2Rx(sec),alam_SNR_2Rx(sec),Ratepersec_supportedQam_alamouti_1stRx(sec),...
- Ratepersec_supportedQam_alamouti_2ndRx(sec),Ratepersec_supportedQam_alamouti_2Rx(sec)] = calc_rps_Alamouti(estimates);
-
- % alam_SNR_1stRx = [alam_SNR_1stRx alam_SNR_1stRx];
- % alam_SNR_2ndRx = [alam_SNR_2ndRx alam_SNR_2ndRx];
- % alam_SNR_2Rx = [alam_SNR_2Rx alam_SNR_2Rx];
-
- [Ratepersec_4Qam_beamforming_maxq_1Rx(sec),Ratepersec_16Qam_beamforming_maxq_1Rx(sec),...
- Ratepersec_64Qam_beamforming_maxq_1Rx(sec),Ratepersec_4Qam_beamforming_feedbackq_1Rx(sec),...
- Ratepersec_16Qam_beamforming_feedbackq_1Rx(sec),Ratepersec_64Qam_beamforming_feedbackq_1Rx(sec),...
- bmfr_maxq_SNR_1Rx(sec), bmfr_fbq_SNR_1Rx(sec), Ratepersec_4Qam_beamforming_maxq_2Rx(sec),...
- Ratepersec_16Qam_beamforming_maxq_2Rx(sec),Ratepersec_64Qam_beamforming_maxq_2Rx(sec),...
- Ratepersec_4Qam_beamforming_feedbackq_2Rx(sec),Ratepersec_16Qam_beamforming_feedbackq_2Rx(sec),...
- Ratepersec_64Qam_beamforming_feedbackq_2Rx(sec),bmfr_maxq_SNR_2Rx(sec), bmfr_fbq_SNR_2Rx(sec),...
- Ratepersec_supportedQam_beamforming_maxq_1Rx(sec),Ratepersec_supportedQam_beamforming_feedbackq_1Rx(sec),...
- Ratepersec_supportedQam_beamforming_maxq_2Rx(sec),Ratepersec_supportedQam_beamforming_feedbackq_2Rx(sec)] = calc_rps_Beamforming(estimates);
-
- % bmfr_maxq_SNR_1Rx = [bmfr_maxq_SNR_1Rx bmfr_optmq_SNR_1Rx];
- % bmfr_fbq_SNR_1Rx = [bmfr_fbq_SNR_1Rx bmfr_feedbkq_SNR_1Rx];
- % bmfr_maxq_SNR_2Rx = [bmfr_maxq_SNR_2Rx bmfr_optmq_SNR_2Rx];
- % bmfr_fbq_SNR_2Rx = [bmfr_fbq_SNR_2Rx bmfr_feedbkq_SNR_2Rx];
-
- catch exception
- disp(exception.getReport)
- disp(sprintf('Detected error in file %s, second %d, skipping it',filename{1},sec));
- l=l+1;
- k=k+1;
- sec=sec+1;
- continue
- end
- end
- l=l+1;
- sec = sec +1;
- end
- k=k+1;
- end
-
- fclose(fid);
-end
-
-H=[];
-H_fq=[];
-
-if (is_eNb)
- throughput.rateps_SISO_4Qam_eNB1_1Rx = Ratepersec_4Qam_SISO_1Rx;
- throughput.rateps_SISO_16Qam_eNB1_1Rx = Ratepersec_16Qam_SISO_1Rx;
- throughput.rateps_SISO_64Qam_eNB1_1Rx = Ratepersec_64Qam_SISO_1Rx;
- throughput.rateps_SISO_4Qam_eNB1_2Rx = Ratepersec_4Qam_SISO_2Rx;
- throughput.rateps_SISO_16Qam_eNB1_2Rx = Ratepersec_16Qam_SISO_2Rx;
- throughput.rateps_SISO_64Qam_eNB1_2Rx = Ratepersec_64Qam_SISO_2Rx;
- SNR.siso_1Rx = siso_SNR_1Rx;
- SNR.siso_2Rx = siso_SNR_2Rx;
- K_fac = [];
-else
-
- throughput.rateps_SISO_4Qam_eNB1_1stRx = Ratepersec_4Qam_SISO_1stRx;
- throughput.rateps_SISO_16Qam_eNB1_1stRx = Ratepersec_16Qam_SISO_1stRx;
- throughput.rateps_SISO_64Qam_eNB1_1stRx = Ratepersec_64Qam_SISO_1stRx;
- throughput.rateps_SISO_supportedQam_eNB1_1stRx = Ratepersec_supportedQam_SISO_1stRx;
-
- throughput.rateps_SISO_4Qam_eNB1_2ndRx = Ratepersec_4Qam_SISO_2ndRx;
- throughput.rateps_SISO_16Qam_eNB1_2ndRx = Ratepersec_16Qam_SISO_2ndRx;
- throughput.rateps_SISO_64Qam_eNB1_2ndRx = Ratepersec_64Qam_SISO_2ndRx;
- throughput.rateps_SISO_supportedQam_eNB1_2ndRx = Ratepersec_supportedQam_SISO_2ndRx;
-
- % K_fac = [];
- %
- % SNR = [];
-
- throughput.rateps_alamouti_4Qam_eNB1_1stRx = Ratepersec_4Qam_alamouti_1stRx;
- throughput.rateps_alamouti_16Qam_eNB1_1stRx = Ratepersec_16Qam_alamouti_1stRx;
- throughput.rateps_alamouti_64Qam_eNB1_1stRx = Ratepersec_64Qam_alamouti_1stRx;
- throughput.rateps_alamouti_supportedQam_eNB1_1stRx = Ratepersec_supportedQam_alamouti_1stRx;
-
- throughput.rateps_alamouti_4Qam_eNB1_2ndRx = Ratepersec_4Qam_alamouti_2ndRx;
- throughput.rateps_alamouti_16Qam_eNB1_2ndRx = Ratepersec_16Qam_alamouti_2ndRx;
- throughput.rateps_alamouti_64Qam_eNB1_2ndRx = Ratepersec_64Qam_alamouti_2ndRx;
- throughput.rateps_alamouti_supportedQam_eNB1_2ndRx = Ratepersec_supportedQam_alamouti_2ndRx;
-
- throughput.rateps_beamforming_4Qam_eNB1_1Rx_feedbackq = Ratepersec_4Qam_beamforming_feedbackq_1Rx;
- throughput.rateps_beamforming_16Qam_eNB1_1Rx_feedbackq = Ratepersec_16Qam_beamforming_feedbackq_1Rx;
- throughput.rateps_beamforming_64Qam_eNB1_1Rx_feedbackq = Ratepersec_64Qam_beamforming_feedbackq_1Rx;
- throughput.rateps_beamforming_supportedQam_eNB1_1Rx_feedbackq = Ratepersec_supportedQam_beamforming_feedbackq_1Rx;
-
- throughput.rateps_beamforming_4Qam_eNB1_1Rx_maxq = Ratepersec_4Qam_beamforming_maxq_1Rx;
- throughput.rateps_beamforming_16Qam_eNB1_1Rx_maxq = Ratepersec_16Qam_beamforming_maxq_1Rx;
- throughput.rateps_beamforming_64Qam_eNB1_1Rx_maxq = Ratepersec_64Qam_beamforming_maxq_1Rx;
- throughput.rateps_beamforming_supportedQam_eNB1_1Rx_maxq = Ratepersec_supportedQam_beamforming_maxq_1Rx;
-
- SNR.siso_1stRx = siso_SNR_1stRx;
- SNR.siso_2ndRx = siso_SNR_2ndRx;
- SNR.alamouti_1stRx = alam_SNR_1stRx;
- SNR.alamouti_2ndRx = alam_SNR_2ndRx;
- SNR.bmfr_maxq_1Rx = bmfr_maxq_SNR_1Rx;
- SNR.bmfr_feedbackq_1Rx = bmfr_fbq_SNR_1Rx;
-
- throughput.rateps_SISO_4Qam_eNB1_2Rx = Ratepersec_4Qam_SISO_2Rx;
- throughput.rateps_SISO_16Qam_eNB1_2Rx = Ratepersec_16Qam_SISO_2Rx;
- throughput.rateps_SISO_64Qam_eNB1_2Rx = Ratepersec_64Qam_SISO_2Rx;
- throughput.rateps_SISO_supportedQam_eNB1_2Rx = Ratepersec_supportedQam_SISO_2Rx;
-
- throughput.rateps_alamouti_4Qam_eNB1_2Rx = Ratepersec_4Qam_alamouti_2Rx;
- throughput.rateps_alamouti_16Qam_eNB1_2Rx = Ratepersec_16Qam_alamouti_2Rx;
- throughput.rateps_alamouti_64Qam_eNB1_2Rx = Ratepersec_64Qam_alamouti_2Rx;
- throughput.rateps_alamouti_supportedQam_eNB1_2Rx = Ratepersec_supportedQam_alamouti_2Rx;
-
- throughput.rateps_beamforming_4Qam_eNB1_2Rx_feedbackq = Ratepersec_4Qam_beamforming_feedbackq_2Rx;
- throughput.rateps_beamforming_16Qam_eNB1_2Rx_feedbackq = Ratepersec_16Qam_beamforming_feedbackq_2Rx;
- throughput.rateps_beamforming_64Qam_eNB1_2Rx_feedbackq = Ratepersec_64Qam_beamforming_feedbackq_2Rx;
- throughput.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq = Ratepersec_supportedQam_beamforming_feedbackq_2Rx;
-
- throughput.rateps_beamforming_4Qam_eNB1_2Rx_maxq = Ratepersec_4Qam_beamforming_maxq_2Rx;
- throughput.rateps_beamforming_16Qam_eNB1_2Rx_maxq = Ratepersec_16Qam_beamforming_maxq_2Rx;
- throughput.rateps_beamforming_64Qam_eNB1_2Rx_maxq = Ratepersec_64Qam_beamforming_maxq_2Rx;
- throughput.rateps_beamforming_supportedQam_eNB1_2Rx_maxq = Ratepersec_supportedQam_beamforming_maxq_2Rx;
-
- %throughput.rateps_mode4_sch = Rate_mode4_sch;
-
- SNR.siso_2Rx = siso_SNR_2Rx;
- SNR.alamouti_2Rx = alam_SNR_2Rx;
- SNR.bmfr_maxq_2Rx = bmfr_maxq_SNR_2Rx;
- SNR.bmfr_feedbackq_2Rx = bmfr_fbq_SNR_2Rx;
-end
-
-% H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames));
-% H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames);
-% H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames);
-%
-% H = ifft(H_fq,[],3);
-%
-% % remove zero carriers from Frequency response
-% NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
-% H_fq = H_fq(:,:,NZFreq_ind,:);
-%
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m
deleted file mode 100644
index 6e96182006..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/load_estimates_lte_2.m
+++ /dev/null
@@ -1,285 +0,0 @@
-function [H, H_fq, gps_data, NFrames, minestimates, throughput, SNR] = load_estimates_lte_2(filename, NFrames_max, decimation, is_eNb,mumimo_on, version)
-%
-% EMOS Single User Import Filter
-%
-% [H, H_fq, estimates, gps_data, NFrames] =
-% load_estimates_lte(filename, NFrames_max, version)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% decimation - read every 'decimation' frame
-% is_eNb - if ~= 0 we load data from an eNb
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger, Imran Latif
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20100317 0.1 Created based on load_estimates
-
-if nargin < 5
- version = Inf;
-end
-if nargin < 4
- is_eNb = 0;
-end
-if nargin < 3
- decimation = 1;
-end
-if nargin < 2
- NFrames_max = Inf;
-end
-
-% NTx = 2;
-% NRx = 2;
-% NFreq = 512;
-% NZFreq = 300;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-
-if exist('../../IMPORT_FILTER/a.out','file')
- [dummy,result] = system('../../IMPORT_FILTER/a.out');
- eval(result);
-else
- warning('File dump_size.c has to be compiled to enable error checking of sizes');
- %PHY_measurements_size = 1120;
- %UCI_data_t_size = 49;
- %DCI_alloc_t_size = 16;
- %eNb_UE_stats_size = 20;
- %fifo_dump_emos_UE_size = 33492;
- %fifo_dump_emos_eNb_size = 36980;
- %gps_fix_t_size = 108;
-end
-
-struct_template;
-
-% if (version < 1)
-% fifo_dump_emos_struct_eNb = fifo_dump_emos_struct_eNb_old;
-% fifo_dump_emos_struct_eNb_a = fifo_dump_emos_struct_eNb_old_a;
-% end
-
-gps_fix_t_size = gps_data_struct_a.size;
-fifo_dump_emos_UE_size = fifo_dump_emos_struct_UE_a.size;
-fifo_dump_emos_eNb_size = fifo_dump_emos_struct_eNb_a.size;
-
-
-NO_ESTIMATES_DISK = 100;
-if (is_eNb)
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_eNb_size + gps_fix_t_size;
-else
- CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * fifo_dump_emos_UE_size + gps_fix_t_size;
-end
-
-if (mod(NO_ESTIMATES_DISK,decimation) ~= 0)
- error('Decimation must be a divisor of %d',NO_ESTIMATES_DISK);
-end
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
- if (mod(info_file.bytes,CHANNEL_BUFFER_SIZE) ~= 0)
- warning('File size not a multiple of buffer size. File might be corrupt or is_eNb flag is wrong.');
- end
-end
-NFrames = min(min(NFrames_file), NFrames_max);
-
-if (is_eNb)
- estimates_tmp = repmat(fifo_dump_emos_struct_eNb,NFiles,100);
-
- Ratepersec_4Qam_SISO_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_1Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_1Rx = zeros(1,floor(NFrames/100));
-
- Ratepersec_4Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_SISO_2Rx = zeros(1,floor(NFrames/100));
-
- siso_SNR_1Rx = zeros(1,floor(NFrames/100));
- siso_SNR_2Rx = zeros(1,floor(NFrames/100));
-
- minestimates = repmat(min_estimates_struct_eNb, NFiles, NFrames);
-else
- estimates_tmp = repmat(fifo_dump_emos_struct_UE,NFiles,100);
-
-%% Ratepersec_4Qam_alamouti = zeros(1,floor(NFrames/100));
-% Ratepersec_4Qam_siso = zeros(1,floor(NFrames/100));
-% Ratepersec_16Qam_alamouti = zeros(1,floor(NFrames/100));
-% Ratepersec_16Qam_siso = zeros(1,floor(NFrames/100));
-% Ratepersec_64Qam_alamouti = zeros(1,floor(NFrames/100));
-% Ratepersec_64Qam_siso = zeros(1,floor(NFrames/100));
- Ratepersec_4Qam_beamforming = zeros(1,floor(NFrames/100));
-% Ratepersec_4Qam_MUMIMO_ue1 = zeros(1,floor(NFrames/100));
-% Ratepersec_4Qam_MUMIMO_ue2 = zeros(1,floor(NFrames/100));
- Ratepersec_16Qam_beamforming = zeros(1,floor(NFrames/100));
- Ratepersec_64Qam_beamforming = zeros(1,floor(NFrames/100));
- % Ratepersec_supportedQam_MUMIMO_1stRx = zeros(1,floor(NFrames/100));
- %
- % Ratepersec_4Qam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100));
- % Ratepersec_16Qam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100));
- % Ratepersec_64Qam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100));
- % Ratepersec_supportedQam_MUMIMO_2ndRx = zeros(1,floor(NFrames/100));
- %
- % Ratepersec_4Qam_MUMIMO_2Rx = zeros(1,floor(NFrames/100));
- % Ratepersec_16Qam_MUMIMO_2Rx = zeros(1,floor(NFrames/100));
- % Ratepersec_64Qam_MUMIMO_2Rx = zeros(1,floor(NFrames/100));
- % Ratepersec_supportedQam_MUMIMO_2Rx = zeros(1,floor(NFrames/100));
-
- SNR=[];
-
- minestimates = repmat(min_estimates_struct, NFiles, NFrames);
-
-end
-gps_data = repmat(gps_data_struct,NFiles,NFrames/100);
-
-k = 1;
-l = 1;
-sec = 1;
-count =1;
-fid = zeros(1,NFiles);
-for n=1:NFiles
- fid(n) = fopen(filename{n},'r');
-end
-
-while (any(~feof_vec(fid)) && (k <= min([NFrames_file,NFrames_max])))
- %while (sec<70)
- for n=1:NFiles
- %H = complex(zeros(2,2,2,200)); % NUser * NTx x NRx * Nsymb
-
- if (is_eNb)
- estimates_tmp(n,k) = binread(fid(n),fifo_dump_emos_struct_eNb,1,4,'l');
-
- minestimates(n,k).mcs = get_mcs(estimates_tmp(n,k).dci_alloc(10,1).dci_pdu,'format0');
- minestimates(n,k).tbs = get_tbs(minestimates(k).mcs,25);
- minestimates(n,k).rx_rssi_dBm = estimates_tmp(n,k).phy_measurements_eNb(1).rx_rssi_dBm(1);
- minestimates(n,k).frame_tx = estimates_tmp(n,k).frame_tx;
- minestimates(n,k).timestamp = estimates_tmp(n,k).timestamp;
- if (version<1)
- minestimates(n,k).UE_mode = estimates_tmp(n,k).eNb_UE_stats(3,1).UE_mode;
- else
- minestimates(n,k).UE_mode = estimates_tmp(n,k).eNb_UE_stats(1,1).UE_mode;
- end
- minestimates(n,k).phy_measurements = estimates_tmp(n,k).phy_measurements_eNb(1);
- minestimates(n,k).ulsch_errors = estimates_tmp(n,k).ulsch_errors;
- minestimates(n,k).mimo_mode = estimates_tmp(n,k).mimo_mode;
- minestimates(n,k).eNb_id = estimates_tmp(n,k).eNb_UE_stats.sector;
-
- else
- estimates_tmp(n,count) = binread(fid(n),fifo_dump_emos_struct_UE,1,4,'l');
-
- minestimates(n,k).mcs = get_mcs(estimates_tmp(n,count).dci_alloc(7,1).dci_pdu);
- minestimates(n,k).tbs = get_tbs(minestimates(n,k).mcs,25);
- minestimates(n,k).rx_rssi_dBm = estimates_tmp(n,count).phy_measurements(1).rx_rssi_dBm(1);
- minestimates(n,k).frame_tx = estimates_tmp(n,count).frame_tx;
- minestimates(n,k).frame_rx = estimates_tmp(n,count).frame_rx;
- minestimates(n,k).pbch_fer = estimates_tmp(n,count).pbch_fer(1);
- minestimates(n,k).timestamp = estimates_tmp(n,count).timestamp;
- minestimates(n,k).UE_mode = estimates_tmp(n,count).UE_mode;
- minestimates(n,k).phy_measurements = estimates_tmp(n,count).phy_measurements(1);
- minestimates(n,k).dlsch_fer = estimates_tmp(n,count).dlsch_fer;
- minestimates(n,k).dlsch_errors = estimates_tmp(n,count).dlsch_errors;
- minestimates(n,k).mimo_mode = estimates_tmp(n,count).mimo_mode;
- minestimates(n,k).eNb_id = estimates_tmp(n,count).eNb_id;
-
-
- end % if (is_eNb)
-
- %read GPS data and estimates every second
- if ((mod(k,NO_ESTIMATES_DISK)==0) && ~any(feof_vec(fid)))
-
-
- gps_data(n,l) = binread(fid(n),gps_data_struct,1,4,'l');
- end
- %k=k+1;
- end %NFiles
-
-
- if ((mod(k,NO_ESTIMATES_DISK)==0) && ~any(feof_vec(fid)))
-
- % do MU-MIMO processing
- [Ratepersec_4Qam_beamforming(sec),Ratepersec_16Qam_beamforming(sec),...
- Ratepersec_64Qam_beamforming(sec)] = calc_rps_mu_mimo(estimates_tmp,mumimo_on);
- %plot(Ratepersec_4Qam_MUMIMO(1:sec),'r-x');
-% [Ratepersec_4Qam_alamouti(sec),Ratepersec_16Qam_alamouti(sec),Ratepersec_64Qam_alamouti(sec)] = calc_rps_alamouti_2(estimates_tmp);
-% [Ratepersec_4Qam_siso(sec),Ratepersec_16Qam_siso(sec),Ratepersec_64Qam_siso(sec)] = calc_rps_siso_2(estimates_tmp);
-
- l=l+1;
- sec = sec+1
- count = 0;
- end
- count = count+1;
- k=k+1;
-
-end %while
-
-for n=1:NFiles
- fclose(fid(n));
-end
-
-H=[];
-H_fq=[];
-
-if (is_eNb)
- throughput.rateps_SISO_4Qam_eNB1_1Rx = Ratepersec_4Qam_SISO_1Rx;
- throughput.rateps_SISO_16Qam_eNB1_1Rx = Ratepersec_16Qam_SISO_1Rx;
- throughput.rateps_SISO_64Qam_eNB1_1Rx = Ratepersec_64Qam_SISO_1Rx;
- throughput.rateps_SISO_4Qam_eNB1_2Rx = Ratepersec_4Qam_SISO_2Rx;
- throughput.rateps_SISO_16Qam_eNB1_2Rx = Ratepersec_16Qam_SISO_2Rx;
- throughput.rateps_SISO_64Qam_eNB1_2Rx = Ratepersec_64Qam_SISO_2Rx;
- SNR.siso_1Rx = siso_SNR_1Rx;
- SNR.siso_2Rx = siso_SNR_2Rx;
-else
-
-% throughput.rateps_alamouti_4Qam = Ratepersec_4Qam_alamouti;
-% throughput.rateps_siso_4Qam = Ratepersec_4Qam_siso;
-% throughput.rateps_alamouti_16Qam = Ratepersec_16Qam_alamouti;
-% throughput.rateps_siso_16Qam = Ratepersec_16Qam_siso;
-% throughput.rateps_alamouti_64Qam = Ratepersec_64Qam_alamouti;
-% throughput.rateps_siso_64Qam = Ratepersec_64Qam_siso;
-% throughput.rateps_MUMIMO_4Qam_eNB1 = Ratepersec_4Qam_MUMIMO;
-% throughput.rateps_MUMIMO_4Qam_eNB1_ue1 = Ratepersec_4Qam_MUMIMO_ue1;
-% throughput.rateps_MUMIMO_4Qam_eNB1_ue2 = Ratepersec_4Qam_MUMIMO_ue2;
- throughput.rateps_bmfr_4Qam = Ratepersec_4Qam_beamforming;
- throughput.rateps_bmfr_16Qam = Ratepersec_16Qam_beamforming;
- throughput.rateps_bmfr_64Qam = Ratepersec_64Qam_beamforming;
- % throughput.rateps_MUMIMO_16Qam_eNB1_1stRx = Ratepersec_16Qam_MUMIMO_1stRx;
- % throughput.rateps_MUMIMO_64Qam_eNB1_1stRx = Ratepersec_64Qam_MUMIMO_1stRx;
- % throughput.rateps_MUMIMO_supportedQam_eNB1_1stRx = Ratepersec_supportedQam_MUMIMO_1stRx;
- %
- % throughput.rateps_MUMIMO_4Qam_eNB1_2ndRx = Ratepersec_4Qam_MUMIMO_2ndRx;
- % throughput.rateps_MUMIMO_16Qam_eNB1_2ndRx = Ratepersec_16Qam_MUMIMO_2ndRx;
- % throughput.rateps_MUMIMO_64Qam_eNB1_2ndRx = Ratepersec_64Qam_MUMIMO_2ndRx;
- % throughput.rateps_MUMIMO_supportedQam_eNB1_2ndRx = Ratepersec_supportedQam_MUMIMO_2ndRx;
- %
- % throughput.rateps_MUMIMO_4Qam_eNB1_2Rx = Ratepersec_4Qam_MUMIMO_2Rx;
- % throughput.rateps_MUMIMO_16Qam_eNB1_2Rx = Ratepersec_16Qam_MUMIMO_2Rx;
- % throughput.rateps_MUMIMO_64Qam_eNB1_2Rx = Ratepersec_64Qam_MUMIMO_2Rx;
- % throughput.rateps_MUMIMO_supportedQam_eNB1_2Rx = Ratepersec_supportedQam_MUMIMO_2Rx;
-end
-end
-
-
-function eof = feof_vec(fid)
-eof = false(size(fid));
-for i=1:length(fid)
- eof(i) = feof(fid(i));
-end
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m
deleted file mode 100644
index 91fbfa9978..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_figures_top.m
+++ /dev/null
@@ -1,36 +0,0 @@
-% file: plot_figures_top.m
-% this file reads the data post processed measurement data and procudes all
-% the figures requested by Mr. Scot. The comparison between different modes
-% is done with the script plot_comparison_all_modes.m and
-% mode1_mode2_comparison.m
-clear all
-close all
-
-%decimation = 1;
-%NFrames_max = 100*60*10;
-mm='cordes';
-
-%% results from raw channel estimates (ideal throughput)
-%pathname = '/emos/EMOS/Mode2/20100520_mode2_parcours1_part4_part5/';
-pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2/results';
-%Concatenate_results_UE_quick
-plot_results_cat
-
-%% results from quick post processing (modem throughput)
-pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode1/results';
-plot_results_ue_quick
-
-%%
-pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2/results';
-plot_results_ue_quick
-
-%%
-pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode2_update/results';
-plot_results_ue_quick
-
-%%
-pathname = '/extras/kaltenbe/CNES/emos_postprocessed_data/Mode6/results';
-plot_results_ue_quick
-plot_results_eNB_quick
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m
deleted file mode 100755
index 8d582c325e..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/plot_results_cat.m
+++ /dev/null
@@ -1,474 +0,0 @@
-%plot_results_cat
-load(fullfile(pathname,'results_cat_UE.mat'));
-
-in = 0;
-
-%plotwrtdistanceCalc;
-[dist, dist_travelled] = calc_dist([gps_data_cat.latitude],[gps_data_cat.longitude],mm);
-max_dist = ceil(max(dist));
-speed = [gps_data_cat.speed];
-time = [gps_data_cat.timestamp];
-timebase = 1:length(time);
-timebase2 = time-time(find(~isnan(time),1));
-timebase_cuts = find(diff(timebase2)>60*60*8);
-
-
-%% set throughput to 0 when UE was not synched
-UE_connected = all(reshape(UE_mode_cat,100,[])==3,1);
-UE_synched = all(reshape(UE_mode_cat,100,[])>0,1);
-vars = whos('rateps*');
-nn = {vars.name};
-for n = 1:length(nn)
- eval([nn{n} '(~UE_synched) = 0;']);
-end
-K_fac_cat = reshape(K_fac_cat,4,[]);
-K_fac_cat(:,~UE_synched) = nan;
-
-% %% get real throughput from modem
-% dlsch_error = double([1 diff([minestimates_cat.dlsch_errors])]);
-% rateps_modem = (1-dlsch_error) .* double([minestimates_cat.tbs]);
-% rateps_modem([minestimates.UE_mode]~=3) = 0;
-% rateps_modem = sum(reshape(rateps_modem,100,[]),1)*6;
-%
-% dlsch_mcs = [minestimates_cat.mcs];
-% mod_order = zeros(size(dlsch_mcs));
-% mod_order(dlsch_mcs<10) = 2;
-% mod_order(dlsch_mcs>=10 & dlsch_mcs<17) = 4;
-% mod_order(dlsch_mcs>=17) = 6;
-% rateps_uncoded_modem = 2400*mod_order;
-% rateps_uncoded_modem([minestimates.UE_mode]~=3) = 0;
-% rateps_uncoded_modem = sum(reshape(rateps_uncoded_modem,100,[]),1)*6;
-
-%% plot K-factor
-in=in+1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm, [gps_data_cat.longitude], [gps_data_cat.latitude], 10*log10(mean(K_fac_cat,1)));
-title('K_factor [dB]')
-saveas(h_fig,fullfile(pathname,'K_factor_gps.jpg'),'jpg');
-
-in=in+1;
-h_fig = figure(in);
-hold off
-plot(10*log10(mean(K_fac_cat,1)));
-xlabel('Time [sec]')
-ylabel('K_factor [dB]')
-plot(timebase_cuts,0,'k^','Markersize',10,'Linewidth',2)
-saveas(h_fig,fullfile(pathname,'K_factor_time.eps'),'epsc2');
-
-
-%% plot coded throughput as CDFs
-in = in+1;
-h_fig = figure(in);
-hold off
-colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'};
-legend_str = {};
-ni=1;
-for n = 1:length(nn)
- si = strfind(nn{n},'supportedQam');
- if si
- eval(['[f,x] = ecdf(scale_ideal_tp(' nn{n} '));']);
- plot(x,f,colors{ni},'Linewidth',2);
- hold on
- legend_tmp = nn{n};
- legend_tmp(si:si+10) = [];
- legend_str{ni} = legend_tmp;
- ni=ni+1;
- end
-end
-% [f,x] = ecdf(rateps_modem);
-% plot(x,f,colors{ni},'Linewidth',2);
-% legend_str{ni} = 'rateps_modem';
-% ni=ni+1;
-
-legend(legend_str,'Interpreter','none','Location','SouthOutside');
-title('DL Throughput CDF')
-xlabel('Throughput [bps]')
-ylabel('P(x=10 & ulsch_mcs<17) = 4;
-% mod_order(ulsch_mcs>=17) = 6;
-% rateps_uncoded_modem = 2700*mod_order;
-% rateps_uncoded_modem([minestimates.UE_mode]~=3) = 0;
-% rateps_uncoded_modem = sum(reshape(rateps_uncoded_modem,100,[]),1)*3;
-
-
-
-%% plot coded throughput as CDFs
-in = in+1;
-h_fig = figure(in);
-colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'};
-legend_str = {};
-ni=1;
-for n = 1:length(nn)
- hold on
- si = strfind(nn{n},'64Qam');
- if si
- eval(['[f,x] = ecdf(' nn{n} '_cat);']);
- plot(x,f,colors{ni},'Linewidth',2);
- legend_tmp = nn{n};
- legend_tmp(si:si+10) = [];
- legend_str{ni} = legend_tmp;
- ni=ni+1;
- end
-end
-% [f,x] = ecdf(rateps_modem);
-% plot(x,f,colors{ni},'Linewidth',2);
-% legend_str{ni} = 'rateps_modem';
-% ni=ni+1;
-
-
-legend(legend_str,'Interpreter','none','Location','SouthOutside');
-xlabel('Throughput [bps]')
-ylabel('P(x 0)
- if (imag(q_in) > 0)
- if (abs(real(q_in)) > abs(imag(q_in)))
- q_out = 1;
- else
- q_out = 1i;
- end
- else
- if (abs(real(q_in)) > abs(imag(q_in)))
- q_out = 1;
- else
- q_out = -1i;
- end
- end
-else
-
- if (imag(q_in) > 0)
- if (abs(real(q_in)) > abs(imag(q_in)))
- q_out = -1;
- else
- q_out = 1i;
- end
- else
- if (abs(real(q_in)) > abs(imag(q_in)))
- q_out = -1;
- else
- q_out = -1i;
- end
- end
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m b/openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m
deleted file mode 100644
index 61558a0089..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/CapCom/test_figures.m
+++ /dev/null
@@ -1,37 +0,0 @@
-% file: test_figures
-% this file reads the data from exaclty one measurement and procudes all
-% the figures requested by Mr. Scot.
-clear all
-close all
-
-decimation = 1;
-NFrames_max = 100*60*10;
-pathname = '/extras/kaltenbe/CNES/emos_raw_data/20100512_mode2_parcours2_part2/';
-
-%%
-filename_UE = 'data_term3_idx04_20100512T103328.EMOS';
-is_eNb = 0;
-version = 1;
-
-[H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(fullfile(pathname,filename_UE),NFrames_max,decimation,is_eNb,version);
-
-save(regexprep((fullfile(pathname,filename_UE,'results_UE.mat')), '.EMOS/results_UE.mat', '_results_UE.mat'), 'gps_data', 'NFrames', 'SNR', 'throughput', 'minestimates', 'K_fac');
-
-%%
-Concatenate_results_UE_quick
-
-plot_results_cat
-
-%%
-filename_eNB = 'data_term1_idx04_20100512T103520.EMOS';
-is_eNb = 1;
-version = 0;
-
-[H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(fullfile(pathname,filename_eNB),NFrames_max,decimation,is_eNb,version);
-
-save(regexprep((fullfile(pathname,filename_eNB,'results_eNB.mat')), '.EMOS/results_eNB.mat', '_results_eNB.mat'), 'gps_data', 'NFrames', 'SNR', 'throughput', 'minestimates', 'K_fac');
-
-%%
-Concatenate_results_eNB_quick
-
-plot_results_eNb_cat
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m b/openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m
deleted file mode 100644
index 91ab39bdac..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Mode5_ConCat_Table.m
+++ /dev/null
@@ -1,62 +0,0 @@
-pathname = '/homes/latif/devel/openair_lte/openair1/EMOS/LTE/POST_PROCESSING/Mode5';
-d = dir([pathname '/*.mat']);
-filenames = {d.name};
-SNR_4_4_cat = [];
-chcap_mode5_4_4_cat = [];
-chcap_mode5_4_4_user1_cat = [];
-chcap_mode5_4_4_user2_cat = [];
-
-SNR_4_16_cat = [];
-chcap_mode5_4_16_cat = [];
-chcap_mode5_4_16_user1_cat = [];
-chcap_mode5_4_16_user2_cat = [];
-
-SNR_16_4_cat = [];
-chcap_mode5_16_4_cat = [];
-chcap_mode5_16_4_user1_cat = [];
-chcap_mode5_16_4_user2_cat = [];
-
-SNR_16_16_cat = [];
-chcap_mode5_16_16_cat = [];
-chcap_mode5_16_16_user1_cat = [];
-chcap_mode5_16_16_user2_cat = [];
-
-for i = 1:length(filenames)
-
- load(filenames{i})
-
- if (M1 == 4 && M2 == 4)
-
- SNR_4_4_cat =[SNR_4_4_cat SNR];
- chcap_mode5_4_4_cat = [chcap_mode5_4_4_cat chcap_lte_sch];
- chcap_mode5_4_4_user1_cat = [chcap_mode5_4_4_user1_cat chcap_lte_sch1];
- chcap_mode5_4_4_user2_cat = [chcap_mode5_4_4_user2_cat chcap_lte_sch2];
-
-
- else if (M1 == 4 && M2 == 16)
- SNR_4_16_cat =[SNR_4_16_cat SNR];
- chcap_mode5_4_16_cat = [chcap_mode5_4_16_cat chcap_lte_sch];
- chcap_mode5_4_16_user1_cat = [chcap_mode5_4_16_user1_cat chcap_lte_sch1];
- chcap_mode5_4_16_user2_cat = [chcap_mode5_4_16_user2_cat chcap_lte_sch2];
-
- else if (M1 == 16 && M2 == 4)
- SNR_16_4_cat =[SNR_16_4_cat SNR];
- chcap_mode5_16_4_cat = [chcap_mode5_16_4_cat chcap_lte_sch];
- chcap_mode5_16_4_user1_cat = [chcap_mode5_16_4_user1_cat chcap_lte_sch1];
- chcap_mode5_16_4_user2_cat = [chcap_mode5_16_4_user2_cat chcap_lte_sch2];
- else
- SNR_16_16_cat =[SNR_16_4_cat SNR];
- chcap_mode5_16_16_cat = [chcap_mode5_16_16_cat chcap_lte_sch];
- chcap_mode5_16_16_user1_cat = [chcap_mode5_16_16_user1_cat chcap_lte_sch1];
- chcap_mode5_16_16_user2_cat = [chcap_mode5_16_16_user2_cat chcap_lte_sch2];
- end
- end
- end
-
-end
-
-save('table_LTE_MODE_4_5.mat', 'SNR_4_4_cat', 'chcap_mode5_4_4_cat', 'chcap_mode5_4_4_user1_cat', 'chcap_mode5_4_4_user2_cat', ...
- 'SNR_4_16_cat', 'chcap_mode5_4_16_cat', 'chcap_mode5_4_16_user1_cat', 'chcap_mode5_4_16_user2_cat', ...
- 'SNR_16_4_cat', 'chcap_mode5_16_4_cat', 'chcap_mode5_16_4_user1_cat', 'chcap_mode5_16_4_user2_cat', ...
- 'SNR_16_16_cat', 'chcap_mode5_16_16_cat', 'chcap_mode5_16_16_user1_cat', 'chcap_mode5_16_16_user2_cat')
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/README.txt b/openair1/EMOS/LTE/POST_PROCESSING/README.txt
deleted file mode 100644
index be59c8f7fa..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/README.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-This folder contains all the matlab code for the post processing
-
-There are two levels of post processing
- 1) Integrity checks that visualize some of the recorded data
- 2) Capacity evaluations of the channel measurements
-
-ad 1) The files for the integrity check are located in the POST_PROCESSING directory.
-The top level files are:
- - start_post_processing_quick.m
- This is the top level script that invokes all of the other files. START HERE!
- - post_processing_eNb_quick.m
- This script processes the eNB measurements
- - post_processing_UE_quick.m
- This script processes the UE measurements
- - post_processing_UE_nomadic_quick.m
- This script processes the nomadic measurements
- - plot_results_UE_quick.m
- This script plots the results after a post_processing_UE_quick.m
- - plot_all_ue.m
- This script collects results from severals directories and plots them
- - plot_results_UE_quick_common.m
- Common to the two above
- - plot_results_eNb_quick.m
- This script plots the results after a post_processing_eNB_quick.m
- - plot_results_I0_quick.m
- This script plots only the IO results after a post_processing_UE_quick.m
- - eval_nomadic_points.m
- This script produces a table after from the nomadic measuremetns
-
-
-ad 2) The files for the capacity evaluations are loacted in the POST_PROCESSING/CapCom directory.
-The top level files are
- - integrity_check_1.m (start_capcom.m)
- This is the top level script that invokes all of the other files. START HERE!
- This script produces a .mat file for every .EMOS file in the same directory.
- - integrity_check_11.m (start_capcom_multi_dir.m)
- This is the same as before but going over multiple directories.
-- Concatenate_results_UE_quick.m
- This script collects all the .mat files in a specific directory. Call this before plotting the results.
- - plot_results_cat.m
- Plots the results after the above script
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m
deleted file mode 100644
index aee17248f3..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/Contents.m
+++ /dev/null
@@ -1,7 +0,0 @@
-% RICIAN
-%
-% Files
-% ricepdf - Rice/Rician probability density function (pdf).
-% ricernd - Random samples from the Rice/Rician probability distribution.
-% ricestat - Mean and variance of Rice/Rician probability distribution.
-% ricedemo - Rice/Rician Distribution Demo
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m
deleted file mode 100644
index 885ec63916..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/estimate_rice.m
+++ /dev/null
@@ -1,56 +0,0 @@
-function [K, V2, s2] = estimate_rice(G)
-% Ricean factor estimation
-% [K, V2, s2] = estimate_rice(h) estimates the Ricean K-Factor from the set of
-% impulse responses h using Moment Method estimation [1].
-%
-% [1] Greenstein, L., Michelson, D., and Erceg, V.,
-% "Moment-method estimation of the Ricean K-factor",
-% #IEEE_J_COML#, 1999, 3, 175-176
-%
-% Parameters:
-% G - size [NTau x Nsamp] Sequence of impulse responses (absolute square)
-%
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-%
-% Version History
-% Date Version Comment
-% 20080620 0.1 Created
-% 20080730 0.2 We caclculate the rice factor for every delay bin
-
-[NTau, Nsamp] = size(G);
-
-if ~isreal(G)
- error('Input G must be real');
-end
-
-Ga = mean(G,2);
-
-Gv = zeros(NTau,1);
-V2 = zeros(NTau,1);
-s2 = zeros(NTau,1);
-K = zeros(NTau,1);
-
-for t=1:NTau
- Gv(t) = sqrt(mean((G(t,:)-Ga(t)).^2));
-
- if Gv(t)>Ga(t)
- V2(t)=0;
- else
- V2(t) = sqrt(Ga(t)^2 - Gv(t)^2);
- end
-
- s2(t) = Ga(t) - V2(t);
-
- K(t) = V2(t)/s2(t);
-end
-
-% %% plot
-% figure(69)
-% cdfplot(G);
-% hold on
-% x = linspace(0,2.5,100);
-% p = ricepdf(x,Ga,sqrt(s2));
-% plot(x,cumsum(p)/sum(p),'r')
-% legend('empirical cdf','reconstructed cdf')
-% hold off
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m
deleted file mode 100644
index e1f944e5de..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitcurve.m
+++ /dev/null
@@ -1,37 +0,0 @@
-function [lambda,Err]=fitcurve(x,y,funct,init_lam)
-% Created by: Mauro Fiacco
-% Date: 25/10/97
-%
-% Function: Find the best coefficients for curve best fitting.
-%
-% Input: x: abscissa
-% y: values
-% funct: name of the function
-% init_lam: initial values of lambda (opt.)
-% tol: tollerance (opt.)
-%
-
-%-------------------------------------------------------------------
-
-global Data Funct;
-global Plothandle Err;
-%-------------------------------------------------------------------
-if (nargin<4 | isempty(init_lam)), init_lam = [1;0]; tol=1;
-elseif nargin<5; tol=1;
-end;
-
-Funct=funct;
-Data=[x,y];
-
-% axis auto;
-% plot(x,y,'ro','EraseMode','xor');
-% title('Input data')
-% hold on
-%
-% Plothandle = plot(x,y,'b--','LineWidth',2,'EraseMode','xor');
-
-trace = 0;
-lambda = fminsearch('fitfunct',init_lam,[trace tol]);
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m
deleted file mode 100644
index 30115d4cad..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/fitfunct.m
+++ /dev/null
@@ -1,28 +0,0 @@
-function err = fitfunct(lambda)
-%FITFUN Used by FITDEMO.
-% FITFUN(lambda) returns the error between the data and the
-% values computed by the current function of lambda.
-% FITFUN assumes a function of the form
-%
-% y = c(1)*exp(-lambda(1)*t) + ... + c(n)*exp(-lambda(n)*t)
-%
-% with n linear parameters and n nonlinear parameters.
-
-% Copyright (c) 1984-97 by The MathWorks, Inc.
-% $Revision: 5.2 $ $Date: 1997/04/08 05:33:07 $
-
-%-------------------------------------------------------------------
-
-global Data Plothandle Funct Err;
-
-%-------------------------------------------------------------------
-x = Data(:,1);
-y = Data(:,2);
-
-z=feval(Funct,x,lambda(1), lambda(2));
-
-%set(Plothandle,'ydata',z)
-%drawnow
-
-err = norm(z-y);
-Err=err;
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m
deleted file mode 100644
index 29233e80e3..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/mrice.m
+++ /dev/null
@@ -1,11 +0,0 @@
-function [m1r, m2r, stdr] = mrice(sig, c)
-
-q = c.^2/4./sig^2;
-
-m1r = sqrt(pi*sig^2/2).*exp(-q).*(besseli(0, q).*(1+2*q)+besseli(1,q)*2.*q);
-
-m2r = 2*sig.^2+c.^2;
-
-stdr = sqrt(m2r-m1r.^2);
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m
deleted file mode 100644
index 9277d1fb9f..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricedemo.m
+++ /dev/null
@@ -1,146 +0,0 @@
-%% Rice/Rician Distribution Demo
-% Demonstrate ricernd, ricepdf, and ricestat, in the context of simulating
-% Rician distributed noise for Magnetic Resonance Imaging magnitude data.
-
-%% Example: Rician noise vs (additive) Gaussian noise
-% "Rician noise" depends on the data itself, it is not additive, so to
-% "add" Rician noise to data, what we really mean is make the data
-% Rician distributed.
-clear, close('all'), clc
-data = load('mri'); % MRI dataset (magnitude image) distributed with MATLAB
-im = double(data.D(:,:,1,16)); % (particular slice through the brain)
-s=5; % noise level (NB actual Rician stdev depends on signal, see ricestat)
-im_g = im + 5 * randn(size(im)); % *Add* Gaussian noise
-im_r = ricernd(im, s); % "Add" Rician noise (make Rician distributed)
-% Note that the Gaussian noise has made some data go negative.
-min_o = round(min(im(:))); max_o = round(max(im(:)));
-min_g = round(min(im_g(:))); max_g = round(max(im_g(:)));
-min_r = round(min(im_r(:))); max_r = round(max(im_r(:)));
-% Show each image with the same color scaling limits
-clim = [min_g max(max_g, max_r)];
-figure('Position', [30 500 800 300]); colormap(data.map);
-subplot(1,3,1); imagesc(im, clim); axis image;
-title('Original');
-xlabel(['Range: (' num2str(min_o) ', ' num2str(max_o) ')'])
-subplot(1,3,2); imagesc(im_g, clim); axis image;
-title('Gaussian noise');
-xlabel(['Range: (' num2str(min_g) ', ' num2str(max_g) ')'])
-subplot(1,3,3); imagesc(im_r, clim); axis image;
-title('Rician noise')
-xlabel(['Range: (' num2str(min_r) ', ' num2str(max_r) ')'])
-
-%% The Rician PDF
-x = linspace(0, 8, 100);
-figure;
-subplot(3, 1, 1)
-plot(x, ricepdf(x, 0, 1), x, ricepdf(x, 1, 1),...
- x, ricepdf(x, 2, 1), x, ricepdf(x, 4, 1))
-title('Rice PDF with s = 1')
-legend('v=0', 'v=1', 'v=2', 'v=4')
-subplot(3,1,2)
-plot(x, ricepdf(x, 1, 0.25), x, ricepdf(x, 1, 0.50),...
- x, ricepdf(x, 1, 1.00), x, ricepdf(x, 1, 2.00))
-title('Rice PDF with v = 1')
-legend('s=0.25', 's=0.50', 's=1.00', 's=2.00')
-subplot(3,1,3)
-plot(x, ricepdf(x, 0.5, 0.25), x, ricepdf(x, 1, 0.50),...
- x, ricepdf(x, 2.0, 1.00), x, ricepdf(x, 4, 2.00))
-title('Rice PDF with v/s = 2')
-legend('s=0.25', 's=0.50', 's=1.00', 's=2.00')
-
-%% Approximations to the Rician PDF
-% At high SNR (e.g. v/s > 3), Rician data is approximately Gaussian, though
-% note that v is not the mean of the Rician distribution, nor of the
-% Gaussian approximation (though for very high SNR it tends towards it).
-v = 1.75; s = 0.5; x = linspace(0, 4, 100);
-mu1 = v;
-gpdf1 = (2*pi*s^2)^(-0.5) * exp(-0.5*(x-mu1).^2/s^2);
-mu2 = ricestat(v, s); % (mu2 is approximately sqrt(v^2 + s^2))
-gpdf2 = (2*pi*s^2)^(-0.5) * exp(-0.5*(x-mu2).^2/s^2);
-figure; plot(x, ricepdf(x, v, s), x, gpdf1, x, gpdf2);
-title('High SNR');
-legend('Rician', 'Gaussian, naive mean', 'Gaussian, corrected mean')
-%%
-% At very low SNR, Rician data is approximately Rayleigh distributed
-% (with no signal, the distributions are exactly equivalent)
-v = 0.25; s = 0.5; x = linspace(0, 3, 100);
-raypdf = (x / s^2) .* exp(-x.^2 / (2*s^2));
-figure; plot(x, ricepdf(x, v, s), x, raypdf);
-title('Low SNR'); legend('Rician', 'Rayleigh')
-%%
-% At low-medium SNR, neither Gaussian nor Rayleigh is a great approximation
-v = 0.75; s = 0.5; x = linspace(-1, 3, 100);
-mu = ricestat(v, s);
-gpdf = (2*pi*s^2)^(-0.5) * exp(-0.5*(x-mu).^2/s^2);
-raypdf = (x / s^2) .* exp(-x.^2 / (2*s^2)); raypdf(x <= 0) = 0;
-figure; plot(x, ricepdf(x, v, s), x, gpdf, x, raypdf);
-title('Medium SNR'); legend('Rician', 'Gaussian', 'Rayleigh')
-
-%% A pitfal: Adding approximate Rician noise
-% Since the Rician distribution with zero signal is equivalent to the
-% Rayleigh, and with high SNR is approximated by a Gaussian, it is
-% tempting to add Rayleigh or Gaussian noise (depending on SNR) to existing
-% data, to simulate Rician distributed data (aka "adding Rician noise").
-v = 75; s = 50; % medium SNR => Add Rayleigh noise
-% Generate Rayleigh samples
-N = 10000;
-gsamp = s * randn(2, N);
-rsamp = sqrt(sum(gsamp .^ 2));
-
-%%
-% Compare data with added Rayleigh samples to expected Rician distribution
-r = v + rsamp; % Add Rayleigh noise to (constant) signal
-c = linspace(0, 250, 20);
-w = c(2); % histogram bin-width
-h = histc(r, c);
-figure; hold on; bar(c, h, 'histc');
-xl = xlim; x = linspace(xl(1), xl(2), 100);
-yl = ylim; % (for second plot)
-plot(x, N*w*ricepdf(x, v, s), 'r');
-title('Histogram of data, vs desired Rician PDF')
-legend('Data with added Rayleigh noise', 'Rician distribution')
-%%
-% Compare Rician samples to expected Rician distribution
-r = ricernd(v*ones(1, N), s);
-c = linspace(0, 250, 20);
-w = c(2); % histogram bin-width
-h = histc(r, c);
-figure; hold on; bar(c, h, 'histc');
-xl = xlim; x = linspace(xl(1), xl(2), 100);
-ylim(yl);
-plot(x, N*w*ricepdf(x, v, s), 'r');
-title('Histogram of data, vs desired Rician PDF')
-legend('Rician sampled data', 'Rician distribution')
-%%
-% We see that the additive Rayleigh result is very poor (with medium SNR).
-%
-% With high noise levels the appearance of results can differ dramatically:
-s = 0.15 * max_o;
-% Approximate additive Rayleigh/Gaussian noise:
-im_r = im;
-for i=1:numel(im_r)
- if im_r(i) <= 3*s
- im_r(i) = im_r(i) + s*norm(randn(2,1)); % Add Rayleigh noise
- else
- im_r(i) = im_r(i) + s*randn; % Add Gaussian noise
- end
-end
-% "Add" Rician noise (make Rician distributed):
-im_R = ricernd(im, s);
-% Show each image with the same color scaling limits
-min_r = round(min(im_r(:))); max_r = round(max(im_r(:)));
-min_R = round(min(im_R(:))); max_R = round(max(im_R(:)));
-clim = [min_r max(max_r, max_R)];
-figure('Position', [30 500 800 300]); colormap(data.map);
-subplot(1,3,1); imagesc(im, clim); axis image;
-title('Original');
-xlabel(['Range: (' num2str(min_o) ', ' num2str(max_o) ')'])
-subplot(1,3,2); imagesc(im_r, clim); axis image;
-title('Rayleigh/Gaussian noise')
-xlabel(['Range: (' num2str(min_r) ', ' num2str(max_r) ')'])
-subplot(1,3,3); imagesc(im_R, clim); axis image;
-title('Rician data');
-xlabel(['Range: (' num2str(min_R) ', ' num2str(max_R) ')'])
-
-%%
-% Copyright 2007 Ged Ridgway (Ged at cantab dot net)
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m
deleted file mode 100644
index c348018a0a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricepdf.m
+++ /dev/null
@@ -1,50 +0,0 @@
-function y = ricepdf(x, v, s)
-%RICEPDF Rice/Rician probability density function (pdf).
-% y = ricepdf(x, v, s) returns the pdf of the Rice (aka Rician)
-% distribution with parameters v and s, evaluated at the values in x.
-%
-% R ~ Rice(v, s) if R = sqrt(X^2 + Y^2), where X ~ N(v*cos(a), s^2) and
-% Y ~ N(v*sin(a), s^2) are independent normal distributions (any real a).
-% Note that v and s are *not* the mean and standard deviation of R -- use
-% ricestat to get these statistics for specified v and s.
-%
-% The size of Y is the common size of the input arguments. A scalar
-% input functions as a constant matrix of the same size as the other
-% inputs.
-%
-% Reference: http://en.wikipedia.org/wiki/Rice_distribution (!)
-%
-% Example:
-%
-% x = linspace(0, 8, 100);
-% figure; subplot(2, 1, 1)
-% plot(x, ricepdf(x, 0, 1), x, ricepdf(x, 1, 1),...
-% x, ricepdf(x, 2, 1), x, ricepdf(x, 4, 1))
-% title('Rice PDF with s=1')
-% legend('v=0', 'v=1', 'v=2', 'v=4')
-% subplot(2,1,2)
-% plot(x, ricepdf(x, 1, 0.25), x, ricepdf(x, 1, 0.50),...
-% x, ricepdf(x, 1, 1.00), x, ricepdf(x, 1, 2.00))
-% title('Rice PDF with v=1')
-% legend('s=0.25', 's=0.50', 's=1.00', 's=2.00')
-%
-% See also RICERND, RICESTAT.
-
-% Missing (?) 'See also's RICECDF, RICEFIT, RICEINV, RICELIKE
-
-% Inspired by normpdf from the MATLAB statistics toolbox
-% Copyright 2007 Ged Ridgway (Ged at cantab dot net)
-
-s2 = s.^2; % (neater below)
-
-try
- y = (x ./ s2) .*...
- exp(-0.5 * (x.^2 + v.^2) ./ s2) .*...
- besseli(0, x .* v ./ s2);
- % besseli(0, ...) is the zeroth order modified Bessel function of
- % the first kind. (see help bessel)
- y(x <= 0) = 0;
-catch
- error('ricepdf:InputSizeMismatch',...
- 'Non-scalar arguments must match in size.');
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m
deleted file mode 100644
index aad57c6a5c..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricernd.m
+++ /dev/null
@@ -1,51 +0,0 @@
-function r = ricernd(v, s)
-%RICERND Random samples from the Rice/Rician probability distribution.
-% r = ricepdf(v, s) returns random sample(s) from the Rice (aka Rician)
-% distribution with parameters v and s.
-% (either v or s may be arrays, if both are, they must match in size)
-%
-% R ~ Rice(v, s) if R = sqrt(X^2 + Y^2), where X ~ N(v*cos(a), s^2) and
-% Y ~ N(v*sin(a), s^2) are independent normal distributions (any real a).
-% Note that v and s are *not* the mean and standard deviation of R!
-%
-% The size of Y is the common size of the input arguments. A scalar
-% input functions as a constant matrix of the same size as the other
-% inputs.
-%
-% Note, to add Rician noise to data, with given s and data-dependent v:
-% new = ricernd(old, s);
-%
-% Reference: http://en.wikipedia.org/wiki/Rice_distribution (!)
-%
-% Example:
-%
-% % Compare histogram of random samples with theoretical PDF:
-% v = 4; s = 3; N = 1000;
-% r = ricernd(v*ones(1, N), s);
-% c = linspace(0, ceil(max(r)), 20);
-% w = c(2); % histogram bin-width
-% h = histc(r, c); bar(c, h, 'histc'); hold on
-% xl = xlim; x = linspace(xl(1), xl(2), 100);
-% plot(x, N*w*ricepdf(x, v, s), 'r');
-%
-% See also RICEPDF, RICESTAT.
-
-% Missing (?) 'See also's RICECDF, RICEFIT, RICEINV, RICELIKE
-
-% Inspired by normpdf from the MATLAB statistics toolbox
-% Copyright 2007 Ged Ridgway (Ged at cantab dot net)
-
-if isscalar(v)
- dim = size(s);
-elseif isscalar(s)
- dim = size(v);
-elseif all(isequal(size(v), size(s)))
- % (both non-scalar, matching)
- dim = size(v); % == size(s)
-else
- error('ricernd:InputSizeMismatch','Sizes of s and v inconsistent.')
-end
-
-x = s .* randn(dim) + v;
-y = s .* randn(dim);
-r = sqrt(x.^2 + y.^2);
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m
deleted file mode 100644
index 5adddeec0d..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/ricestat.m
+++ /dev/null
@@ -1,42 +0,0 @@
-function [mu vr] = ricestat(v, s)
-%RICESTAT Mean and variance of Rice/Rician probability distribution.
-% [mu vr] = ricepdf(v, s) returns the mean and variance of the Rice
-% distribution with parameters v and s.
-%
-% R ~ Rice(v, s) if R = sqrt(X^2 + Y^2), where X ~ N(v*cos(a), s^2) and
-% Y ~ N(v*sin(a), s^2) are independent normal distributions (any real a).
-% Note that v and s are *not* the mean and standard deviation of R!
-%
-% Reference: http://en.wikipedia.org/wiki/Rice_distribution (!)
-%
-% Example:
-%
-% % Compare expected and sample stats:
-% v = 5; s = 4; N = 1000;
-% r = ricernd(v*ones(1, N), s);
-% mu = mean(r), vr = var(r)
-% [Mu Vr] = ricestat(v, s)
-% % Plot histogram and mark expected mean +/- 1 stdev:
-% c = linspace(0, ceil(max(r)), 20);
-% w = c(2); % histogram bin-width
-% h = histc(r, c); bar(c, h, 'histc'); hold on
-% pk = N*w*ricepdf(Mu, v, s);
-% plot([Mu-sqrt(Vr) Mu+sqrt(Vr)], [pk pk]/2, 'ro-')
-% plot(Mu, pk/2, 'rx')
-%
-% See also RICEPDF, RICERND.
-
-% Missing (?) 'See also's RICECDF, RICEFIT, RICEINV, RICELIKE
-
-% Inspired by normstat from the MATLAB statistics toolbox
-% Copyright 2007 Ged Ridgway (Ged at cantab dot net)
-
-L = Lhalf(-0.5 * v^2 / s^2);
-mu = s * sqrt(pi/2) * L;
-vr = 2*s^2 + v^2 - (pi * s^2 / 2) * L^2;
-
-
-function l = Lhalf(x)
-% Laguerre polynomial L_{1/2}(x)
-% see Moments section of http://en.wikipedia.org/wiki/Rice_distribution
-l = exp(x/2) * ( (1-x) * besseli(0, -x/2) - x*besseli(1, -x/2) );
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m b/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m
deleted file mode 100644
index 8a626f7a10..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/Rice Factor Estimation/test_rice.m
+++ /dev/null
@@ -1,55 +0,0 @@
-clear all
-close all
-
-%% these lines are for syntetic data
-v = 10; s = 0.5; N = 20000;
- r = ricernd(v*ones(1, N), s);
-
-K = v.^2/(2*s.^2)
-rc = v + s*(randn(1,N)+1j*randn(1,N));
-r1 = abs(rc).^2;
-r2 = ricernd(v*ones(1, N), s).^2;
-r = r1;
-
-%% Rice factor estimation
-c = linspace(floor(min(sqrt(r(:)))), ceil(max(sqrt(r(:)))), 100);
-w = c(2)-c(1); % histogram bin-width
-h = hist(sqrt(r), c);
-h = h./(sum(h)*w);
-
-% estimate Rice factor using method of moments
-[Ke,v2,s2] = estimate_rice(r)
-epdf = ricepdf(c, sqrt(v2), sqrt(s2./2));
-epdf(isnan(epdf))=0;
-Err = norm(h-epdf);
-
-% use Claude's LS estimator
-init_lam = [sqrt(v2), sqrt(s2./2)];
-[lambda,Err2]=fitcurve(c.',h.','ricepdf',init_lam);
-Ke2 = lambda(1).^2/(2*lambda(2).^2)
-epdf2 = ricepdf(c, lambda(1), lambda(2));
-epdf2(isnan(epdf))=0;
-
-%% plot results
-figure(2)
-hold off
-bar(c, h); %, 'histc');
-%xlim([c(1),c(end)])
-hold on
-plot(c, epdf, 'r','Linewidth',2);
-plot(c, epdf2, 'g','Linewidth',2);
-hold off
-legend('Histogram','Method of Moments','LS estimation')
-%legend('Histogram','Estimated pdf');
-xlabel('Channel Gain (normalized by its mean)');
-ylabel('Histogram')
-
-
-%%
-%mcdf = empirical_cdf(c,sqrt(r));
-%figure(3)
-%hold off
-%semilogy(c,mcdf)
-%hold on
-%semilogy(c,cumsum(epdf)/sum(epdf),'r')
-%hold off
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/SISO.mat b/openair1/EMOS/LTE/POST_PROCESSING/SISO.mat
deleted file mode 100644
index 8834ba78df..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/SISO.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/SISO_scaling.mat b/openair1/EMOS/LTE/POST_PROCESSING/SISO_scaling.mat
deleted file mode 100644
index b40bd6929d..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/SISO_scaling.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/align_routes.m b/openair1/EMOS/LTE/POST_PROCESSING/align_routes.m
deleted file mode 100644
index a9edff928e..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/align_routes.m
+++ /dev/null
@@ -1,329 +0,0 @@
-addpath('~/Devel/matlab/IPDM')
-addpath('CapCom')
-addpath('maps')
-
-%pathname = '/media/data/AMBIALET';
-%mm='ambialet';
-%load ambialet.mat
-
-% 1) Identify the common set of routes between all 3 modes
-% --> saved in modex.ind_common
-
-% 2) remove routes taken more than once
-% --> saved in modex.ind_duplicate
-
-%% combine common and not duplicate
-mode1.ind_cnd = mode1.ind_common & ~mode1.ind_duplicate;
-mode2.ind_cnd = mode2.ind_common & ~mode2.ind_duplicate;
-mode6.ind_cnd = mode6.ind_common & ~mode6.ind_duplicate;
-
-% %% optional: select a subset of the routes
-% select1=zeros(1,length(mode1.ind_cnd));
-% select2=zeros(1,length(mode2.ind_cnd));
-% select6=zeros(1,length(mode6.ind_cnd));
-% mode1.gps_lon_cat(~mode1.ind_cnd) = nan;
-% mode1.gps_lon_cat(~mode1.ind_cnd) = nan;
-% mode2.gps_lat_cat(~mode2.ind_cnd) = nan;
-% mode2.gps_lon_cat(~mode2.ind_cnd) = nan;
-% mode6.gps_lon_cat(~mode6.ind_cnd) = nan;
-% mode6.gps_lat_cat(~mode6.ind_cnd) = nan;
-% figure(2)
-% hold off
-% [x1,y1] = plot_gps_coordinates(mm,mode1.gps_lon_cat,mode1.gps_lat_cat,[],[],'Mode1','blue','Marker','x','Line','none');
-% hold on
-% [x2,y2] = plot_gps_coordinates('',mode2.gps_lon_cat,mode2.gps_lat_cat,[],[],'Mode2','blue','Marker','s','Line','none');
-% %[x2_update,y2_update] = plot_gps_coordinates('',mode2_update.gps_lon_cat,mode2_update.gps_lat_cat);
-% [x6,y6] = plot_gps_coordinates('',mode6.gps_lon_cat,mode6.gps_lat_cat,[],[],'Mode6','blue','Marker','o','Line','none');
-% linkdata on
-% set(findobj('XDataSource','x1'),'ZDataSource','select1');
-% set(findobj('XDataSource','x2'),'ZDataSource','select2');
-% set(findobj('XDataSource','x6'),'ZDataSource','select6');
-% % you might have to set ZDataSource manually
-%
-% keyboard
-%
-% load ambialet_select1
-%
-% mode1.ind_cnd = select1~=0;
-% mode2.ind_cnd = select2~=0;
-% mode6.ind_cnd = select6~=0;
-
-
-% 3) Identify checkpoints (GPS coordinates) common to all routes, where any
-% of the routes has a discontinuity. Checkpoints of a single route can be
-% identified by using the end of file information or the data that has been
-% removed in points 1 and 2. Once a checkpoint is identified, the
-% corresponding checkpoint in the other routes has to be identified. We
-% take the point closest to it. At the end of this process we have split
-% our data set in continuous chunks, which are common to all routes.
-%
-%%
-mode1 = get_chunks(mode1);
-mode2 = get_chunks(mode2);
-mode6 = get_chunks(mode6);
-
-
-%% visualize all chunks
-%if 0
-h_fig = figure(1);
-hold off
-%colors = {'blue','green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'};
-cm = colormap(lines);
-for i=1:length(mode1.start_points);
- if (i==1)
- plot_gps_coordinates(mm,mode1.gps_lon_cat(mode1.start_points(i):mode1.end_points(i)),...
- mode1.gps_lat_cat(mode1.start_points(i):mode1.end_points(i)),...
- [],[],sprintf('m1c%d',i),cm(mod(i-1,64)+1,:),'Marker','x','Line','none');
- else
- plot_gps_coordinates('',mode1.gps_lon_cat(mode1.start_points(i):mode1.end_points(i)),...
- mode1.gps_lat_cat(mode1.start_points(i):mode1.end_points(i)),...
- [],[],sprintf('m1c%d',i),cm(mod(i-1,64)+1,:),'Marker','x','Line','none');
- end
- fprintf(1,'saved %d\n',i);
-end
-saveas(h_fig,fullfile(pathname,'route_align','chunks_mode1.jpg'));
-
-h_fig = figure(2);
-hold off
-%colors = {'blue','green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'};
-cm = colormap(lines);
-for i=1:length(mode2.start_points);
- if (i==1)
- plot_gps_coordinates(mm,mode2.gps_lon_cat(mode2.start_points(i):mode2.end_points(i)),...
- mode2.gps_lat_cat(mode2.start_points(i):mode2.end_points(i)),...
- [],[],sprintf('m2c%d',i),cm(mod(i-1,64)+1,:),'Marker','o','Line','none');
- else
- plot_gps_coordinates('',mode2.gps_lon_cat(mode2.start_points(i):mode2.end_points(i)),...
- mode2.gps_lat_cat(mode2.start_points(i):mode2.end_points(i)),...
- [],[],sprintf('m2c%d',i),cm(mod(i-1,64)+1,:),'Marker','o','Line','none');
- end
- fprintf(1,'saved %d\n',i);
-end
-saveas(h_fig,fullfile(pathname,'route_align','chunks_mode2.jpg'));
-
-h_fig = figure(3);
-hold off
-%colors = {'blue','green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'};
-cm = colormap(lines);
-for i=1:length(mode6.start_points);
- if (i==1)
- plot_gps_coordinates(mm,mode6.gps_lon_cat(mode6.start_points(i):mode6.end_points(i)),...
- mode6.gps_lat_cat(mode6.start_points(i):mode6.end_points(i)),...
- [],[],sprintf('m6c%d',i),cm(mod(i-1,64)+1,:),'Marker','s','Line','none');
- else
- plot_gps_coordinates('',mode6.gps_lon_cat(mode6.start_points(i):mode6.end_points(i)),...
- mode6.gps_lat_cat(mode6.start_points(i):mode6.end_points(i)),...
- [],[],sprintf('m6c%d',i),cm(mod(i-1,64)+1,:),'Marker','s','Line','none');
- end
- fprintf(1,'saved %d\n',i);
-end
-saveas(h_fig,fullfile(pathname,'route_align','chunks_mode6.jpg'));
-
-%keyboard
-%end
-
-% testpoints1 = [mode1.gps_lat_cat(mode1.ind_cnd).' mode2.gps_lon_cat(mode1.ind_cnd).'];
-% testpoints2 = [mode2.gps_lat_cat(mode2.ind_cnd).' mode2.gps_lon_cat(mode2.ind_cnd).'];
-% testpoints6 = [mode6.gps_lat_cat(mode6.ind_cnd).' mode2.gps_lon_cat(mode6.ind_cnd).'];
-
-%%
-startpoint1 = [mode1.gps_lat_cat(mode1.start_points).' mode1.gps_lon_cat(mode1.start_points).'];
-endpoint1 = [mode1.gps_lat_cat(mode1.end_points).' mode1.gps_lon_cat(mode1.end_points).'];
-startpoint2 = [mode2.gps_lat_cat(mode2.start_points).' mode2.gps_lon_cat(mode2.start_points).'];
-endpoint2 = [mode2.gps_lat_cat(mode2.end_points).' mode2.gps_lon_cat(mode2.end_points).'];
-startpoint6 = [mode6.gps_lat_cat(mode6.start_points).' mode6.gps_lon_cat(mode6.start_points).'];
-endpoint6 = [mode6.gps_lat_cat(mode6.end_points).' mode6.gps_lon_cat(mode6.end_points).'];
-
-% %%
-% [mode2,startpoint2_1] = addpoints(mode2,startpoint1);
-% [mode2,startpoint2_6] = addpoints(mode2,startpoint6);
-% [mode1,startpoint1_2] = addpoints(mode1,startpoint2);
-% [mode1,startpoint1_6] = addpoints(mode1,startpoint6);
-% [mode6,startpoint6_1] = addpoints(mode6,startpoint1);
-% [mode6,startpoint6_2] = addpoints(mode6,startpoint2);
-%
-% [mode2,endpoint2_1] = addpoints(mode2,endpoint1);
-% [mode2,endpoint2_6] = addpoints(mode2,endpoint6);
-% [mode1,endpoint1_2] = addpoints(mode1,endpoint2);
-% [mode1,endpoint1_6] = addpoints(mode1,endpoint6);
-% [mode6,endpoint6_1] = addpoints(mode6,endpoint1);
-% [mode6,endpoint6_2] = addpoints(mode6,endpoint2);
-
-%% for each start and endpoint get the corresponing point in the other modes
-startpoint2_1 = find_closest_points(mode2,startpoint1);
-startpoint2_6 = find_closest_points(mode2,startpoint6);
-startpoint1_2 = find_closest_points(mode1,startpoint2);
-startpoint1_6 = find_closest_points(mode1,startpoint6);
-startpoint6_1 = find_closest_points(mode6,startpoint1);
-startpoint6_2 = find_closest_points(mode6,startpoint2);
-
-endpoint2_1 = find_closest_points(mode2,endpoint1);
-endpoint2_6 = find_closest_points(mode2,endpoint6);
-endpoint1_2 = find_closest_points(mode1,endpoint2);
-endpoint1_6 = find_closest_points(mode1,endpoint6);
-endpoint6_1 = find_closest_points(mode6,endpoint1);
-endpoint6_2 = find_closest_points(mode6,endpoint2);
-
-%%
-num_chunks = length(startpoint1)+length(startpoint1_2)+length(startpoint1_6);
-
-startpoint1_all = [mode1.start_points startpoint1_2 startpoint1_6];
-startpoint2_all = [startpoint2_1 mode2.start_points startpoint2_6];
-startpoint6_all = [startpoint6_1 startpoint6_2 mode6.start_points ];
-
-endpoint1_all = [mode1.end_points endpoint1_2 endpoint1_6];
-endpoint2_all = [endpoint2_1 mode2.end_points endpoint2_6];
-endpoint6_all = [endpoint6_1 endpoint6_2 mode6.end_points ];
-
-%% make a list of structure with fields
-%gps_data = struct('lon',0,'lat',0,'time',0);
-chunk_data = struct('start_gps', zeros(1,2), ...
- 'end_gps', zeros(1,2), ...
- 'start_idx', 0, ...
- 'end_idx', 0, ...
- 'indices', []);
-chunk_list = struct('mode1',chunk_data,'mode2',chunk_data,'mode6',chunk_data);
-
-%% old version
-for i=1:num_chunks
- chunk_list(i).mode1.start_gps = [mode1.gps_lat_cat(startpoint1_all(i)) mode1.gps_lon_cat(startpoint1_all(i))];
- chunk_list(i).mode1.end_gps = [mode1.gps_lat_cat(endpoint1_all(i)) mode1.gps_lon_cat(endpoint1_all(i))];
- chunk_list(i).mode1.start_idx = startpoint1_all(i);
- chunk_list(i).mode1.end_idx = endpoint1_all(i);
- if chunk_list(i).mode1.start_idx>chunk_list(i).mode1.end_idx %time reverse
- chunk_list(i).mode1.indices = chunk_list(i).mode1.start_idx:-1:chunk_list(i).mode1.end_idx;
- else
- chunk_list(i).mode1.indices = chunk_list(i).mode1.start_idx:chunk_list(i).mode1.end_idx;
- end
- % puncutre indices that are not in mode1.ind_cnd;
- % chunk_list(i).mode1.indices = chunk_list(i).mode1.indices(mode1.ind_cnd(chunk_list(i).mode1.indices));
- if all(mode1.ind_cnd(chunk_list(i).mode1.indices)) % it is within a chunk
- chunk_list(i).mode1.ok = 1;
- else
- chunk_list(i).mode1.ok = 0;
- end
-
- chunk_list(i).mode2.start_gps = [mode2.gps_lat_cat(startpoint2_all(i)) mode2.gps_lon_cat(startpoint2_all(i))];
- chunk_list(i).mode2.end_gps = [mode2.gps_lat_cat(endpoint2_all(i)) mode2.gps_lon_cat(endpoint2_all(i))];
- chunk_list(i).mode2.start_idx = startpoint2_all(i);
- chunk_list(i).mode2.end_idx = endpoint2_all(i);
- if chunk_list(i).mode2.start_idx>chunk_list(i).mode2.end_idx %time reverse
- chunk_list(i).mode2.indices = chunk_list(i).mode2.start_idx:-1:chunk_list(i).mode2.end_idx;
- else
- chunk_list(i).mode2.indices = chunk_list(i).mode2.start_idx:chunk_list(i).mode2.end_idx;
- end
- % puncutre indices that are not in mode2.ind_cnd;
- % chunk_list(i).mode2.indices = chunk_list(i).mode2.indices(mode2.ind_cnd(chunk_list(i).mode2.indices));
- if all(mode2.ind_cnd(chunk_list(i).mode2.indices)) % it is within a chunk
- chunk_list(i).mode2.ok = 1;
- else
- chunk_list(i).mode2.ok = 0;
- end
-
- chunk_list(i).mode6.start_gps = [mode6.gps_lat_cat(startpoint6_all(i)) mode6.gps_lon_cat(startpoint6_all(i))];
- chunk_list(i).mode6.end_gps = [mode6.gps_lat_cat(endpoint6_all(i)) mode6.gps_lon_cat(endpoint6_all(i))];
- chunk_list(i).mode6.start_idx = startpoint6_all(i);
- chunk_list(i).mode6.end_idx = endpoint6_all(i);
- if chunk_list(i).mode6.start_idx>chunk_list(i).mode6.end_idx %time reverse
- chunk_list(i).mode6.indices = chunk_list(i).mode6.start_idx:-1:chunk_list(i).mode6.end_idx;
- else
- chunk_list(i).mode6.indices = chunk_list(i).mode6.start_idx:chunk_list(i).mode6.end_idx;
- end
- % puncutre indices that are not in mode6.ind_cnd;
- %chunk_list(i).mode6.indices = chunk_list(i).mode6.indices(mode6.ind_cnd(chunk_list(i).mode6.indices));
- if all(mode6.ind_cnd(chunk_list(i).mode6.indices)) % it is within a chunk
- chunk_list(i).mode6.ok = 1;
- else
- chunk_list(i).mode6.ok = 0;
- end
-
-
-end
-
-%
-% 4) For each chunk identify if it is time reversed by comparing it to the
-% time indices of the starting and the end point
-%
-% 5) reorder the routes to give one continuous route. This has to be done
-% manually for one route. The others can be automatically aligned to the
-% reference route.
-
-%% compute some statistics of the chunks
-% historgram of length
-chunk_size1 = zeros(1,num_chunks);
-chunk_size2 = zeros(1,num_chunks);
-chunk_size6 = zeros(1,num_chunks);
-chunk_idx = false(1,num_chunks);
-for i=1:num_chunks
- chunk_size1(i) = length(chunk_list(i).mode1.indices);
- chunk_size2(i) = length(chunk_list(i).mode2.indices);
- chunk_size6(i) = length(chunk_list(i).mode6.indices);
-% if (max(chunk_size1(i),chunk_size2(i))/min(chunk_size1(i),chunk_size2(i))<10 && ...
-% max(chunk_size1(i),chunk_size6(i))/min(chunk_size1(i),chunk_size6(i))<10 && ...
-% max(chunk_size2(i),chunk_size6(i))/min(chunk_size2(i),chunk_size6(i))<10)
-% chunk_idx(i) = true;
-% end
- if (chunk_list(i).mode1.ok && chunk_list(i).mode2.ok && chunk_list(i).mode6.ok && ...
- length(chunk_list(i).mode1.indices)>=10 && length(chunk_list(i).mode2.indices)>=10 && length(chunk_list(i).mode6.indices)>=10)
- chunk_idx(i)=true;
- end
-end
-
-h_fig = figure(4);
-hold off
-bar([chunk_size1(chunk_idx);chunk_size2(chunk_idx);chunk_size6(chunk_idx)].','stacked')
-%set(gca,'yscale','log');
-legend('mode1','mode2','mode6')
-xlabel('chunk')
-ylabel('# samples')
-saveas(h_fig,fullfile(pathname,'route_align','chunk_stats.eps'), 'epsc2');
-
-%% visualize chunks ver 1
-h_fig=figure(10);
-hold off
-first_plot=1;
-cm = colormap(lines);
-for i=1:num_chunks
- if chunk_idx(i)
- h_fig=figure(10);
- if (first_plot==1)
- plot_gps_coordinates(mm,mode1.gps_lon_cat(chunk_list(i).mode1.indices),...
- mode1.gps_lat_cat(chunk_list(i).mode1.indices),...
- [],[],sprintf('chunk %d',i),cm(mod(i-1,64)+1,:),...
- 'Marker','x','Line','none');
- first_plot = 0;
- else
- plot_gps_coordinates('',mode1.gps_lon_cat(chunk_list(i).mode1.indices),...
- mode1.gps_lat_cat(chunk_list(i).mode1.indices),...
- [],[],sprintf('chunk %d',i),cm(mod(i-1,64)+1,:),...
- 'Marker','x','Line','none');
- end
- plot_gps_coordinates('',mode2.gps_lon_cat(chunk_list(i).mode2.indices),...
- mode2.gps_lat_cat(chunk_list(i).mode2.indices),...
- [],[],'',cm(mod(i-1,64)+1,:),...
- 'Marker','o','Line','none');
- plot_gps_coordinates('',mode6.gps_lon_cat(chunk_list(i).mode6.indices),...
- mode6.gps_lat_cat(chunk_list(i).mode6.indices),...
- [],[],'',cm(mod(i-1,64)+1,:),...
- 'Marker','s','Line','none');
- %fprintf(1,'saved %d\n',i);
- %drawnow;
- plot_distance_travelled(mode1,chunk_list(i).mode1.indices,...
- mode2,mode2_ideal,chunk_list(i).mode2.indices,...
- mode6,chunk_list(i).mode6.indices,...
- fullfile(pathname,'route_align'), i, mm);
- end
-end
-h_fig=figure(10);
-saveas(h_fig,fullfile(pathname,'route_align','chunks.jpg'));
-
-
-% %%
-% h_fig = figure(6);
-% align_matrix = ones(length(mode1.start_points),length(mode1.ind_cnd));
-% for i=1:length(mode1.start_points)
-% align_matrix(i,mode1.start_points(i):mode1.end_points(i)) = 0;
-% end
-% imagesc(align_matrix)
-% xlabel('time [sec]')
-% ylabel('chunk')
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom1.mat b/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom1.mat
deleted file mode 100644
index 2fb84023b6..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom1.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom2.mat b/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom2.mat
deleted file mode 100644
index de4bd4af35..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom2.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom3.mat b/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom3.mat
deleted file mode 100644
index a56bac2566..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/ambialet_zoom3.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode1_siso.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode1_siso.m
deleted file mode 100644
index d4064ebe4c..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode1_siso.m
+++ /dev/null
@@ -1,180 +0,0 @@
-%load 'table_LTE_MODE_4_5.mat';
-load 'SISO.mat';
-
-[x, y, z] = size(estimates_UE_1(1).channel);
-
-estimates_UE1 = estimates_UE_1(1,:);
-estimates_UE2 = estimates_UE_1(2,:);
-
-chcap_siso = zeros(1,1200, length(estimates_UE1));
-chcap_siso_16 = zeros(1,1200, length(estimates_UE1));
-chcap_siso_64 = zeros(1,1200, length(estimates_UE1));
-
-subband_indices = 1:48:288;
-subband_indices(7) = 289;
-subband_indices(8) = 301;
-for est=1:length(estimates_UE1)
-
- N0_1stRx = (double(estimates_UE1(est).phy_measurements(11).n0_power(1)));
- N0_2ndRx = (double(estimates_UE2(est).phy_measurements(11).n0_power(1)));
-
-
- H = estimates_UE1(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind1] = max(Hs);
- antenna_index1 = estimates_UE1(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- H = estimates_UE2(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind2] = max(Hs);
- antenna_index2 = estimates_UE2(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- %h11_eNB1 = double([estimates_UE1(est).channel(z+1:end,1,ind1).real]) + 1j*double([estimates_UE1(est).channel(z+1:end,1,ind1).imag]);
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,1,ind1),'int16');
- h11_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h11_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h11_eNB1_srs1 = interp1(1:6:300,h11_eNB1(1:50),1:1:300,'linear','extrap');
- h11_eNB1_srs2 = interp1(4:6:300,h11_eNB1(51:100),1:1:300,'linear','extrap');
- h11_eNB1_srs3 = interp1(1:6:300,h11_eNB1(101:150),1:1:300,'linear','extrap');
- h11_eNB1_srs4 = interp1(4:6:300,h11_eNB1(151:200),1:1:300,'linear','extrap');
-
- h11_eNB1_comp = [h11_eNB1_srs1' h11_eNB1_srs2' h11_eNB1_srs3' h11_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,2,ind1),'int16');
-
- h12_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h12_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h12_eNB1_srs1 = interp1(1:6:300,h12_eNB1(1:50),1:1:300,'linear','extrap');
- h12_eNB1_srs2 = interp1(4:6:300,h12_eNB1(51:100),1:1:300,'linear','extrap');
- h12_eNB1_srs3 = interp1(1:6:300,h12_eNB1(101:150),1:1:300,'linear','extrap');
- h12_eNB1_srs4 = interp1(4:6:300,h12_eNB1(151:200),1:1:300,'linear','extrap');
-
- h12_eNB1_comp = [h12_eNB1_srs1' h12_eNB1_srs2' h12_eNB1_srs3' h12_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,3,ind1),'int16');
- h21_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h21_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h21_eNB1_srs1 = interp1(4:6:300,h21_eNB1(1:50),1:1:300,'linear','extrap');
- h21_eNB1_srs2 = interp1(1:6:300,h21_eNB1(51:100),1:1:300,'linear','extrap');
- h21_eNB1_srs3 = interp1(4:6:300,h21_eNB1(101:150),1:1:300,'linear','extrap');
- h21_eNB1_srs4 = interp1(1:6:300,h21_eNB1(151:200),1:1:300,'linear','extrap');
-
- h21_eNB1_comp = [h21_eNB1_srs1' h21_eNB1_srs2' h21_eNB1_srs3' h21_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,4,ind1),'int16');
- h22_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h22_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h22_eNB1_srs1 = interp1(4:6:300,h22_eNB1(1:50),1:1:300,'linear','extrap');
- h22_eNB1_srs2 = interp1(1:6:300,h22_eNB1(51:100),1:1:300,'linear','extrap');
- h22_eNB1_srs3 = interp1(4:6:300,h22_eNB1(101:150),1:1:300,'linear','extrap');
- h22_eNB1_srs4 = interp1(1:6:300,h22_eNB1(151:200),1:1:300,'linear','extrap');
-
- h22_eNB1_comp = [h22_eNB1_srs1' h22_eNB1_srs2' h22_eNB1_srs3' h22_eNB1_srs4']';
-
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,1,ind2),'int16');
-
- h11_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h11_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h11_eNB2_srs1 = interp1(1:6:300,h11_eNB2(1:50),1:1:300,'linear','extrap');
- h11_eNB2_srs2 = interp1(4:6:300,h11_eNB2(51:100),1:1:300,'linear','extrap');
- h11_eNB2_srs3 = interp1(1:6:300,h11_eNB2(101:150),1:1:300,'linear','extrap');
- h11_eNB2_srs4 = interp1(4:6:300,h11_eNB2(151:200),1:1:300,'linear','extrap');
-
- h11_eNB2_comp = [h11_eNB2_srs1' h11_eNB2_srs2' h11_eNB2_srs3' h11_eNB2_srs4']';
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,2,ind2),'int16');
- h12_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h12_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h12_eNB2_srs1 = interp1(1:6:300,h12_eNB2(1:50),1:1:300,'linear','extrap');
- h12_eNB2_srs2 = interp1(4:6:300,h12_eNB2(51:100),1:1:300,'linear','extrap');
- h12_eNB2_srs3 = interp1(1:6:300,h12_eNB2(101:150),1:1:300,'linear','extrap');
- h12_eNB2_srs4 = interp1(4:6:300,h12_eNB2(151:200),1:1:300,'linear','extrap');
-
- h12_eNB2_comp = [h12_eNB2_srs1' h12_eNB2_srs2' h12_eNB2_srs3' h12_eNB2_srs4']';
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,3,ind2),'int16');
- h21_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h21_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
- h21_eNB2_srs1 = interp1(4:6:300,h21_eNB2(1:50),1:1:300,'linear','extrap');
- h21_eNB2_srs2 = interp1(1:6:300,h21_eNB2(51:100),1:1:300,'linear','extrap');
- h21_eNB2_srs3 = interp1(4:6:300,h21_eNB2(101:150),1:1:300,'linear','extrap');
- h21_eNB2_srs4 = interp1(1:6:300,h21_eNB2(151:200),1:1:300,'linear','extrap');
-
- h21_eNB2_comp = [h21_eNB2_srs1' h21_eNB2_srs2' h21_eNB2_srs3' h21_eNB2_srs4']';
-
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,4,ind2),'int16');
- h22_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h22_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h22_eNB2_srs1 = interp1(4:6:300,h22_eNB2(1:50),1:1:300,'linear','extrap');
- h22_eNB2_srs2 = interp1(1:6:300,h22_eNB2(51:100),1:1:300,'linear','extrap');
- h22_eNB2_srs3 = interp1(4:6:300,h22_eNB2(101:150),1:1:300,'linear','extrap');
- h22_eNB2_srs4 = interp1(1:6:300,h22_eNB2(151:200),1:1:300,'linear','extrap');
-
- h22_eNB2_comp = [h22_eNB2_srs1' h22_eNB2_srs2' h22_eNB2_srs3' h22_eNB2_srs4']';
-
-
- SNR_eNB1_1stRx = 10*log10(((abs(h11_eNB1_comp + h21_eNB1_comp).^2))/N0_1stRx);
- SNR_eNB1_2ndRx = 10*log10(((abs(h12_eNB1_comp + h22_eNB1_comp).^2))/N0_2ndRx);
- %SNR_eNB1_2Rx = 10*log10((((abs(h11_eNB1_comp + h12_eNB1_comp).^2))/NO_1stRx) + (((abs(h21_eNB1_comp + h22_eNB1_comp).^2))/NO_2ndRx));
-
- SNR_eNB2_1stRx = 10*log10(((abs(h11_eNB2_comp + h21_eNB2_comp).^2))/N0_1stRx);
- SNR_eNB2_2ndRx = 10*log10(((abs(h12_eNB2_comp + h22_eNB2_comp).^2))/N0_2ndRx);
- %SNR_eNB2_2Rx = 10*log10((((abs(h11_eNB2_comp + h12_eNB2_comp).^2))/NO_1stRx) + (((abs(h21_eNB2_comp + h22_eNB2_comp).^2))/NO_2ndRx));
-
- SNR_eNB1_1stRx((SNR_eNB1_1stRx <= -20)) = -20;
- SNR_eNB1_1stRx((SNR_eNB1_1stRx >= 40)) = 40;
-
- SNR_eNB2_1stRx((SNR_eNB2_1stRx <= -20)) = -20;
- SNR_eNB2_1stRx((SNR_eNB2_1stRx >= 40)) = 40;
-
- SNR_eNB1_2ndRx((SNR_eNB1_2ndRx <= -20)) = -20;
- SNR_eNB1_2ndRx((SNR_eNB1_2ndRx >= 40)) = 40;
-
- SNR_eNB2_2ndRx((SNR_eNB2_2ndRx <= -20)) = -20;
- SNR_eNB2_2ndRx((SNR_eNB2_2ndRx >= 40)) = 40;
-
-
- chcap_siso_1 = [];
- chcap_siso_2 = [];
- chcap_siso_3 = [];
-
- for i=1:1:7
- if (antenna_index1(i) == 0)
- SNR_eNB1 = SNR_eNB1_1stRx(:,subband_indices(i):subband_indices(i+1)-1);
- else
- SNR_eNB1 = SNR_eNB1_2ndRx(:,subband_indices(i):subband_indices(i+1)-1);
- end
-
- if (antenna_index2(i) == 0)
- SNR_eNB2 = SNR_eNB2_1stRx(:,subband_indices(i):subband_indices(i+1)-1);
- else
- SNR_eNB2 = SNR_eNB2_2ndRx(:,subband_indices(i):subband_indices(i+1)-1);
- end
- if(sum(SNR_eNB2(:)) < sum(SNR_eNB1(:)))
- chcap_siso_1 = [chcap_siso_1 (interp1(SNR,c_siso_4Qam,SNR_eNB1(:),'nearest','extrap'))'];
- chcap_siso_2 = [chcap_siso_2 (interp1(SNR,c_siso_16Qam,SNR_eNB1(:),'nearest','extrap'))'];
- chcap_siso_3 = [chcap_siso_3 (interp1(SNR,c_siso_64Qam,SNR_eNB1(:),'nearest','extrap'))'];
-
- else
- chcap_siso_1 = [chcap_siso_1 (interp1(SNR,c_siso_4Qam,SNR_eNB2(:),'nearest','extrap'))'];
- chcap_siso_2 = [chcap_siso_2 (interp1(SNR,c_siso_16Qam,SNR_eNB2(:),'nearest','extrap'))'];
- chcap_siso_3 = [chcap_siso_3 (interp1(SNR,c_siso_64Qam,SNR_eNB2(:),'nearest','extrap'))'];
-
- end
- end
-
- chcap_siso(1,:,est) = chcap_siso_1;
- chcap_siso_16(1,:,est) = chcap_siso_2;
- chcap_siso_64(1,:,est) = chcap_siso_3;
-end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m
deleted file mode 100644
index 575c80cc4f..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode2_alamouti.m
+++ /dev/null
@@ -1,178 +0,0 @@
-%load 'table_LTE_MODE_4_5.mat';
-load 'SISO.mat';
-
-[x, y, z] = size(estimates_UE_1(1).channel);
-
-estimates_UE1 = estimates_UE_1(1,:);
-estimates_UE2 = estimates_UE_1(2,:);
-
-chcap_alamouti = zeros(1,1200, length(estimates_UE1));
-chcap_alamouti_16 = zeros(1,1200, length(estimates_UE1));
-chcap_alamouti_64 = zeros(1,1200, length(estimates_UE1));
-subband_indices = 1:48:288;
-subband_indices(7) = 289;
-subband_indices(8) = 301;
-for est=1:length(estimates_UE1)
-
- N0_1stRx = (double(estimates_UE1(est).phy_measurements(11).n0_power(1)));
- N0_2ndRx = (double(estimates_UE2(est).phy_measurements(11).n0_power(1)));
-
-
- H = estimates_UE1(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind1] = max(Hs);
- antenna_index1 = estimates_UE1(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- H = estimates_UE2(est).channel;
- Hc = double(H(1:2:end,:,:))+1j*double(H(2:2:end,:,:));
- Hs = squeeze(10*log10(sum(sum(abs(Hc).^2,1),2)));
- [val, ind2] = max(Hs);
- antenna_index2 = estimates_UE2(est).phy_measurements(11).selected_rx_antennas(:,1);
-
- %h11_eNB1 = double([estimates_UE1(est).channel(z+1:end,1,ind1).real]) + 1j*double([estimates_UE1(est).channel(z+1:end,1,ind1).imag]);
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,1,ind1),'int16');
- h11_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h11_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h11_eNB1_srs1 = interp1(1:6:300,h11_eNB1(1:50),1:1:300,'linear','extrap');
- h11_eNB1_srs2 = interp1(4:6:300,h11_eNB1(51:100),1:1:300,'linear','extrap');
- h11_eNB1_srs3 = interp1(1:6:300,h11_eNB1(101:150),1:1:300,'linear','extrap');
- h11_eNB1_srs4 = interp1(4:6:300,h11_eNB1(151:200),1:1:300,'linear','extrap');
-
- h11_eNB1_comp = [h11_eNB1_srs1' h11_eNB1_srs2' h11_eNB1_srs3' h11_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,2,ind1),'int16');
-
- h12_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h12_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h12_eNB1_srs1 = interp1(1:6:300,h12_eNB1(1:50),1:1:300,'linear','extrap');
- h12_eNB1_srs2 = interp1(4:6:300,h12_eNB1(51:100),1:1:300,'linear','extrap');
- h12_eNB1_srs3 = interp1(1:6:300,h12_eNB1(101:150),1:1:300,'linear','extrap');
- h12_eNB1_srs4 = interp1(4:6:300,h12_eNB1(151:200),1:1:300,'linear','extrap');
-
- h12_eNB1_comp = [h12_eNB1_srs1' h12_eNB1_srs2' h12_eNB1_srs3' h12_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,3,ind1),'int16');
- h21_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h21_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h21_eNB1_srs1 = interp1(4:6:300,h21_eNB1(1:50),1:1:300,'linear','extrap');
- h21_eNB1_srs2 = interp1(1:6:300,h21_eNB1(51:100),1:1:300,'linear','extrap');
- h21_eNB1_srs3 = interp1(4:6:300,h21_eNB1(101:150),1:1:300,'linear','extrap');
- h21_eNB1_srs4 = interp1(1:6:300,h21_eNB1(151:200),1:1:300,'linear','extrap');
-
- h21_eNB1_comp = [h21_eNB1_srs1' h21_eNB1_srs2' h21_eNB1_srs3' h21_eNB1_srs4']';
-
- channel_tmp = typecast(estimates_UE1(est).channel(201:end,4,ind1),'int16');
- h22_eNB1 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h22_eNB1 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h22_eNB1_srs1 = interp1(4:6:300,h22_eNB1(1:50),1:1:300,'linear','extrap');
- h22_eNB1_srs2 = interp1(1:6:300,h22_eNB1(51:100),1:1:300,'linear','extrap');
- h22_eNB1_srs3 = interp1(4:6:300,h22_eNB1(101:150),1:1:300,'linear','extrap');
- h22_eNB1_srs4 = interp1(1:6:300,h22_eNB1(151:200),1:1:300,'linear','extrap');
-
- h22_eNB1_comp = [h22_eNB1_srs1' h22_eNB1_srs2' h22_eNB1_srs3' h22_eNB1_srs4']';
-
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,1,ind2),'int16');
-
- h11_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %%h11_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h11_eNB2_srs1 = interp1(1:6:300,h11_eNB2(1:50),1:1:300,'linear','extrap');
- h11_eNB2_srs2 = interp1(4:6:300,h11_eNB2(51:100),1:1:300,'linear','extrap');
- h11_eNB2_srs3 = interp1(1:6:300,h11_eNB2(101:150),1:1:300,'linear','extrap');
- h11_eNB2_srs4 = interp1(4:6:300,h11_eNB2(151:200),1:1:300,'linear','extrap');
-
- h11_eNB2_comp = [h11_eNB2_srs1' h11_eNB2_srs2' h11_eNB2_srs3' h11_eNB2_srs4']';
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,2,ind2),'int16');
- h12_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h12_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h12_eNB2_srs1 = interp1(1:6:300,h12_eNB2(1:50),1:1:300,'linear','extrap');
- h12_eNB2_srs2 = interp1(4:6:300,h12_eNB2(51:100),1:1:300,'linear','extrap');
- h12_eNB2_srs3 = interp1(1:6:300,h12_eNB2(101:150),1:1:300,'linear','extrap');
- h12_eNB2_srs4 = interp1(4:6:300,h12_eNB2(151:200),1:1:300,'linear','extrap');
-
- h12_eNB2_comp = [h12_eNB2_srs1' h12_eNB2_srs2' h12_eNB2_srs3' h12_eNB2_srs4']';
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,3,ind2),'int16');
- h21_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h21_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
- h21_eNB2_srs1 = interp1(4:6:300,h21_eNB2(1:50),1:1:300,'linear','extrap');
- h21_eNB2_srs2 = interp1(1:6:300,h21_eNB2(51:100),1:1:300,'linear','extrap');
- h21_eNB2_srs3 = interp1(4:6:300,h21_eNB2(101:150),1:1:300,'linear','extrap');
- h21_eNB2_srs4 = interp1(1:6:300,h21_eNB2(151:200),1:1:300,'linear','extrap');
-
- h21_eNB2_comp = [h21_eNB2_srs1' h21_eNB2_srs2' h21_eNB2_srs3' h21_eNB2_srs4']';
-
-
- channel_tmp = typecast(estimates_UE2(est).channel(201:end,4,ind2),'int16');
- h22_eNB2 = double(channel_tmp(1:2:end,1)) + 1j*double(channel_tmp(2:2:end,1));
- %% h22_eNB2 = double(channel_tmp(2:2:end,1)) + 1j*double(channel_tmp(1:2:end,1));
-
- h22_eNB2_srs1 = interp1(4:6:300,h22_eNB2(1:50),1:1:300,'linear','extrap');
- h22_eNB2_srs2 = interp1(1:6:300,h22_eNB2(51:100),1:1:300,'linear','extrap');
- h22_eNB2_srs3 = interp1(4:6:300,h22_eNB2(101:150),1:1:300,'linear','extrap');
- h22_eNB2_srs4 = interp1(1:6:300,h22_eNB2(151:200),1:1:300,'linear','extrap');
-
- h22_eNB2_comp = [h22_eNB2_srs1' h22_eNB2_srs2' h22_eNB2_srs3' h22_eNB2_srs4']';
-
-
-
- SNR_eNB1_1stRx = 10*log10(((abs(h11_eNB1_comp).^2) + (abs(h21_eNB1_comp).^2))/N0_1stRx);
- SNR_eNB1_2ndRx = 10*log10(((abs(h12_eNB1_comp).^2) + (abs(h22_eNB1_comp).^2))/N0_2ndRx);
- %SNR_eNB1_2Rx = 10*log10((((abs(h11_eNB1_comp).^2) + (abs(h12_eNB1_comp).^2))/NO_1stRx) + (((abs(h21_eNB1_comp).^2) + (abs(h22_eNB1_comp).^2))/NO_2ndRx));
-
- SNR_eNB2_1stRx = 10*log10(((abs(h11_eNB2_comp).^2) + (abs(h21_eNB2_comp).^2))/N0_1stRx);
- SNR_eNB2_2ndRx = 10*log10(((abs(h12_eNB2_comp).^2) + (abs(h22_eNB2_comp).^2))/N0_2ndRx);
- %SNR_eNB2_2Rx = 10*log10((((abs(h11_eNB2_comp).^2) + (abs(h12_eNB2_comp).^2))/NO_1stRx) + (((abs(h21_eNB2_comp).^2) + (abs(h22_eNB2_comp).^2))/NO_2ndRx));
-
- SNR_eNB1_1stRx((SNR_eNB1_1stRx <= -20)) = -20;
- SNR_eNB1_1stRx((SNR_eNB1_1stRx >= 40)) = 40;
-
- SNR_eNB2_1stRx((SNR_eNB2_1stRx <= -20)) = -20;
- SNR_eNB2_1stRx((SNR_eNB2_1stRx >= 40)) = 40;
-
- SNR_eNB1_2ndRx((SNR_eNB1_2ndRx <= -20)) = -20;
- SNR_eNB1_2ndRx((SNR_eNB1_2ndRx >= 40)) = 40;
-
- SNR_eNB2_2ndRx((SNR_eNB2_2ndRx <= -20)) = -20;
- SNR_eNB2_2ndRx((SNR_eNB2_2ndRx >= 40)) = 40;
-
- chcap_alamouti_1 = [];
- chcap_alamouti_2 = [];
- chcap_alamouti_3 = [];
- for i=1:1:7
- if (antenna_index1(i) == 0)
- SNR_eNB1 = SNR_eNB1_1stRx(:,subband_indices(i):subband_indices(i+1)-1);
- else
- SNR_eNB1 = SNR_eNB1_2ndRx(:,subband_indices(i):subband_indices(i+1)-1);
- end
-
- if (antenna_index2(i) == 0)
- SNR_eNB2 = SNR_eNB2_1stRx(:,subband_indices(i):subband_indices(i+1)-1);
- else
- SNR_eNB2 = SNR_eNB2_2ndRx(:,subband_indices(i):subband_indices(i+1)-1);
- end
- if(sum(SNR_eNB2(:)) < sum(SNR_eNB1(:)))
- chcap_alamouti_1 = [chcap_alamouti_1 (interp1(SNR,c_siso_4Qam,SNR_eNB1(:),'nearest','extrap'))'];
- chcap_alamouti_2 = [chcap_alamouti_2 (interp1(SNR,c_siso_16Qam,SNR_eNB1(:),'nearest','extrap'))'];
- chcap_alamouti_3 = [chcap_alamouti_3 (interp1(SNR,c_siso_64Qam,SNR_eNB1(:),'nearest','extrap'))'];
-
- else
- chcap_alamouti_1 = [chcap_alamouti_1 (interp1(SNR,c_siso_4Qam,SNR_eNB2(:),'nearest','extrap'))'];
- chcap_alamouti_2 = [chcap_alamouti_2 (interp1(SNR,c_siso_16Qam,SNR_eNB2(:),'nearest','extrap'))'];
- chcap_alamouti_3 = [chcap_alamouti_3 (interp1(SNR,c_siso_64Qam,SNR_eNB2(:),'nearest','extrap'))'];
-
- end
- end
-
- chcap_alamouti(1,:,est) = chcap_alamouti_1;
- chcap_alamouti_16(1,:,est) = chcap_alamouti_2;
- chcap_alamouti_64(1,:,est) = chcap_alamouti_3;
-end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m
deleted file mode 100644
index 7a0b4486a3..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab.m
+++ /dev/null
@@ -1,122 +0,0 @@
-% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2
-% single antenna users using the scheduling algorithm of aligning
-% interference in the opposite quadrant
-
-
-% clear;
-% clc;
-% close all;
-% warning off all
-% format('long');
-
-% LTE with scheduling in opposite quadrant or without scheduling
-%sigmasq_x2_all = 0:0.1:1;
-%for i = 1:length(sigmasq_x2_all)
-
-M1=4;% QAM on first antenna
-M2=4;% QAM on second antenna
-SNR = 0:9;
-N_channel = 1000; % No of channel realizations
-N_noise = 100; % No of noise realizations
-
-alpha_1 =zeros(length(SNR),N);
-beta_1 =zeros(length(SNR),N);
-alpha_2 =zeros(length(SNR),N);
-beta_2 =zeros(length(SNR),N);
-chcap_lte_sch1 = zeros(length(SNR),N);
-chcap_lte_sch2 = zeros(length(SNR),N);
-chcap_lte_sch = zeros(length(SNR),N);
-
-for v=1:length(SNR)
- seed(1) = 13579;
- seed(2) = 24680;
- rand('state', seed(1));
- randn('state', seed(2));
- N0=10^(-SNR(v)/10);
- sigmasq_x1 = 0.5;
- sigmasq_x2 = 0.5;
- [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648
- [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648
- for k=1:N %channel loop
- fprintf('v=%d,k=%d\n',v,k);
- [h1 h2]=channel;
- H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2
- match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1
- lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)];
- lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)];
- lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)];
- [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]);
- lte_precoder_norm1=[1;lte_std_precoder(pos)];
- [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]);
- lte_precoder_norm2=[1;lte_std_precoder(pos)];
- lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2];
- %Scheduling to put interference in the opposite quadrant
- lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder
- lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder
- alpha_1(v,k)=H(1,:)*lte_precoder_qtz1(:,1);
- beta_2(v,k)=H(1,:)*lte_precoder_qtz1(:,2);
- beta_1(v,k)=H(2,:)*lte_precoder_qtz2(:,1);
- alpha_2(v,k)=H(2,:)*lte_precoder_qtz2(:,2);
-
- logsum_lte_sch1=0;
- logsum_lte_sch2=0;
- for l=1:10 %noise loop
- z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
- for s1=1:M1
- x1=stream1(s1);
- for s2=1:M2
- x2=stream2(s2);
- y_lte1=alpha_1(v,k)*x1+beta_2(v,k)*x2+z;
- y_lte2=beta_1(v,k)*x1+alpha_2(v,k)*x2+z;
- den_lte_sch1=0;
- den_lte_sch2=0;
- %For first stream
- for t=1:M2
- x2_d=stream2(t);
- den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2);
- end
- % For second stream
- for t=1:M1
- x1_d=stream1(t);
- den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2);
- end
- neu_lte_sch1=0;
- neu_lte_sch2=0;
- for g=1:M1;
- x1_dd=stream1(g);
- for h=1:M2
- x2_dd=stream2(h);
- neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2);
- end
- end
- %For second stream
- for g=1:M2;
- x2_ddd=stream2(g);
- for h=1:M1
- x1_ddd=stream1(h);
- neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2);
- end
- end
- logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1);
- logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2);
- end
- end
- end
-
- chcap_lte_sch1(v,k)=log2(M1)-logsum_lte_sch1/(M1*M2*N_noise);
- chcap_lte_sch2(v,k)=log2(M2)-logsum_lte_sch2/(M1*M2*N_noise);
- chcap_lte_sch(v,k)=log2(M1)-logsum_lte_sch1/(M1*M2*N_noise)+log2(M2)-logsum_lte_sch2/(M1*M2*N_noise);
-
- end
-
-end
-%end
-
-%save QPSK_QPSK_lte_Mode5.mat;
-
-
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m
deleted file mode 100644
index 7979a55a8a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_16.m
+++ /dev/null
@@ -1,107 +0,0 @@
-% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2
-% single antenna users using the scheduling algorithm of aligning
-% interference in the opposite quadrant
-
-
-% clear;
-% clc;
-% close all;
-% warning off all
-% format('long');
-
-%Input Data
-% 7 LTE with scheduling in opposite quadrant or without scheduling
-sigmasq_x2_all = 0:0.1:1;
-for i = 1:length(sigmasq_x2_all)
- M1=16;% QAM on first antenna
- M2=16;% QAM on second antenna
- SNR = [0:1:50];
- N = 100000; % No of channel realizations
-
-for v=1:length(SNR)
- seed(1) = 13579;
- seed(2) = 24680;
- rand('state', seed(1));
- randn('state', seed(2));
- N0=10^(-SNR(v)/10);
- sigmasq_x1 = 1;
- sigmasq_x2 = sigmasq_x2_all(i);
- [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648
- [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648
- logsum_lte_sch1=0;
- logsum_lte_sch2=0;
- for s1=1:M1
- x1=stream1(s1);
- for s2=1:M2
- x2=stream2(s2);
- for k=1:N
- [h1 h2]=channel(N0);
- z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
- H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2
- match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1
- lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)];
- lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)];
- lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)];
- [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]);
- lte_precoder_norm1=[1;lte_std_precoder(pos)];
- [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]);
- lte_precoder_norm2=[1;lte_std_precoder(pos)];
- lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2];
- %Scheduling to put interference in the opposite quadrant
- lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder
- lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder
- alpha_1=H(1,:)*lte_precoder_qtz1(:,1);
- beta_2=H(1,:)*lte_precoder_qtz1(:,2);
- beta_1=H(2,:)*lte_precoder_qtz2(:,1);
- alpha_2=H(2,:)*lte_precoder_qtz2(:,2);
- y_lte1=alpha_1*x1+beta_2*x2+z;
- y_lte2=beta_1*x1+alpha_2*x2+z;
- den_lte_sch1=0;
- den_lte_sch2=0;
- %For first stream
- for t=1:M2
- x2_d=stream2(t);
- den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2);
- end
- % For second stream
- for t=1:M1
- x1_d=stream1(t);
- den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2);
- end
- neu_lte_sch1=0;
- neu_lte_sch2=0;
- for g=1:M1;
- x1_dd=stream1(g);
- for h=1:M2
- x2_dd=stream2(h);
- neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2);
- end
- end
- %For second stream
- for g=1:M2;
- x2_ddd=stream2(g);
- for h=1:M1
- x1_ddd=stream1(h);
- neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2);
- end
- end
- logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1);
- logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2);
- end
- end
- end
-
- chcap_lte_sch1(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N);
- chcap_lte_sch2(i, v)=log2(M2)-logsum_lte_sch2/(M1*M2*N);
- chcap_lte_sch(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N)+log2(M2)-logsum_lte_sch2/(M1*M2*N);
-end
-end
-
-save QAM16_QAM16_lte_Mode5.mat;
-
-
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m
deleted file mode 100644
index 56289d16e4..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_16_4.m
+++ /dev/null
@@ -1,107 +0,0 @@
-% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2
-% single antenna users using the scheduling algorithm of aligning
-% interference in the opposite quadrant
-
-
-% clear;
-% clc;
-% close all;
-% warning off all
-% format('long');
-
-%Input Data
-% 7 LTE with scheduling in opposite quadrant or without scheduling
-sigmasq_x2_all = 0:0.1:1;
-for i = 1:length(sigmasq_x2_all)
- M1=16;% QAM on first antenna
- M2=4;% QAM on second antenna
- SNR = [0:1:50];
- N = 100000; % No of channel realizations
-
-for v=1:length(SNR)
- seed(1) = 13579;
- seed(2) = 24680;
- rand('state', seed(1));
- randn('state', seed(2));
- N0=10^(-SNR(v)/10);
- sigmasq_x1 = 1;
- sigmasq_x2 = sigmasq_x2_all(i);
- [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648
- [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648
- logsum_lte_sch1=0;
- logsum_lte_sch2=0;
- for s1=1:M1
- x1=stream1(s1);
- for s2=1:M2
- x2=stream2(s2);
- for k=1:N
- [h1 h2]=channel(N0);
- z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
- H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2
- match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1
- lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)];
- lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)];
- lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)];
- [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]);
- lte_precoder_norm1=[1;lte_std_precoder(pos)];
- [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]);
- lte_precoder_norm2=[1;lte_std_precoder(pos)];
- lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2];
- %Scheduling to put interference in the opposite quadrant
- lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder
- lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder
- alpha_1=H(1,:)*lte_precoder_qtz1(:,1);
- beta_2=H(1,:)*lte_precoder_qtz1(:,2);
- beta_1=H(2,:)*lte_precoder_qtz2(:,1);
- alpha_2=H(2,:)*lte_precoder_qtz2(:,2);
- y_lte1=alpha_1*x1+beta_2*x2+z;
- y_lte2=beta_1*x1+alpha_2*x2+z;
- den_lte_sch1=0;
- den_lte_sch2=0;
- %For first stream
- for t=1:M2
- x2_d=stream2(t);
- den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2);
- end
- % For second stream
- for t=1:M1
- x1_d=stream1(t);
- den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2);
- end
- neu_lte_sch1=0;
- neu_lte_sch2=0;
- for g=1:M1;
- x1_dd=stream1(g);
- for h=1:M2
- x2_dd=stream2(h);
- neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2);
- end
- end
- %For second stream
- for g=1:M2;
- x2_ddd=stream2(g);
- for h=1:M1
- x1_ddd=stream1(h);
- neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2);
- end
- end
- logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1);
- logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2);
- end
- end
- end
-
- chcap_lte_sch1(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N);
- chcap_lte_sch2(i, v)=log2(M2)-logsum_lte_sch2/(M1*M2*N);
- chcap_lte_sch(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N)+log2(M2)-logsum_lte_sch2/(M1*M2*N);
-end
-end
-
-save QAM16_QPSK_lte_Mode5.mat;
-
-
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m
deleted file mode 100644
index 31d3bdff0b..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_mode5_tab_4_16.m
+++ /dev/null
@@ -1,107 +0,0 @@
-% Channel Capacity of LTE mode 5 with the eNodeB with 2 antennas and 2
-% single antenna users using the scheduling algorithm of aligning
-% interference in the opposite quadrant
-
-
-% clear;
-% clc;
-% close all;
-% warning off all
-% format('long');
-
-%Input Data
-% 7 LTE with scheduling in opposite quadrant or without scheduling
-sigmasq_x2_all = 0:0.1:1;
-for i = 1:length(sigmasq_x2_all)
- M1=4;% QAM on first antenna
- M2=16;% QAM on second antenna
- SNR = [0:1:50];
- N = 100000; % No of channel realizations
-
-for v=1:length(SNR)
- seed(1) = 13579;
- seed(2) = 24680;
- rand('state', seed(1));
- randn('state', seed(2));
- N0=10^(-SNR(v)/10);
- sigmasq_x1 = 1;
- sigmasq_x2 = sigmasq_x2_all(i);
- [stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648
- [stream2]=sqrt(sigmasq_x2)*mapping(M2); %x2 1x648
- logsum_lte_sch1=0;
- logsum_lte_sch2=0;
- for s1=1:M1
- x1=stream1(s1);
- for s2=1:M2
- x2=stream2(s2);
- for k=1:N
- [h1 h2]=channel(N0);
- z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
- H=[h1 h2]; %first row is the channel to user-1 and second row is the channel to user-2
- match_precoder_norm=(1/sqrt(2))*[H(1,:)'/norm(H(1,:)) H(2,:)'/norm(H(2,:))]; %Frobenius norm is 1
- lte_precoder=[(match_precoder_norm(1,1))'*match_precoder_norm(:,1) (match_precoder_norm(1,2))'*match_precoder_norm(:,2)];
- lte_precoder_norm=[lte_precoder(:,1)/lte_precoder(1,1) lte_precoder(:,2)/lte_precoder(1,2)];
- lte_std_precoder=[1 -1 sqrt(-1) -sqrt(-1)];
- [val pos]=min([-real(lte_precoder(2,1)) real(lte_precoder(2,1)) -imag(lte_precoder(2,1)) imag(lte_precoder(2,1))]);
- lte_precoder_norm1=[1;lte_std_precoder(pos)];
- [val pos]=min([-real(lte_precoder(2,2)) real(lte_precoder(2,2)) -imag(lte_precoder(2,2)) imag(lte_precoder(2,2))]);
- lte_precoder_norm2=[1;lte_std_precoder(pos)];
- lte_precoder_qtz_orig=(1/sqrt(4))*[ lte_precoder_norm1 lte_precoder_norm2];
- %Scheduling to put interference in the opposite quadrant
- lte_precoder_qtz1=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); lte_precoder_qtz_orig(2,1) -lte_precoder_qtz_orig(2,1)]; %For opposite precoder
- lte_precoder_qtz2=[ lte_precoder_qtz_orig(1,1) lte_precoder_qtz_orig(1,2); -lte_precoder_qtz_orig(2,2) lte_precoder_qtz_orig(2,2)]; %For opposite precoder
- alpha_1=H(1,:)*lte_precoder_qtz1(:,1);
- beta_2=H(1,:)*lte_precoder_qtz1(:,2);
- beta_1=H(2,:)*lte_precoder_qtz2(:,1);
- alpha_2=H(2,:)*lte_precoder_qtz2(:,2);
- y_lte1=alpha_1*x1+beta_2*x2+z;
- y_lte2=beta_1*x1+alpha_2*x2+z;
- den_lte_sch1=0;
- den_lte_sch2=0;
- %For first stream
- for t=1:M2
- x2_d=stream2(t);
- den_lte_sch1=den_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1-H(1,:)*lte_precoder_qtz1(:,2)*x2_d)^2);
- end
- % For second stream
- for t=1:M1
- x1_d=stream1(t);
- den_lte_sch2=den_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_d-H(2,:)*lte_precoder_qtz2(:,2)*x2)^2);
- end
- neu_lte_sch1=0;
- neu_lte_sch2=0;
- for g=1:M1;
- x1_dd=stream1(g);
- for h=1:M2
- x2_dd=stream2(h);
- neu_lte_sch1=neu_lte_sch1+exp((-1/N0)*norm(y_lte1-H(1,:)*lte_precoder_qtz1(:,1)*x1_dd-H(1,:)*lte_precoder_qtz1(:,2)*x2_dd)^2);
- end
- end
- %For second stream
- for g=1:M2;
- x2_ddd=stream2(g);
- for h=1:M1
- x1_ddd=stream1(h);
- neu_lte_sch2=neu_lte_sch2+exp((-1/N0)*norm(y_lte2-H(2,:)*lte_precoder_qtz2(:,1)*x1_ddd-H(2,:)*lte_precoder_qtz2(:,2)*x2_ddd)^2);
- end
- end
- logsum_lte_sch1=logsum_lte_sch1+log2(neu_lte_sch1/den_lte_sch1);
- logsum_lte_sch2=logsum_lte_sch2+log2(neu_lte_sch2/den_lte_sch2);
- end
- end
- end
-
- chcap_lte_sch1(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N);
- chcap_lte_sch2(i, v)=log2(M2)-logsum_lte_sch2/(M1*M2*N);
- chcap_lte_sch(i, v)=log2(M1)-logsum_lte_sch1/(M1*M2*N)+log2(M2)-logsum_lte_sch2/(M1*M2*N);
-end
-end
-
-save QPSK_QAM16_lte_Mode5.mat;
-
-
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m
deleted file mode 100644
index 8961a4e94f..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab.m
+++ /dev/null
@@ -1,30 +0,0 @@
-function chcap_siso_single_stream = capacity_siso_tab(SNR, M1)
-%Channel Capacity of SISO system with QAM modulation
-
-%M1=4;% QAM on first antenna
-N = 100000; % No of noise realizations
-%seed(1) = 13579;
-%seed(2) = 24680;
-%rand('state', seed(1));
-%randn('state', seed(2));
-h = exp(2*pi*1j*rand(1));
-N0=10^(-SNR/10);
-sigmasq_x1=1;
-[stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648
-logsum_siso = 0;
-for s1=1:M1
- x1=stream1(s1);
- for k=1:N
- z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
- alpha_siso=h;
- y_siso=alpha_siso*x1+z;
- den_siso=exp((-1/N0)*norm(y_siso-alpha_siso*x1)^2);
- neu_siso=0;
- for g=1:M1;
- x1_dd=stream1(g);
- neu_siso=neu_siso+exp((-1/N0)*norm(y_siso-alpha_siso*x1_dd)^2);
- end
- logsum_siso=logsum_siso+log2(neu_siso/den_siso);
- end
-end
-chcap_siso_single_stream=log2(M1)-logsum_siso/(M1*N); % For SISO
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m b/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m
deleted file mode 100644
index df6404395e..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/capacity_siso_tab_measurements.m
+++ /dev/null
@@ -1,30 +0,0 @@
-function chcap_siso_single_stream = capacity_siso_tab_measurements(SNR, h, N0, M1)
-%Channel Capacity of SISO system with QAM modulation
-
-%M1=4;% QAM on first antenna
-N = 1000000; % No of noise realizations
-%seed(1) = 13579;
-%seed(2) = 24680;
-%rand('state', seed(1));
-%randn('state', seed(2));
-%h = exp(2*pi*1j*rand(1));
-%N0=10^(-SNR/10);
-sigmasq_x1=1;
-[stream1]=sqrt(sigmasq_x1)*mapping(M1); %x1 1x648
-logsum_siso = 0;
-for s1=1:M1
- x1=stream1(s1);
- for k=1:N
- z=sqrt(N0)*sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
- alpha_siso=h;
- y_siso=alpha_siso*x1+z;
- den_siso=exp((-1/N0)*norm(y_siso-alpha_siso*x1)^2);
- neu_siso=0;
- for g=1:M1;
- x1_dd=stream1(g);
- neu_siso=neu_siso+exp((-1/N0)*norm(y_siso-alpha_siso*x1_dd)^2);
- end
- logsum_siso=logsum_siso+log2(neu_siso/den_siso);
- end
-end
-chcap_siso_single_stream=log2(M1)-logsum_siso/(M1*N); % For SISO
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/channel.m b/openair1/EMOS/LTE/POST_PROCESSING/channel.m
deleted file mode 100644
index 1df73438ea..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/channel.m
+++ /dev/null
@@ -1,16 +0,0 @@
-function [h1 h2] = channel(N0);
-
-%z=sqrt(1/2).*(randn(2,1)+j*randn(2,1));
-%z=N0.*z; %incorporating SNR in the noise
-h1=sqrt(1/2).*(randn(2,1)+sqrt(-1)*randn(2,1));
-h2=sqrt(1/2).*(randn(2,1)+sqrt(-1)*randn(2,1));
-
-
-
-
-
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat b/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat
deleted file mode 100644
index 6a883aa1b4..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom2.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat b/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat
deleted file mode 100644
index 794d20865c..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/cordes_zoom3.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/cost231_hata.m b/openair1/EMOS/LTE/POST_PROCESSING/cost231_hata.m
deleted file mode 100644
index 7e32eb4749..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/cost231_hata.m
+++ /dev/null
@@ -1,16 +0,0 @@
-function PL = cost231_hata(d)
-% PL = cost231-hata(d)
-% gives the PL for distance d (in km) for the cost231_hata model
-%
-% E Damosso, LM Correia “Digital Mobile Radio Towards Future Generation
-% Systems,� COST 231 Final Report, European Commission, 1999
-
-
-hMobile = 1.5;
-hBase = 30;
-f1 = 800; %MHz
-
-%% COST231-Hata
-a = (1.1*log10(f1) - 0.7)*hMobile - (1.56*log10(f1) - 0.8);
-Qr = 4.78*log10(f1)^2 - 18.33*log10(f1) +40.94;
-PL = 69.55 + 26.16*log10(f1) -13.82*log10(hBase) - a + (44.9 - 6.55*log10(hBase))*log10(d) - Qr;
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/distance_traveled_comparison.m b/openair1/EMOS/LTE/POST_PROCESSING/distance_traveled_comparison.m
deleted file mode 100644
index e511f02b3d..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/distance_traveled_comparison.m
+++ /dev/null
@@ -1,136 +0,0 @@
-clear all
-close all
-
-pathname='/emos/EMOS/results/';
-
-mode1 = load('/emos/EMOS/Mode1/results/results_UE.mat');
-mode2 = load('/emos/EMOS/Mode2/results/results_UE.mat');
-mode2_update = load('/emos/EMOS/Mode2_update/results/results_UE.mat');
-mode6 = load('/emos/EMOS/Mode6/results/results_UE.mat');
-mm='cordes';
-
-
-%%
-[mode1.dist, mode1.dist_travelled] = calc_dist(mode1.gps_lat_cat,mode1.gps_lon_cat);
-[mode2.dist, mode2.dist_travelled] = calc_dist(mode2.gps_lat_cat,mode2.gps_lon_cat);
-[mode2_update.dist, mode2_update.dist_travelled] = calc_dist(mode2_update.gps_lat_cat,mode2_update.gps_lon_cat);
-[mode6.dist, mode6.dist_travelled] = calc_dist(mode6.gps_lat_cat,mode6.gps_lon_cat);
-
-mode1.UE_connected = (mode1.UE_mode_cat==3);
-%mode1.good = (mode1.dlsch_fer_cat<=100 & mode1.dlsch_fer_cat>=0).';
-mode1.throughput = (100-mode1.dlsch_fer_cat).*mode1.tbs_cat*6;
-mode1.throughput(~mode1.UE_connected) = 0;
-mode2.UE_connected = (mode2.UE_mode_cat==3);
-%mode2.good = (mode2.dlsch_fer_cat<=100 & mode2.dlsch_fer_cat>=0).';
-mode2.throughput = (100-mode2.dlsch_fer_cat).*mode2.tbs_cat*6;
-mode2.throughput(~mode2.UE_connected) = 0;
-mode2_update.UE_connected = (mode2_update.UE_mode_cat==3);
-%mode2_update.good = (mode2_update.dlsch_fer_cat<=100 & mode2_update.dlsch_fer_cat>=0).';
-mode2_update.throughput = (100-mode2_update.dlsch_fer_cat).*mode2_update.tbs_cat*6;
-mode2_update.throughput(~mode2_update.UE_connected) = 0;
-mode6.UE_connected = (mode6.UE_mode_cat==3);
-%mode6.good = (mode6.dlsch_fer_cat<=100 & mode6.dlsch_fer_cat>=0).';
-mode6.throughput = (100-mode6.dlsch_fer_cat).*mode6.tbs_cat*6;
-mode6.throughput(~mode6.UE_connected) = 0;
-
-
-%% Zoom 1
-start_mode1 = 746;
-length_mode1 = 300;
-%start_mode2 = 330;
-start_mode2 = 22873+330;
-length_mode2 = 380;
-start_mode6 = 16599;
-end_mode6 = 16276;
-%length_mode6 =
-
-h_fig = figure(3);
-hold off
-plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1), ...
- mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1))
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2), ...
- mode2.rx_rssi_dBm_cat(start_mode2:start_mode2+length_mode2,1),'r')
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.rx_rssi_dBm_cat(end_mode6:start_mode6,1),'g')
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.eps'),'epsc2');
-
-
-%%
-h_fig = figure(4);
-plot_gps_coordinates(mm,mode1.gps_lon_cat(start_mode1:start_mode1+length_mode1), ...
- mode1.gps_lat_cat(start_mode1:start_mode1+length_mode1),...
- double(mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1)));
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.jpg'),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1),...
- mode1.throughput(start_mode1:start_mode1+length_mode1));
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- mode2.throughput(start_mode2:start_mode2+length_mode2),'r');
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.throughput(end_mode6:start_mode6,1),'g')
-
-
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_troughput_distance_travelled.eps'),'epsc2');
-
-
-
-%% Zoom2
-load cordes_zoom2.mat
-select1 = find(select1);
-select2 = find(select2);
-select6 = find(select6);
-select2b = false(size(parcours1));
-select2b(parcours1)=select2;
-select2b = find(select2b);
-
-h_fig = figure(3);
-hold off
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)), ...
- mode1.rx_rssi_dBm_cat(select1,1))
-hold on
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)), ...
- mode2.rx_rssi_dBm_cat(select2b,1),'r')
-plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
- mode6.rx_rssi_dBm_cat(select6,1),'g')
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-%saveas(h_fig,fullfile(pathname,'all_modes_comparison2_rssi_dBm.eps'),'epsc2');
-
-
-%%
-h_fig = figure(4);
-plot_gps_coordinates(mm,mode1.gps_lon_cat(select1), ...
- mode1.gps_lat_cat(select1),...
- double(mode1.rx_rssi_dBm_cat(select1,1)));
-%saveas(h_fig,fullfile(pathname,'all_modes_comparison2_rssi_dBm.jpg'),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)),...
- mode1.throughput(select1,1));
-hold on
-plot(mode2.dist_travelled(select2)-mode2.dist_travelled(select2(1)),...
- mode2.throughput(select2,1),'r');
-plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
- mode6.throughput(select6,1),'g')
-
-
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-%saveas(h_fig,fullfile(pathname,'all_modes_comparison2_troughput_distance_travelled.eps'),'epsc2');
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m b/openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m
deleted file mode 100644
index cd04d63684..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/eval_nomadic_points.m
+++ /dev/null
@@ -1,149 +0,0 @@
-% file: eval_nomadic_points.m
-% author: florian.kaltenberger@eurecom.fr
-% purpose: plots the nomadic results from the UE for several directories
-
-% in the following two lines set the root path and select the subfolders
-% you want to plot
-% root_path = '~/EMOS/data/';
-% d = dir(fullfile(root_path, '*mode1_parcours1'));
-% dir_names = {d.name};
-
-%%
-% decimation = 100;
-%
-% results_UE = [];
-% results_UE_nomadic = [];
-%
-% for i=1:length(dir_names)
-% if exist(fullfile(root_path,dir_names{i},'results_UE_new.mat'),'file')
-% nomadic = load(fullfile(root_path,dir_names{i},'results_UE_new.mat'));
-% results_UE_nomadic = cat(2,results_UE_nomadic,nomadic.minestimates);
-% end
-% end
-
-%pathname='/emos/EMOS/Nomadic/20100611_NOMADIC_ALL_MODES/';
-%pathname='/emos/EMOS/Nomadic/20100527_nomadic_all_modes/';
-load(fullfile(pathname,'results_UE_new.mat'));
-results_UE_nomadic=minestimates;
-load(fullfile(pathname,'results_eNB_new.mat'));
-results_eNB_nomadic=minestimates;
-
-%%
-h_fig = figure(1);
-hold off
-%plot_gps_coordinates(mm,[results_UE.gps_lon_cat], [results_UE.gps_lat_cat], double([results_UE.UE_mode_cat]));
-%hold on
-for i=1:length(results_UE_nomadic)
- if i==1
- mmi = mm;
- else
- mmi = '';
- end
- plot_gps_coordinates(mmi,[results_UE_nomadic(i).gps_data.longitude], [results_UE_nomadic(i).gps_data.latitude], ...
- double(results_UE_nomadic(i).UE_mode_cat),[0 3], sprintf('N%d',i),'black','Marker','.','Markersize',20);
-end
-saveas(h_fig,fullfile(pathname,'UE_mode_nomadic.jpg'),'jpg');
-
-%%
-h_fig = figure(2);
-hold off
-%rx_rssi_dBm_cat = cat(1,results_UE.rx_rssi_dBm_cat);
-%plot_gps_coordinates(mm,[results_UE.gps_lon_cat], [results_UE.gps_lat_cat], double(rx_rssi_dBm_cat(:,1)));
-%hold on
-for i=1:length(results_UE_nomadic)
- if i==1
- mmi = mm;
- else
- mmi = '';
- end
- plot_gps_coordinates(mmi,[results_UE_nomadic(i).gps_data.longitude], [results_UE_nomadic(i).gps_data.latitude], ...
- double(results_UE_nomadic(i).rx_rssi_dBm(:,1)),[-110 -30], sprintf('N%d',i),'black','Marker','.','Markersize',20);
-end
-saveas(h_fig,fullfile(pathname,'RX_RSSI_nomadic.jpg'),'jpg');
-
-%%
-fid = fopen(fullfile(pathname,'nomadic_results.csv'),'w');
-for i=1:length(results_UE_nomadic)
- rx_rssi_dBm_mean(i) = mean(results_UE_nomadic(i).rx_rssi_dBm(:,1));
-
- ul_rssi_all_sectors = zeros(size(results_eNB_nomadic(i).phy_measurements));
- for j=1:length(results_eNB_nomadic(i).phy_measurements)
- ul_rssi_all_sectors(j,:) = double([results_eNB_nomadic(i).phy_measurements(j,:).rx_rssi_dBm]);
- end
- ul_rssi_dBm = zeros(length(results_eNB_nomadic(i).eNb_UE_stats),1);
- sector = [results_eNB_nomadic(i).eNb_UE_stats.sector];
- for j=1:length(results_eNB_nomadic(i).eNb_UE_stats)
- ul_rssi_dBm(j) = ul_rssi_all_sectors(j,sector(j)+1);
- end
- ul_rssi_dBm_mean(i) = mean(ul_rssi_dBm);
-
-
- UE_synched = (results_UE_nomadic(i).UE_mode_cat>0);
- UE_connected = (results_UE_nomadic(i).UE_mode_cat==3);
- UE_mimo_mode = (results_UE_nomadic(i).mimo_mode);
-
- eNB_synched = ([results_eNB_nomadic(i).eNb_UE_stats.UE_mode]>0);
- eNB_connected = ([results_eNB_nomadic(i).eNb_UE_stats.UE_mode]==3);
- eNB_mimo_mode = (results_eNB_nomadic(i).mimo_mode);
-
- good = (results_UE_nomadic(i).dlsch_fer<=100 & results_UE_nomadic(i).dlsch_fer>=0).';
- dlsch_throughput = double(100-results_UE_nomadic(i).dlsch_fer) .* double(results_UE_nomadic(i).tbs_cat) .* 6;
-
- results_eNB_nomadic(i).ulsch_fer = [100 diff([results_eNB_nomadic(i).ulsch_errors])];
- ulsch_throughput = double([results_eNB_nomadic(i).tbs_cat]) .* double(100 - results_eNB_nomadic(i).ulsch_fer) .* 3;
-
- lat = [results_UE_nomadic(i).gps_data.latitude];
- lon = [results_UE_nomadic(i).gps_data.longitude];
- if (i==1)
- fprintf(fid,'index; DL name; UL name; DL RSSI; UL RSSI; Mode1 TP; Mode2 TP; Mode6 TP; UL TP; Mode1 points; Mode2 points; Mode6 points; UL points; Lat; Lon\n');
- end
- fprintf(fid,'%d; %s; %s; %f; %f; %f; %f; %f; %f; %d; %d; %d; %d; %f; %f\n',i, ...
- results_UE_nomadic(i).filename, results_eNB_nomadic(i).filename, ...
- rx_rssi_dBm_mean(i), ul_rssi_dBm_mean(i), ...
- mean(dlsch_throughput(UE_connected & good & UE_mimo_mode==1)), ...
- mean(dlsch_throughput(UE_connected & good & UE_mimo_mode==2)), ...
- mean(dlsch_throughput(UE_connected & good & UE_mimo_mode==6)), ...
- mean(ulsch_throughput(eNB_connected)), ...
- sum(UE_connected & good & UE_mimo_mode==1), ...
- sum(UE_connected & good & UE_mimo_mode==2), ...
- sum(UE_connected & good & UE_mimo_mode==6), ...
- sum(eNB_connected), ...
- mean(lat(lat~=0)),mean(lon(lon~=0)));
-end
-fclose(fid);
-
-
-%%
-figure(3)
-hold off
-%plot([results_UE.gps_time_cat],[results_UE.UE_mode_cat],'x')
-%hold on
-gps_data_cat = [results_UE_nomadic.gps_data];
-plot([gps_data_cat.timestamp],[results_UE_nomadic.UE_mode_cat],'rx');
-
-%%
-figure(4)
-hold off
-%plot([results_UE.gps_time_cat],rx_rssi_dBm_cat(:,1),'x');
-%hold on
-rx_rssi_dBm_cat_nomadic = cat(1,results_UE_nomadic.rx_rssi_dBm);
-plot([gps_data_cat.timestamp],rx_rssi_dBm_cat_nomadic(:,1),'rx');
-
-%%
-figure(5)
-hold off
-% UE_connected = ([results_UE.UE_mode_cat]==3);
-% dlsch_fer_cat = cat(1,results_UE.dlsch_fer_cat).';
-% tbs_cat = cat(1,results_UE.tbs_cat).';
-% good = (dlsch_fer_cat<=100 & dlsch_fer_cat>=0);
-% timebase = [results_UE.gps_time_cat];
-% plot(timebase(UE_connected & good),(100-dlsch_fer_cat(UE_connected & good)).*tbs_cat(UE_connected & good)*7*4/3,'x');
-% hold on
-UE_connected = ([results_UE_nomadic.UE_mode_cat]==3);
-dlsch_fer_cat = cat(1,results_UE_nomadic.dlsch_fer).';
-tbs_cat = cat(1,results_UE_nomadic.tbs_cat).';
-good = (dlsch_fer_cat<=100 & dlsch_fer_cat>=0);
-gps_data = [results_UE_nomadic.gps_data];
-timebase = [gps_data.timestamp];
-plot(timebase(UE_connected & good),(100-dlsch_fer_cat(UE_connected & good)).*tbs_cat(UE_connected & good)*6,'rx');
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m b/openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m
deleted file mode 100644
index 6090c973a0..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/eval_village_ambialet.m
+++ /dev/null
@@ -1,68 +0,0 @@
-% eval_village_ambialet.m
-
-% The village of vallence d'albigeois is enclosed in the following
-% coordinates
-lat_min = 44.017015135704256;
-lon_min = 2.3998260498046875;
-lat_max = 44.02226141991229;
-lon_max = 2.4095678329467773;
-% next to the village is an open crossing that we use for comparison
-lat_min2 = 44.01099676748375;
-lon_min2 = 2.3856210708618164;
-lat_max2 = lat_min;
-lon_max2 = lon_min;
-
-
-mode1_village = mode1.gps_lat_cat<=lat_max & mode1.gps_lat_cat >= lat_min & mode1.gps_lon_cat<=lon_max & mode1.gps_lon_cat>=lon_min;
-mode2_village = mode2.gps_lat_cat<=lat_max & mode2.gps_lat_cat >= lat_min & mode2.gps_lon_cat<=lon_max & mode2.gps_lon_cat>=lon_min;
-mode6_village = mode6.gps_lat_cat<=lat_max & mode6.gps_lat_cat >= lat_min & mode6.gps_lon_cat<=lon_max & mode6.gps_lon_cat>=lon_min;
-
-mode1_xing = mode1.gps_lat_cat<=lat_max2 & mode1.gps_lat_cat >= lat_min2 & mode1.gps_lon_cat<=lon_max2 & mode1.gps_lon_cat>=lon_min2;
-mode2_xing = mode2.gps_lat_cat<=lat_max2 & mode2.gps_lat_cat >= lat_min2 & mode2.gps_lon_cat<=lon_max2 & mode2.gps_lon_cat>=lon_min2;
-mode6_xing = mode6.gps_lat_cat<=lat_max2 & mode6.gps_lat_cat >= lat_min2 & mode6.gps_lon_cat<=lon_max2 & mode6.gps_lon_cat>=lon_min2;
-
-%%
-h_fig = figure(1);
-hold off
-plot_gps_coordinates(mm,mode2.gps_lon_cat(mode2_village),mode2.gps_lat_cat(mode2_village),[],[],'Village','blue');
-hold on
-plot_gps_coordinates('',mode2.gps_lon_cat(mode2_xing),mode2.gps_lat_cat(mode2_xing),[],[],'Xing','red');
-saveas(h_fig,fullfile(pathname,'results','village_comparison_map.jpg'),'jpg')
-
-%%
-h_fig = figure(2);
-hold off
-colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'};
-legend_str = {};
-ni=1;
-for n = strmatch('rateps',nn).'
- si = strfind(nn{n},'supportedQam_eNB1_2Rx');
- if si
- [f,x] = ecdf(scale_ideal_tp(mode2_ideal.(nn{n})(mode2_village)));
- plot(x,f,colors{ni},'Linewidth',2);
- hold on
- [f,x] = ecdf(scale_ideal_tp(mode2_ideal.(nn{n})(mode2_xing)));
- plot(x,f,colors{7+ni},'Linewidth',2);
- ni=ni+1;
- end
-end
-[f,x] = ecdf(mode2.throughput(mode2_village));
-plot(x,f,colors{ni},'Linewidth',2)
-hold on
-[f,x] = ecdf(mode2.throughput(mode2_xing));
-plot(x,f,colors{ni+7},'Linewidth',2)
-ni=ni+1;
-
-legend_str = {'Tx mode 1 (extrap), Village','Tx mode 1 (extrap) Xing',...
- 'Tx mode 2 (extrap), Village','Tx mode 2 (extrap) Xing',...
- 'Tx mode 6 (extrap, feedback), Village','Tx mode 6 (extrap, feedback) Xing',...
- 'Tx mode 6 (extrap, optim), Village','Tx mode 6 (extrap, optim) Xing',...
- 'Tx mode 2 (real), Village','Tx mode 2 (real) Xing'};
-
-title('DLSCH throughput CDF')
-xlabel('Throughput [bps]')
-ylabel('P(xtol_time)
- ind(i) = true;
- end
-end
-
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m b/openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m
deleted file mode 100644
index 80eed4589a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/find_closest_points.m
+++ /dev/null
@@ -1,13 +0,0 @@
-function checkpoint2 = find_closest_points(mode2,checkpoint1)
-% adds all gps point in checkpoint1 to the chunks in mode2
-
-testpoints2 = [mode2.gps_lat_cat(mode2.ind_cnd).' mode2.gps_lon_cat(mode2.ind_cnd).'];
-testpoints2_idx = find(mode2.ind_cnd);
-checkpoint2 = zeros(1,length(checkpoint1));
-
-for i=1:length(checkpoint1)
- % find point in route y that is closest to checkpoint
- out = ipdm(checkpoint1(i,:),testpoints2,'Subset', 'NearestNeighbor','Result','Structure');
- checkpoint2(i) = testpoints2_idx(out.columnindex);
- %checkpoint2(i,:) = [testpoints2(out.columnindex,1) testpoints2(out.columnindex,2)];
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m b/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m
deleted file mode 100644
index 91c45c6bad..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_SISO_tab_new.m
+++ /dev/null
@@ -1,26 +0,0 @@
-
-%For generating table for SISO
-
-SNR = -20:2:40;
-
-c_siso_4Qam = zeros(size(SNR));
-c_siso_16Qam = zeros(size(SNR));
-c_siso_64Qam = zeros(size(SNR));
-
-
-for q=1:3 % for following Constellations: QAM 4, QAM 16, QAM 64
-
- for v=1:length(SNR)
-
- if q ==1
- c_siso_4Qam(v) = capacity_siso_tab(SNR(v), 4);
- else if q ==2
- c_siso_16Qam(v) = capacity_siso_tab(SNR(v), 16);
- else
- c_siso_64Qam(v) = capacity_siso_tab(SNR(v), 64);
- end
- end
-
- end
-
-end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m b/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m
deleted file mode 100644
index 1537f8805a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/gen_cap_siso_table.m
+++ /dev/null
@@ -1,9 +0,0 @@
-SNR = 0:10:20;
-%h=sqrt(1/2).*(randn(1,1)+sqrt(-1)*randn(1,1));
-h = exp(2*pi*1j*rand(1));
-c_siso = zeros(size(SNR));
-for v=1:length(SNR)
- N0=10^(-SNR(v)/10);
- %P=10^(SNR(v)/10);
- c_siso(v) = capacity_siso(h,N0)
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m b/openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m
deleted file mode 100644
index 703ba4a742..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/get_chunks.m
+++ /dev/null
@@ -1,34 +0,0 @@
-function mode1 = get_chunks(mode1)
-
-%% identify continious sets in modex_ind
-tmp = diff([0 double(mode1.ind_cnd) 0]);
-mode1.start_points = find(tmp==1);
-mode1.end_points = find(tmp==-1)-1;
-
-%% identify last and first points of files
-file_end_points = cumsum([0 mode1.NFrames/100]);
-for i=1:length(file_end_points)
- % if file_end_points is contained in one chunk split that chunk
- split = find(file_end_points(i)mode1.start_points);
- if ~isempty(split)
- mode1.end_points = [mode1.end_points(1:(split-1)) file_end_points(i) mode1.end_points(split:end)];
- mode1.start_points = [mode1.start_points(1:split) file_end_points(i)+1 mode1.start_points((split+1):end)];
- end
-end
-
-% %% make a list of structure with fields
-% gps_data = struct('lon',0,'lat',0,'time',0);
-% chunk_list(length(start_points)) = struct('start_gps', gps_data, ...
-% 'end_gps', gps_data, ...
-% 'indices', []);
-%
-% %% find the corresponding gps points
-% for i=1:length(start_points)
-% chunk_list(i).indices = start_points(i):end_points(i);
-% chunk_list(i).start_gps.lon = mode1.gps_lon_cat(start_points(i));
-% chunk_list(i).start_gps.lat = mode1.gps_lat_cat(start_points(i));
-% chunk_list(i).start_gps.time = mode1.gps_time_cat(start_points(i));
-% chunk_list(i).end_gps.lon = mode1.gps_lon_cat(end_points(i));
-% chunk_list(i).end_gps.lat = mode1.gps_lat_cat(end_points(i));
-% chunk_list(i).end_gps.time = mode1.gps_time_cat(end_points(i));
-% end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m b/openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m
deleted file mode 100644
index dfc655ca14..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/get_gps_coordinates_eNB.m
+++ /dev/null
@@ -1,34 +0,0 @@
-estimates_UE = load(fullfile(pathname,'results_UE.mat'));
-estimates_UE_ideal = load(fullfile(pathname,'results_cat_UE.mat'));
-estimates_eNB = load(fullfile(pathname,'results_eNB.mat'));
-
-%%
-estimates_eNB.K_fac_cat = zeros(4,length(estimates_eNB.frame_tx_cat));
-for i=1:length(estimates_eNB.frame_tx_cat)
- idx = find(estimates_UE.frame_tx_cat==estimates_eNB.frame_tx_cat(i));
-
- if ~isempty(idx)
- if length(idx)>1
- warning('More than one GPS coordinate matches');
- end
- estimates_eNB.gps_lat_cat(i) = estimates_UE.gps_lat_cat(idx(1));
- estimates_eNB.gps_lon_cat(i) = estimates_UE.gps_lon_cat(idx(1));
- estimates_eNB.gps_time_cat(i) = estimates_UE.gps_time_cat(idx(1));
- estimates_eNB.K_fac_cat(:,i) = estimates_UE_ideal.K_fac_cat(:,idx(1));
- if isfield(estimates_UE,'gps_speed_cat')
- estimates_eNB.gps_speed_cat(i) = estimates_UE.gps_speed_cat(idx(1));
- end
- else
- estimates_eNB.gps_lat_cat(i) = nan;
- estimates_eNB.gps_lon_cat(i) = nan;
- estimates_eNB.gps_time_cat(i) = nan;
- estimates_eNB.K_fac_cat(:,i) = nan;
- if isfield(estimates_UE,'gps_speed_cat')
- estimates_eNB.gps_speed_cat(i) = nan;
- end
- end
-
-end
-
-%%
-save(fullfile(pathname,'results_eNB.mat'), '-struct', 'estimates_eNB');
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m b/openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m
deleted file mode 100644
index f9a71faccb..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/get_mcs.m
+++ /dev/null
@@ -1,52 +0,0 @@
-function mcs = get_mcs(dci_pdu, format)
-% mcs = get_mcs(dci_pdu,format)
-% dci_pdu is a vector of unit16 containing
-% format is one of the following strings
-% {format0,
-% format1,
-% format1A,
-% format1B,
-% format1C,
-% format1D,
-% format2,
-% format2_2A_L10PRB,
-% format2_2A_M10PRB,
-% format2_4A_L10PRB,
-% format2_4A_M10PRB,
-% format2A_2A_L10PRB,
-% format2A_2A_M10PRB,
-% format2A_4A_L10PRB,
-% format2A_4A_M10PRB,
-% format3};
-
-if nargin < 2
- format = 'format2A_2A_M10PRB';
-end
-
-switch format
- case 'format2A_2A_M10PRB'
- % this is for format type 2A, 5MHz, TDD, 2 antenna ports more than 10 PRB,
- % 42 bits
- % the mcs is in bits 24-28, so in bits 8-12 of the second word of the pdu
- mask = uint16(0);
- mask = bitset(mask,8);
- mask = bitset(mask,9);
- mask = bitset(mask,10);
- mask = bitset(mask,11);
- mask = bitset(mask,12);
- mcs = bitand(mask,dci_pdu(2));
- mcs = bitshift(mcs,-8);
- case 'format0'
- % this is for format 0, 5MHz, TDD, 27 bits
- % the mcs is in bits 11-15
- mask = uint16(0);
- mask = bitset(mask,11);
- mask = bitset(mask,12);
- mask = bitset(mask,13);
- mask = bitset(mask,14);
- mask = bitset(mask,15);
- mcs = bitand(mask,dci_pdu(1));
- mcs = bitshift(mcs,-11);
- otherwise
- error('format not yet implemented or wrong');
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m b/openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m
deleted file mode 100644
index 34deeb2751..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/get_tbs.m
+++ /dev/null
@@ -1,58 +0,0 @@
-function tbs = get_tbs(mcs,n_rb)
-
-dlsch_tbs25 = [16,32,56,88,120,152,176,208,224,256,288,328,344,376,392,424,456,488,504,536,568,600,616,648,680;...
- 24,56,88,144,176,208,224,256,328,344,376,424,456,488,520,568,600,632,680,712,744,776,808,872,904;...
- 32,72,144,176,208,256,296,328,376,424,472,520,568,616,648,696,744,776,840,872,936,968,1000,1064,1096;...
- 40,104,176,208,256,328,392,440,504,568,616,680,744,808,872,904,968,1032,1096,1160,1224,1256,1320,1384,1416;...
- 56,120,208,256,328,408,488,552,632,696,776,840,904,1000,1064,1128,1192,1288,1352,1416,1480,1544,1608,1736,1800;...
- 72,144,224,328,424,504,600,680,776,872,968,1032,1128,1224,1320,1384,1480,1544,1672,1736,1864,1928,2024,2088,2216;...
- 328,176,256,392,504,600,712,808,936,1032,1128,1224,1352,1480,1544,1672,1736,1864,1992,2088,2216,2280,2408,2472,2600;...
- 104,224,328,472,584,712,840,968,1096,1224,1320,1480,1608,1672,1800,1928,2088,2216,2344,2472,2536,2664,2792,2984,3112;...
- 120,256,392,536,680,808,968,1096,1256,1384,1544,1672,1800,1928,2088,2216,2344,2536,2664,2792,2984,3112,3240,3368,3496;...
- 136,296,456,616,776,936,1096,1256,1416,1544,1736,1864,2024,2216,2344,2536,2664,2856,2984,3112,3368,3496,3624,3752,4008;...
- 144,328,504,680,872,1032,1224,1384,1544,1736,1928,2088,2280,2472,2664,2792,2984,3112,3368,3496,3752,3880,4008,4264,4392;...
- 176,376,584,776,1000,1192,1384,1608,1800,2024,2216,2408,2600,2792,2984,3240,3496,3624,3880,4008,4264,4392,4584,4776,4968;...
- 208,440,680,904,1128,1352,1608,1800,2024,2280,2472,2728,2984,3240,3368,3624,3880,4136,4392,4584,4776,4968,5352,5544,5736;...
- 224,488,744,1000,1256,1544,1800,2024,2280,2536,2856,3112,3368,3624,3880,4136,4392,4584,4968,5160,5352,5736,5992,6200,6456;...
- 256,552,840,1128,1416,1736,1992,2280,2600,2856,3112,3496,3752,4008,4264,4584,4968,5160,5544,5736,5992,6200,6456,6968,7224;...
- 280,600,904,1224,1544,1800,2152,2472,2728,3112,3368,3624,4008,4264,4584,4968,5160,5544,5736,6200,6456,6712,6968,7224,7736;...
- 328,632,968,1288,1608,1928,2280,2600,2984,3240,3624,3880,4264,4584,4968,5160,5544,5992,6200,6456,6712,7224,7480,7736,7992;...
- 336,696,1064,1416,1800,2152,2536,2856,3240,3624,4008,4392,4776,5160,5352,5736,6200,6456,6712,7224,7480,7992,8248,8760,9144;...
- 376,776,1160,1544,1992,2344,2792,3112,3624,4008,4392,4776,5160,5544,5992,6200,6712,7224,7480,7992,8248,8760,9144,9528,9912;...
- 408,840,1288,1736,2152,2600,2984,3496,3880,4264,4776,5160,5544,5992,6456,6968,7224,7736,8248,8504,9144,9528,9912,10296,10680;...
- 440,904,1384,1864,2344,2792,3240,3752,4136,4584,5160,5544,5992,6456,6968,7480,7992,8248,8760,9144,9912,10296,10680,11064,11448;...
- 488,1000,1480,1992,2472,2984,3496,4008,4584,4968,5544,5992,6456,6968,7480,7992,8504,9144,9528,9912,10680,11064,11448,12216,12576;...
- 520,1064,1608,2152,2664,3240,3752,4264,4776,5352,5992,6456,6968,7480,7992,8504,9144,9528,10296,10680,11448,11832,12576,12960,13536;...
- 552,1128,1736,2280,2856,3496,4008,4584,5160,5736,6200,6968,7480,7992,8504,9144,9912,10296,11064,11448,12216,12576,12960,13536,14112;...
- 584,1192,1800,2408,2984,3624,4264,4968,5544,5992,6712,7224,7992,8504,9144,9912,10296,11064,11448,12216,12960,13536,14112,14688,15264;...
- 616,1256,1864,2536,3112,3752,4392,5160,5736,6200,6968,7480,8248,8760,9528,10296,10680,11448,12216,12576,13536,14112,14688,15264,15840;...
- 712,1480,2216,2984,3752,4392,5160,5992,6712,7480,8248,8760,9528,10296,11064,11832,12576,13536,14112,14688,15264,16416,16992,17568,18336];
-
-tbs = dlsch_tbs25(get_I_TBS(mcs)+1,n_rb);
-
-end
-
-function Qm = get_Qm(I_MCS)
- if (I_MCS < 10)
- Qm = 2;
- elseif (I_MCS < 17)
- Qm = 4;
- else
- Qm = 6;
- end
-end
-
-function Itbs = get_I_TBS(I_MCS)
- if (I_MCS < 10)
- Itbs = I_MCS;
- elseif (I_MCS == 10)
- Itbs = 9;
- elseif (I_MCS < 17)
- Itbs = I_MCS-1;
- elseif (I_MCS == 17)
- Itbs = 15;
- else
- Itbs = (I_MCS-2);
- end
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m b/openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m
deleted file mode 100644
index d505224f4a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/gps_link_brush.m
+++ /dev/null
@@ -1,82 +0,0 @@
-%%
-NFrames_cum = cumsum(mode2.NFrames);
-parcours1 = false(1,length(mode2.timestamp_cat));
-
-switch mm
- case 'cordes'
- idx(1) = 1; %start
- idx(2) = strmatch('data_term3_idx30_20100511T164443.EMOS',char(mode2.filenames)); %end
- idx(3) = strmatch('data_term3_idx22_20100518T145355.EMOS',char(mode2.filenames)); %start
- idx(4) = strmatch('data_term3_idx11_20100520T153238.EMOS',char(mode2.filenames)); %end
-
- frame_idx = NFrames_cum(idx)/100;
- parcours1(frame_idx(1):frame_idx(2)) = true;
- parcours1(frame_idx(3):frame_idx(4)) = true;
- case 'penne'
- % double check this - do we neglect the coverage roads here?
- idx = strmatch('data_term3_idx72_20100701T151158.EMOS',char(mode2.filenames));
- frame_idx = NFrames_cum(idx)/100;
- parcours1(1:frame_idx) = true;
- case 'ambialet'
- idx(1) = strmatch('data_term3_idx34_20100719T191120.EMOS',char(mode2.filenames)); %last file before parcours 1
- idx(2) = strmatch('data_term3_idx07_20100721T180138.EMOS',char(mode2.filenames)); %last file of parcours 1
-
- frame_idx = NFrames_cum(idx)/100;
- parcours1(frame_idx(1)+1:frame_idx(2)) = true;
-end
-
-%%
-% mode1_ind = mode1.ind_common & ~mode1.ind_duplicate;
-% mode2_ind = mode2.ind_common & ~mode2.ind_duplicate;
-% mode6_ind = mode6.ind_common & ~mode6.ind_duplicate;
-mode1_ind = true(1,length(mode1.timestamp_cat));
-mode2_ind = true(1,length(mode2.timestamp_cat));
-mode6_ind = true(1,length(mode6.timestamp_cat));
-
-
-%%
-figure(1)
-hold off
-time1 = mode1.gps_time_cat(mode1_ind);
-time2 = mode2.gps_time_cat(mode2_ind);
-%time2_update = mode2_update.gps_time_cat;
-time6 = mode6.gps_time_cat(mode6_ind);
-select1 = zeros(size(time1));
-select2 = zeros(size(time2));
-%select2_update = zeros(size(time2_update));
-select6 = zeros(size(time6));
-plot(time1,select1,'x')
-hold on
-plot(time2,select2,'s')
-%plot(time2_update,select2_update,'d')
-plot(time6,select6,'o')
-%legend('mode1','mode2','mode2_update','mode6')
-legend('mode1','mode2','mode6')
-linkdata on
-
-%%
-figure(2)
-hold off
-[x1,y1] = plot_gps_coordinates(mm,mode1.gps_lon_cat(mode1_ind),mode1.gps_lat_cat(mode1_ind),[],[],'Mode1','blue','Marker','x','Line','none');
-hold on
-[x2,y2] = plot_gps_coordinates('',mode2.gps_lon_cat(mode2_ind),mode2.gps_lat_cat(mode2_ind),[],[],'Mode2','blue','Marker','s','Line','none');
-%[x2_update,y2_update] = plot_gps_coordinates('',mode2_update.gps_lon_cat,mode2_update.gps_lat_cat);
-[x6,y6] = plot_gps_coordinates('',mode6.gps_lon_cat(mode6_ind),mode6.gps_lat_cat(mode6_ind),[],[],'Mode6','blue','Marker','o','Line','none');
-linkdata on
-set(findobj('XDataSource','x1'),'ZDataSource','select1');
-set(findobj('XDataSource','x2'),'ZDataSource','select2');
-%set(findobj('XDataSource','x2_update'),'ZDataSource','select2_update');
-set(findobj('XDataSource','x6'),'ZDataSource','select6');
-% you might have to set ZDataSource manually
-
-
-% %%
-% file_idx = zeros(size(select));
-% NFrames_idx = [1 cumsum(NFrames/100)];
-% for i=1:length(filenames)
-% file_idx(NFrames_idx(i):NFrames_idx(i+1)) = i;
-% end
-%
-% file_idxs = unique(file_idx(select==1));
-% {filenames{file_idxs}}.'
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m b/openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m
deleted file mode 100644
index 3a0dde2b8a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/integrity_check.m
+++ /dev/null
@@ -1,93 +0,0 @@
-addpath('../IMPORT_FILTER')
-addpath('maps')
-
-%% load file
-[filename, pathname] = uigetfile('*.EMOS', 'Pick a file');
-[path,file,ext,ver] = fileparts(filename);
-
-cancel = 0;
-if isequal(filename,0) || isequal(pathname,0)
- disp('canceled')
- %exit
- cancel = 1;
-end
-if cancel == 0
-if filename(10)=='1'
- is_eNb=1;
-else
- is_eNb=0;
-end
-
-decimation = 100;
-NFrames_max = 100*60*10;
-
-[H, H_fq, estimates, gps_data, NFrames] = load_estimates_lte(fullfile(pathname, filename),NFrames_max,decimation,is_eNb);
-
-%save('estimates.mat')
-
-%%
-if is_eNb==0
- h_fig = figure(1);
- plot([estimates.frame_tx],[estimates.frame_rx])
- title('Frame number')
- ylabel('Received frame number');
- xlabel('Transmitted frame number');
- saveas(h_fig,'frame_tx.eps','epsc2')
-
- rx_rssi_dBm = zeros(1,NFrames/decimation);
- for i=1:NFrames/decimation
- rx_rssi_dBm(i) = estimates(i).phy_measurements(1).rx_rssi_dBm(1);
- end
- h_fig = figure(2);
- plot([estimates.frame_tx],rx_rssi_dBm)
- title('RX RSSI [dBm]')
- xlabel('Frame number')
- ylabel('RX RSSI [dBm]')
- saveas(h_fig,'RX_rssi_dBm.eps','epsc2')
-
- h_fig = figure(3);
- plot_gps_coordinates([],[gps_data.longitude], [gps_data.latitude],rx_rssi_dBm);
- title('RX RSSI [dBm]')
- saveas(h_fig,'RX_rssi_dBm_gps.jpg','jpg')
-
- pbch_fer = zeros(1,NFrames/decimation,1);
- for i=1:NFrames/decimation
- pbch_fer(i,:) = estimates(i).pbch_fer(1);
- end
- h_fig = figure(4);
- plot([estimates.frame_tx], pbch_fer)
- title('PBCH FER')
- xlabel('Transmitted frame number');
- ylabel('PBCH FER')
- saveas(h_fig,'pbch_fer.eps','epsc2')
-
- %h_fig = figure(4);
- %mcs = zeros(1,NFrames/decimation,1);
- %for i=1:NFrames/decimation
- % mcs(i,:) = bin2dec(sprintf('%d',bitget(estimates(i).dci_alloc(1,6).dci_pdu(2),6:11)));
- %end
-else
- rx_N0_dBm = zeros(1,NFrames/decimation);
- rx_rssi_dBm = zeros(1,NFrames/decimation);
- for i=1:NFrames/decimation
- rx_N0_dBm(i) = estimates(i).phy_measurements_eNb(1).n0_power_tot_dBm(1);
- rx_rssi_dBm(i) = estimates(i).phy_measurements_eNb(1).rx_rssi_dBm;
- end
-
- h_fig = figure(2);
- plot([estimates.frame_tx],rx_N0_dBm)
- title('RX I0 [dBm]')
- xlabel('Frame number')
- ylabel('RX I0 [dBm]')
- %saveas(h_fig,['RX_I0_dBm' file(5:end) '.eps'],'epsc2')
-
- h_fig = figure(3);
- hold off
- plot([estimates.frame_tx],rx_rssi_dBm);
- title('RX RSSI [dBm]')
- xlabel('Frame number')
- ylabel('RX RSSI [dBm]')
- %saveas(h_fig,['RX_I0_dBm_gps' file(5:end) '.jpg'],'jpg')
-
-end
-end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/map_q.m b/openair1/EMOS/LTE/POST_PROCESSING/map_q.m
deleted file mode 100644
index d5514304a0..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/map_q.m
+++ /dev/null
@@ -1,16 +0,0 @@
-function [qq] = map_q(qqq)
-
-if (qqq == -1)
- qq = 3;
- else
- if(qqq == 1i)
- qq = 2;
- else
- if(qqq == -1i)
- qq = 1;
- else
- qq = 0;
- end
- end
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/mapping.m b/openair1/EMOS/LTE/POST_PROCESSING/mapping.m
deleted file mode 100644
index 6c770fac2b..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/mapping.m
+++ /dev/null
@@ -1,36 +0,0 @@
-function [x1]=mapping(mod1)
-
-% mod1 = modulation on tx ant
-% x1 = symbol stream by tx antenna
-
-%QAM 4 constellation
-x_4=[-1 -1 1 1 ];
-y_4=[-1 1 -1 1 ];
-Qam4=x_4+y_4*j;
-Qam4=Qam4/sqrt(sum(abs(Qam4).^2)/4);
-
-% QAM 16 constellation
-x_16=[-1 -1 -1 -1 -3 -3 -3 -3 1 1 1 1 3 3 3 3 ];
-y_16=[-1 -3 1 3 -1 -3 1 3 -1 -3 1 3 -1 -3 1 3 ];
-Qam16=x_16+y_16*j;
-Qam16=Qam16/sqrt(sum(abs(Qam16).^2)/16);
-
-% QAM 64 constellation
-x_64=[-1 -1 -1 -1 -1 -1 -1 -1 -3 -3 -3 -3 -3 -3 -3 -3 -5 -5 -5 -5 -5 -5 -5 -5 -7 -7 -7 -7 -7 -7 -7 -7 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7];
-y_64=[-1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7 -1 -3 -5 -7 1 3 5 7];
-Qam64=x_64+y_64*sqrt(-1);
-Qam64=Qam64/sqrt(sum(abs(Qam64).^2)/64);
-
-% Modulating on antenna 1
-if mod1==4
- x1=Qam4;
-elseif mod1==16
- x1=Qam16;
-elseif mod1==64
- x1=Qam64;
-else
- display('Modulation selected is not available in the library');
-end
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG b/openair1/EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG
deleted file mode 100644
index 5a29ff963c..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/Penne1.PNG and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet2.png b/openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet2.png
deleted file mode 100644
index eb3df032f2..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet2.png and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet3.png b/openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet3.png
deleted file mode 100644
index 2379c099fe..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/ambialet3.png and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/cordes.png b/openair1/EMOS/LTE/POST_PROCESSING/maps/cordes.png
deleted file mode 100755
index f4077d74b5..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/cordes.png and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/cordes_merged_routes_wp.png b/openair1/EMOS/LTE/POST_PROCESSING/maps/cordes_merged_routes_wp.png
deleted file mode 100644
index 0950531dc3..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/cordes_merged_routes_wp.png and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet3.mat b/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet3.mat
deleted file mode 100644
index c816ebcb17..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet3.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet_new.mat b/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet_new.mat
deleted file mode 100644
index 869d98f01b..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_ambialet_new.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes.mat b/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes.mat
deleted file mode 100755
index f3f72c57ac..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes_new.mat b/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes_new.mat
deleted file mode 100644
index 77c03c028a..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_cordes_new.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne.mat b/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne.mat
deleted file mode 100644
index 062503c56f..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne_new.mat b/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne_new.mat
deleted file mode 100644
index 5b095a3193..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/gps_calib_penne_new.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/penne3.png b/openair1/EMOS/LTE/POST_PROCESSING/maps/penne3.png
deleted file mode 100644
index ec2cdc7050..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/maps/penne3.png and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/maps/plot_gps_coordinates.m b/openair1/EMOS/LTE/POST_PROCESSING/maps/plot_gps_coordinates.m
deleted file mode 100644
index 34bccea7df..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/maps/plot_gps_coordinates.m
+++ /dev/null
@@ -1,151 +0,0 @@
-function [gps_x, gps_y] = plot_gps_coordinates(map, longitude, latitude, rx_rssi, limits, label, color, varargin)
-% h = plot_gps_coordinates(mm, longitude, latitude, rx_rssi, limits, label, color, style)
-%
-% This function plots the gps coordinates given by langitude and latutude
-% onto the map of garbejaire. If langitude and latutude are matrices, each
-% row is treated as a seperate user and plotted in a different color.
-% This function uses the Plate carr???e projection
-% (http://en.wikipedia.org/wiki/Plate_carr%C3%A9e_projection). We assume
-% the coordinates of 3 reference points are known in lat/lon as well as
-% x/y coordinates. This projection method is only fairly accurate. Also
-% there will be inaccuracies in the reference points. It is therefore
-% necessary the check the result and include a correction factor if
-% neccesary.
-%
-% The function takes the following parameters
-% map ... 'cordes','penne','ambialet'
-% longitude, latitude ... from gps data
-% rx_rssi ... data to be plotted
-% label (optional) ... text label for data
-% color (optional) ... plot data in color instead of using data in rx_rssi
-
-persistent mm image_points gps_points_num;
-
-plot_image = 1;
-switch map
- case 'cordes'
- if isempty(mm)
- mm=imread('cordes_merged_routes_wp.png');
- load('gps_calib_cordes_new.mat')
- end
- case 'penne'
- if isempty(mm)
- mm=imread('penne3.png');
- load('gps_calib_penne_new.mat')
- end
- case 'ambialet'
- if isempty(mm)
- mm=imread('ambialet2.png');
- load('gps_calib_ambialet_new.mat')
- end
- otherwise
- plot_image = 0;
-end
-
-if nargin<=3
- rx_rssi = [];
-end
-
-if nargin<=4
- if (~isempty(rx_rssi))
- m = colormap;
- cmin = min(rx_rssi(isfinite(rx_rssi)));
- cmax = max(rx_rssi(isfinite(rx_rssi)));
- cidx = fix((rx_rssi-cmin)/(cmax-cmin)*(length(m)-1))+1;
-% s = (cmax-cmin)/(length(m)-1);
-% if (s==0)
-% cidx = ones(size(rx_rssi));
-% else
-% cidx = ceil((rx_rssi-cmin)/s+1);
-% end
- end
-else
-% if isempty(rx_rssi)
-% error('rx_rssi cannot be empty if limits is provided');
-% end
- if (~isempty(limits))
- m = colormap;
- cmin = limits(1);
- cmax = limits(2);
- rx_rssi(rx_rssicmax) = nan;
- cidx = fix((rx_rssi-cmin)/(cmax-cmin)*(length(m)-1))+1;
-% s = (cmax-cmin)/(length(m)-1);
-% if (s==0)
-% cidx = ones(size(rx_rssi));
-% else
-% cidx = ceil((rx_rssi-cmin)/s+1);
-% end
- end
-end
-
-if nargin <= 6
- color = 'blue';
-end
-if nargin <= 7
- style = {'Marker','x','Line','none'};
-else
- style = varargin;
-end
-
-x = image_points(:,1);
-y = image_points(:,2);
-lat = gps_points_num(:,1);
-lon = gps_points_num(:,2);
-
-%plot(x,y,'o')
-%keyboard;
-
-% calculate the scale factor of the projection by averaging
-pairs = nchoosek(1:length(x),2);
-npairs = nchoosek(length(x),2);
-for i = 1:npairs
- scalex(i) = (x(pairs(i,1)) - x(pairs(i,2)))/(lon(pairs(i,1))-lon(pairs(i,2)));
- scaley(i) = (y(pairs(i,1)) - y(pairs(i,2)))/(lat(pairs(i,1))-lat(pairs(i,2)));
-end
-
-% apply the correction factor, which was estimated manually by inspection
-scaley = mean(scaley);
-scalex = mean(scalex);
-
-gps_y = (latitude-lat(1))*mean(scaley) + y(1); % gps_x is the north-south direction
-gps_x = (longitude-lon(1))*mean(scalex) + x(1); % gps_y is the east-west direction
-
-if plot_image
- image(mm); % plots the image itself
- hold on
-end
-
-if (~isempty(rx_rssi))
- for i=1:length(gps_x)
- if (latitude(i)~=0 && longitude(i)~=0 && isfinite(rx_rssi(i)))
- plot(gps_x(i),gps_y(i),'color',m(cidx(i),:),style{:})
- hold on
- end
- end
- hcb = colorbar;
- set(hcb,'YTickMode','manual');
- set(hcb,'YTick',1:8:length(m));
- yt = round(linspace(cmin,cmax,64));
- yt = yt(1:8:length(m));
- clabel = cell(size(yt));
- for j=1:length(yt)
- clabel{j} = sprintf('%4.3g', yt(j));
- end
- set(hcb,'YTickLabel',clabel);
-else
- plot(gps_x,gps_y,'color',color,style{:});
-end
-if nargin >= 6
- h = text(mean(gps_x),mean(gps_y),label);
- set(h,'Color',color,'FontWeight','bold');
-end
-% if ~isempty(mm)
-% hold off
-% end
-%if isempty(gps_x) || isempty(gps_y) || any(latitude==0) || any(longitude==0)
-% axis([3264 5819 2610 4556]);
-%else
-% axis([min(gps_x)-100, max(gps_x)+100, min(gps_y)-100, max(gps_y)+100]);
-%end
-axis image
-axis off
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/mode1_mode2_comparison.m b/openair1/EMOS/LTE/POST_PROCESSING/mode1_mode2_comparison.m
deleted file mode 100755
index 1fb479f1d2..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/mode1_mode2_comparison.m
+++ /dev/null
@@ -1,105 +0,0 @@
-clear all
-close all
-
-pathname='/emos/EMOS/results/';
-
-mode1=load('/emos/EMOS/Mode1/20100526_mode1_parcours1_part4_part5/results_UE.mat');
-mode2=load('/emos/EMOS/Mode2/20100520_mode2_parcours1_part4_part5/results_UE.mat');
-mode6 = load('/emos/EMOS/Mode6/results/results_UE.mat');
-mm='cordes';
-
-
-%%
-for i = 2:length(mode1.gps_lat_cat)
- mode1.dist_travelled(i-1) = Dist_Calc_from_GPS(mode1.gps_lat_cat(i-1), mode1.gps_lon_cat(i-1), mode1.gps_lat_cat(i), mode1.gps_lon_cat(i));
- % Please remember that the above calculated distance is in KiloMeters
-end
-mode1.dist_travelled = cumsum(mode1.dist_travelled);
-
-for i = 2:length(mode2.gps_lat_cat)
- mode2.dist_travelled(i-1) = Dist_Calc_from_GPS(mode2.gps_lat_cat(i-1), mode2.gps_lon_cat(i-1), mode2.gps_lat_cat(i), mode2.gps_lon_cat(i));
- % Please remember that the above calculated distance is in KiloMeters
-end
-mode2.dist_travelled = cumsum(mode2.dist_travelled);
-
-for i = 2:length(mode6.gps_lat_cat)
- mode6.dist_travelled(i-1) = Dist_Calc_from_GPS(mode6.gps_lat_cat(i-1), mode6.gps_lon_cat(i-1), mode6.gps_lat_cat(i), mode6.gps_lon_cat(i));
- % Please remember that the above calculated distance is in KiloMeters
-end
-mode6.dist_travelled = cumsum(mode6.dist_travelled);
-
-% figure(1)
-% hold off
-% plot(mode1.gps_lon_cat)
-% hold on
-% plot(mode2.gps_lon_cat,'r')
-%
-% figure(2)
-% hold off
-% plot(mode1.dist_travelled)
-% hold on
-% plot(mode2.dist_travelled,'r')
-
-%%
-start_mode1 = 746;
-length_mode1 = 300;
-start_mode2 = 330;
-length_mode2 = 380;
-start_mode6 = 16599;
-end_mode6 = 16276;
-%length_mode6 =
-
-h_fig = figure(3);
-hold off
-plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1), ...
- mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1))
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2), ...
- mode2.rx_rssi_dBm_cat(start_mode2:start_mode2+length_mode2,1),'r')
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.rx_rssi_dBm_cat(end_mode6:start_mode6,1),'g')
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.eps'),'epsc2');
-
-
-%%
-h_fig = figure(4);
-plot_gps_coordinates(mm,mode1.gps_lon_cat(start_mode1:start_mode1+length_mode1), ...
- mode1.gps_lat_cat(start_mode1:start_mode1+length_mode1),...
- double(mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1)));
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.jpg'),'jpg');
-
-%%
-mode1.UE_connected = (mode1.UE_mode_cat==3);
-%mode1.good = (mode1.dlsch_fer_cat<=100 & mode1.dlsch_fer_cat>=0).';
-mode1.throughput = (100-mode1.dlsch_fer_cat).*mode1.tbs_cat*6;
-mode1.throughput(~mode1.UE_connected) = 0;
-mode2.UE_connected = (mode2.UE_mode_cat==3);
-%mode2.good = (mode2.dlsch_fer_cat<=100 & mode2.dlsch_fer_cat>=0).';
-mode2.throughput = (100-mode2.dlsch_fer_cat).*mode2.tbs_cat*6;
-mode2.throughput(~mode2.UE_connected) = 0;
-mode6.UE_connected = (mode6.UE_mode_cat==3);
-%mode6.good = (mode6.dlsch_fer_cat<=100 & mode6.dlsch_fer_cat>=0).';
-mode6.throughput = (100-mode6.dlsch_fer_cat).*mode6.tbs_cat*6;
-mode6.throughput(~mode6.UE_connected) = 0;
-
-
-h_fig = figure(5);
-hold off
-plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1),...
- mode1.throughput(start_mode1:start_mode1+length_mode1));
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- mode2.throughput(start_mode2:start_mode2+length_mode2),'r');
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.throughput(end_mode6:start_mode6,1),'g')
-
-
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_troughput_distance_travelled.eps'),'epsc2');
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/my_data_tip.m b/openair1/EMOS/LTE/POST_PROCESSING/my_data_tip.m
deleted file mode 100644
index 43178bec5b..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/my_data_tip.m
+++ /dev/null
@@ -1,14 +0,0 @@
-function output_txt = myfunction(obj,event_obj)
-% Display the position of the data cursor
-% obj Currently not used (empty)
-% event_obj Handle to event object
-% output_txt Data cursor text string (string or cell array of strings).
-
-pos = get(event_obj,'Position');
-output_txt = {['X: ',datestr(pos(1)/86400+719529.0833)],...
- ['Y: ',num2str(pos(2),4)]};
-
-% If there is a Z-coordinate in the position, display it as well
-if length(pos) > 2
- output_txt{end+1} = ['Z: ',num2str(pos(3),4)];
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom1.mat b/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom1.mat
deleted file mode 100644
index 83b6854c1e..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom1.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom2.mat b/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom2.mat
deleted file mode 100644
index 7fdf012c2d..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom2.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom3.mat b/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom3.mat
deleted file mode 100644
index 60ed09e3d7..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/penne_zoom3.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/pfair.m b/openair1/EMOS/LTE/POST_PROCESSING/pfair.m
deleted file mode 100644
index ce1d189754..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/pfair.m
+++ /dev/null
@@ -1,61 +0,0 @@
-function h_fig = pfair(dlsch_throughput,gps_lon_cat,gps_lat_cat,dist,mm,pathname,desc,h_fig)
-%% extrapolation to loaded cell
-N_samples = floor(length(dlsch_throughput)/4)*4;
-%dlsch_throughput(~UE_connected) = 0;
-dlsch_throughput4 = reshape(dlsch_throughput(1:N_samples),4,[]);
-dlsch_throughput4_pfair = (dlsch_throughput4.^2)./repmat(sum(dlsch_throughput4,1),4,1);
-dlsch_throughput4_pfair(isnan(dlsch_throughput4_pfair))=0;
-dlsch_throughput_pfair = sum(dlsch_throughput4_pfair,1);
-
-%% over time
-h_fig = h_fig+1;
-h_fig = figure(h_fig);
-hold off
-plot(dlsch_throughput4_pfair.','x')
-hold on
-plot(dlsch_throughput_pfair,'kx','Linewidth',2)
-ylim([0 8.64e6]);
-ylabel('Throughput [bps]')
-xlabel('Time [sec]')
-legend('User 1','User 2','User 3','User 4','Sum rate');
-saveas(h_fig,fullfile(pathname,['pfair_throughput_4users_',desc,'.eps']),'epsc2');
-
-
-%%
-h_fig = h_fig+1;
-h_fig = figure(h_fig);
-hold off
-colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'};
-for n = 1:4
- [f,x] = ecdf(dlsch_throughput4_pfair(n,:));
- plot(x,f,colors{n});
- hold on
-end
-[f,x] = ecdf(dlsch_throughput_pfair);
-plot(x,f,'k','Linewidth',2);
-xlim([0 8.64e6]);
-legend('User 1','User 2','User 3','User 4','Sum rate');
-title('DL Throughput CDF')
-xlabel('Throughput [bps]')
-ylabel('P(x0);
-mode1.UE_connected = (mode1.UE_mode_cat==3);
-mode1.throughput = double(100./(100+mode1.dlsch_fer_cat).*mode1.tbs_cat.*6.*100);
-mode1.good = (mode1.dlsch_fer_cat<=100 & mode1.dlsch_fer_cat>=0).';
-
-mode2.UE_synched = (mode2.UE_mode_cat>0);
-mode2.UE_connected = (mode2.UE_mode_cat==3);
-mode2.throughput = double(100./(100+mode2.dlsch_fer_cat).*mode2.tbs_cat.*6.*100);
-mode2.good = (mode2.dlsch_fer_cat<=100 & mode2.dlsch_fer_cat>=0).';
-
-if strcmp(mm,'cordes')
- mode2_update.UE_synched = (mode2_update.UE_mode_cat>0);
- mode2_update.UE_connected = (mode2_update.UE_mode_cat==3);
-end
-
-mode6.UE_synched = (mode6.UE_mode_cat>0);
-mode6.UE_connected = (mode6.UE_mode_cat==3);
-mode6.throughput = double(100./(100+mode6.dlsch_fer_cat).*mode6.tbs_cat.*6.*100);
-mode6.good = (mode6.dlsch_fer_cat<=100 & mode6.dlsch_fer_cat>=0).';
-
-mode2_ideal.UE_connected = (mode2_ideal.UE_mode_cat(1:100:end)==3);
-mode2_ideal.UE_synched = (mode2_ideal.UE_mode_cat(1:100:end)>0);
-
-%%
-mode1_ul.ulsch_fer_cat = [100 diff(mode1_ul.ulsch_errors_cat)];
-mode1_ul.ulsch_throughput = double(mode1_ul.tbs_cat) .* double(100 - mode1_ul.ulsch_fer_cat) .* 3;
-mode1_ul.eNB_connected = ([mode1_ul.eNb_UE_stats_cat(:).UE_mode]==3);
-mode1_ul.ulsch_throughput(1,~mode1_ul.eNB_connected) = 0;
-mode1_ul.ulsch_throughput_ideal_1Rx = scale_ideal_tp(mode1_ul.Rate_64Qam_1RX_cat*100);
-mode1_ul.ulsch_throughput_ideal_2Rx = scale_ideal_tp(mode1_ul.Rate_64Qam_2RX_cat*100);
-mode1_ul.good = ~isnan(mode1_ul.ulsch_throughput_ideal_1Rx);
-mode1_ul.ulsch_throughput_ideal_1Rx(~mode1_ul.eNB_connected,1) = 0;
-mode1_ul.ulsch_throughput_ideal_2Rx(~mode1_ul.eNB_connected,1) = 0;
-
-mode2_ul.ulsch_fer_cat = [100 diff(mode2_ul.ulsch_errors_cat)];
-mode2_ul.ulsch_throughput = double(mode2_ul.tbs_cat) .* double(100 - mode2_ul.ulsch_fer_cat) .* 3;
-mode2_ul.eNB_connected = ([mode2_ul.eNb_UE_stats_cat(:).UE_mode]==3);
-mode2_ul.ulsch_throughput(1,~mode2_ul.eNB_connected) = 0;
-mode2_ul.ulsch_throughput_ideal_1Rx = scale_ideal_tp(mode2_ul.Rate_64Qam_1RX_cat*100);
-mode2_ul.ulsch_throughput_ideal_2Rx = scale_ideal_tp(mode2_ul.Rate_64Qam_2RX_cat*100);
-mode2_ul.good = ~isnan(mode2_ul.ulsch_throughput_ideal_1Rx);
-mode2_ul.ulsch_throughput_ideal_1Rx(~mode2_ul.eNB_connected,1) = 0;
-mode2_ul.ulsch_throughput_ideal_2Rx(~mode2_ul.eNB_connected,1) = 0;
-
-mode6_ul.ulsch_fer_cat = [100 diff(mode6_ul.ulsch_errors_cat)];
-mode6_ul.ulsch_throughput = double(mode6_ul.tbs_cat) .* double(100 - mode6_ul.ulsch_fer_cat) .* 3;
-mode6_ul.eNB_connected = ([mode6_ul.eNb_UE_stats_cat(:).UE_mode]==3);
-mode6_ul.ulsch_throughput(1,~mode6_ul.eNB_connected) = 0;
-mode6_ul.ulsch_throughput_ideal_1Rx = scale_ideal_tp(mode6_ul.Rate_64Qam_1RX_cat*100);
-mode6_ul.ulsch_throughput_ideal_2Rx = scale_ideal_tp(mode6_ul.Rate_64Qam_2RX_cat*100);
-mode6_ul.good = ~isnan(mode6_ul.ulsch_throughput_ideal_1Rx);
-mode6_ul.ulsch_throughput_ideal_1Rx(~mode6_ul.eNB_connected,1) = 0;
-mode6_ul.ulsch_throughput_ideal_2Rx(~mode6_ul.eNB_connected,1) = 0;
-
-
-%% calc distance
-[mode1.dist, mode1.dist_travelled] = calc_dist(mode1.gps_lat_cat,mode1.gps_lon_cat,mm);
-[mode2.dist, mode2.dist_travelled] = calc_dist(mode2.gps_lat_cat,mode2.gps_lon_cat,mm);
-[mode6.dist, mode6.dist_travelled] = calc_dist(mode6.gps_lat_cat,mode6.gps_lon_cat,mm);
-
-
-%% define parcours 1
-NFrames_cum = cumsum(mode2.NFrames);
-parcours1 = false(1,length(mode2.timestamp_cat));
-
-switch mm
- case 'cordes'
- idx(1) = 1; %start
- idx(2) = strmatch('data_term3_idx30_20100511T164443.EMOS',char(mode2.filenames)); %end
- idx(3) = strmatch('data_term3_idx22_20100518T145355.EMOS',char(mode2.filenames)); %start
- idx(4) = strmatch('data_term3_idx11_20100520T153238.EMOS',char(mode2.filenames)); %end
-
- frame_idx = NFrames_cum(idx)/100;
- parcours1(frame_idx(1):frame_idx(2)) = true;
- parcours1(frame_idx(3):frame_idx(4)) = true;
- case 'penne'
- % double check this - do we neglect the coverage roads here?
- idx = strmatch('data_term3_idx72_20100701T151158.EMOS',char(mode2.filenames));
- frame_idx = NFrames_cum(idx)/100;
- parcours1(1:frame_idx) = true;
- case 'ambialet'
- idx(1) = strmatch('data_term3_idx34_20100719T191120.EMOS',char(mode2.filenames)); %last file before parcours 1
- idx(2) = strmatch('data_term3_idx07_20100721T180138.EMOS',char(mode2.filenames)); %last file of parcours 1
-
- frame_idx = NFrames_cum(idx)/100;
- parcours1(frame_idx(1)+1:frame_idx(2)) = true;
-end
-
-
-%% find a common subset of points
-% take the points from mode6 where UE_connected==1 as basis
-% then for each of those points find points in the other set that are close
-tol = 0.0001;
-mode1_gps = [mode1.gps_lat_cat.' mode1.gps_lon_cat.'];
-mode2_gps = [mode2.gps_lat_cat.' mode2.gps_lon_cat.'];
-mode6_gps = [mode6.gps_lat_cat.' mode6.gps_lon_cat.'];
-mode1.ind_common = false(1,length(mode1_gps));
-mode2.ind_common = false(1,length(mode2_gps));
-mode6.ind_common = false(1,length(mode6_gps));
-for i=1:length(mode6_gps)
- mode1_d = ipdm(mode6_gps(i,:),mode1_gps,'Subset','Maximum','Limit',tol);
- mode2_d = ipdm(mode6_gps(i,:),mode2_gps,'Subset','Maximum','Limit',tol);
- mode1.ind_common(mode1_d<=tol) = true;
- mode2.ind_common(mode2_d<=tol) = true;
- if any(mode1_d<=tol) && any(mode2_d<=tol)
- mode6.ind_common(i) = true;
- end
-end
-
-%% find routes taken more than once
-mode1.ind_duplicate = filter_routes(mode1.gps_lat_cat,mode1.gps_lon_cat,mode1.gps_time_cat);
-mode2.ind_duplicate = filter_routes(mode2.gps_lat_cat,mode2.gps_lon_cat,mode2.gps_time_cat);
-mode6.ind_duplicate = filter_routes(mode6.gps_lat_cat,mode6.gps_lon_cat,mode6.gps_time_cat);
-
-% sum(parcours1 & ~mode2.ind_duplicate & ~mode2.ind_common)
-% sum(~mode1.ind_duplicate & ~mode1.ind_common)
-
-% add mode2.throughput( parcours1 & ~mode2.ind_duplicate &
-% ~mode2.ind_common) to the points in mode6.throughput
-
-%% set throughput to 0 when not connected resp. not synched
-mode1.throughput(~mode1.UE_connected | ~mode1.good) = 0;
-mode2.throughput(~mode2.UE_connected | ~mode2.good) = 0;
-mode6.throughput(~mode6.UE_connected | ~mode6.good) = 0;
-nn = fieldnames(mode2_ideal);
-for n = strmatch('rateps',nn).'
- mode2_ideal.(nn{n})(~mode2_ideal.UE_synched) = 0;
-end
-
-% %% select common routes of parcours 1 that have only been taken once
-% mode1.throughput(~mode1.ind_common | mode1.ind_duplicate) = nan;
-% mode2.throughput(~mode2.ind_common | mode2.ind_duplicate) = nan;
-% mode6.throughput(~mode6.ind_common | mode6.ind_duplicate) = nan;
-% nn = fieldnames(mode2_ideal);
-% for n = strmatch('rateps',nn).'
-% mode2_ideal.(nn{n})(~mode2.ind_common | mode2.ind_duplicate) = nan;
-% end
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'};
-legend_str = {};
-ni=1;
-for n = strmatch('rateps',nn).'
- hold on
- si = strfind(nn{n},'supportedQam');
- if si
- [f,x] = ecdf(scale_ideal_tp(mode2_ideal.(nn{n})(mode2.ind_common & ~mode2.ind_duplicate)));
- plot(x,f,colors{ni},'Linewidth',2);
- legend_tmp = nn{n};
- legend_tmp(si:si+10) = [];
- legend_str{ni} = legend_tmp;
- ni=ni+1;
- end
-end
-[f,x] = ecdf(mode1.throughput(mode1.ind_common & ~mode1.ind_duplicate));
-plot(x,f,colors{ni},'Linewidth',2)
-legend_str{ni} = sprintf('TX mode 1 (%d pts)',sum((mode1.ind_common & ~mode1.ind_duplicate)));
-ni=ni+1;
-[f,x] = ecdf(mode2.throughput(mode2.ind_common & ~mode2.ind_duplicate));
-plot(x,f,colors{ni},'Linewidth',2)
-legend_str{ni} = sprintf('Tx mode 2 (%d pts)',sum(mode2.ind_common & ~mode2.ind_duplicate));
-ni=ni+1;
-[f,x] = ecdf(mode6.throughput(mode6.ind_common & ~mode6.ind_duplicate));
-plot(x,f,colors{ni},'Linewidth',2)
-legend_str{ni} = sprintf('Tx mode 6 (%d pts)',sum(mode6.ind_common & ~mode6.ind_duplicate));
-ni=ni+1;
-
-title('DLSCH throughput CDF')
-xlabel('Throughput [bps]')
-ylabel('P(x=0).';
- [f,x] = ecdf(double(mode2_update.pbch_fer_cat(mode2_update.pbch_good)));
- n_points = sum(mode2_update.pbch_good);
-else
- mode2.pbch_fer_cat(~mode2.UE_synched) = 100;
- mode2.pbch_good = (mode2.pbch_fer_cat<=100 & mode2.pbch_fer_cat>=0).';
- [f,x] = ecdf(double(mode2.pbch_fer_cat(mode2.pbch_good & parcours1)));
- n_points = sum(mode2.pbch_good & parcours1);
-end
-plot(x,f,'r','Linewidth',2)
-hold on
-mode1.pbch_fer_cat(~mode1.UE_synched) = 100;
-mode1.pbch_good = (mode1.pbch_fer_cat<=100 & mode1.pbch_fer_cat>=0).';
-[f,x] = ecdf(double(mode1.pbch_fer_cat(mode1.pbch_good)));
-plot(x,f,'b','Linewidth',2)
-legend(sprintf('Mode 2/6 (%d pts)',n_points),...
- sprintf('Mode 1 (%d pts)',sum(mode1.pbch_good)),'Location','SouthEast');
-title('PBCH FER CDF')
-xlabel('PBCH FER [%]')
-ylabel('P(x0.5) & (dist<100)).';
-rx_rssi_dBm_cat = [mode1.rx_rssi_dBm_cat; mode2.rx_rssi_dBm_cat; mode6.rx_rssi_dBm_cat];
-good = (rx_rssi_dBm_cat<40 & rx_rssi_dBm_cat>-120);
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-semilogx(dist(dist_ok & good(:,1)), double(rx_rssi_dBm_cat(dist_ok & good(:,1),1)), 'rx')
-hold on
-max_dist = ceil(max(dist(dist_ok & good(:,1))));
-PL = double(rx_rssi_dBm_cat(dist_ok & good(:,1),1)) - 43;
-d = logspace(-1,log10(max_dist),100);
-res = [ones(length(PL),1) log10(dist(dist_ok & good(:,1)).')]\PL;
-semilogx(d,res(1)+res(2)*log10(d)+43,'b')
-semilogx(d,43-cost231_hata(d),'k')
-legend('measured',sprintf('fitted (PL_0=%4.2fdB, R=%4.2f)',res(1)+43,res(2)/10),'COST231-Hata','Location','Best');
-title('RX RSSI distance from BS [dBm]')
-xlabel('Distance from BS [Km]')
-ylabel('RX RSSI [dBm]')
-xlim([0.1 max_dist])
-ylim([-110 -30]);
-saveas(h_fig, fullfile(pathname,'results','RX_RSSI_dBm_dist_with_PL.eps'),'epsc2');
-
-
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_in_bins(dist(good(:,1)),double(rx_rssi_dBm_cat(good(:,1),1)),0:max_dist);
-xlabel('Distance [km]')
-ylabel('RX RSSI [dBm]')
-ylim([-110 -30]);
-saveas(h_fig,fullfile(pathname,'results','RX_RSSI_dBm_dist_bars.eps'),'epsc2');
-
-
-%% distance travelled comparison
-% to select regions use the gps_link_brush.m tool
-close all
-
-switch mm
- case 'cordes'
- % plot_distance_travelled_cordes
- case 'penne'
- for file_id = 1:3
- load(sprintf('penne_zoom%d.mat',file_id))
- select2b = false(size(parcours1));
- select2b(parcours1)=select2;
- index1 = find(select1);
- index2 = find(select2);
- index6 = find(select6);
- index2b = find(select2b);
- plot_distance_travelled(mode1,index1,mode2,mode2_ideal,index2b,mode6,index6,pathname,file_id,mm);
- end
-
- case 'ambialet'
- for file_id = 1:3
- load(sprintf('ambialet_zoom%d.mat',file_id))
- select2b = false(size(parcours1));
- select2b(parcours1)=select2;
- index1 = find(select1);
- index2 = find(select2);
- index6 = find(select6);
- index2b = find(select2b);
- plot_distance_travelled(mode1,index1,mode2,mode2_ideal,index2b,mode6,index6,pathname,file_id,mm);
- end
-
- eval_village_ambialet
-
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_comparison_all_modes_cordes.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_comparison_all_modes_cordes.m
deleted file mode 100644
index 8a81d2820d..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_comparison_all_modes_cordes.m
+++ /dev/null
@@ -1,569 +0,0 @@
-% file: plot_comparison_all_modes
-
-close all
-clear all
-h_fig = 0;
-
-addpath('~/Devel/matlab/IPDM')
-
-% pathname = '/media/disk/PENNE/';
-% mm = 'penne';
-% pathname = '/emos/AMBIALET/';
-% mm = 'ambialet';
-pathname = '/emos/EMOS/';
-mm = 'cordes';
-
-%%
-mode1 = load(fullfile(pathname,'Mode1/results/results_UE.mat'));
-mode1_ul = load(fullfile(pathname,'Mode1/results/results_eNB.mat'));
-mode2 = load(fullfile(pathname,'Mode2/results/results_UE.mat'));
-if strcmp(mm,'cordes')
- mode2_update = load(fullfile(pathname,'Mode2_update/results/results_UE.mat'));
- mode2_ul = load(fullfile(pathname,'Mode2_update/results/results_eNB.mat'));
-else
- mode2_ul = load(fullfile(pathname,'Mode2/results/results_eNB.mat'));
-end
-mode6 = load(fullfile(pathname,'Mode6/results/results_UE.mat'));
-mode6_ul = load(fullfile(pathname,'Mode6/results/results_eNB.mat'));
-
-mode2_ideal = load(fullfile(pathname,'/Mode2/results/results_cat_UE.mat'));
-
-%%
-mode1.UE_synched = (mode1.UE_mode_cat>0);
-mode1.UE_connected = (mode1.UE_mode_cat==3);
-mode1.throughput = double(100./(100+mode1.dlsch_fer_cat).*mode1.tbs_cat.*6.*100);
-mode1.good = (mode1.dlsch_fer_cat<=100 & mode1.dlsch_fer_cat>=0).';
-
-mode2.UE_synched = (mode2.UE_mode_cat>0);
-mode2.UE_connected = (mode2.UE_mode_cat==3);
-mode2.throughput = double(100./(100+mode2.dlsch_fer_cat).*mode2.tbs_cat.*6.*100);
-mode2.good = (mode2.dlsch_fer_cat<=100 & mode2.dlsch_fer_cat>=0).';
-
-if strcmp(mm,'cordes')
- mode2_update.UE_synched = (mode2_update.UE_mode_cat>0);
- mode2_update.UE_connected = (mode2_update.UE_mode_cat==3);
-end
-
-mode6.UE_synched = (mode6.UE_mode_cat>0);
-mode6.UE_connected = (mode6.UE_mode_cat==3);
-mode6.throughput = double(100./(100+mode6.dlsch_fer_cat).*mode6.tbs_cat.*6.*100);
-mode6.good = (mode6.dlsch_fer_cat<=100 & mode6.dlsch_fer_cat>=0).';
-
-mode2_ideal.UE_connected = (mode2_ideal.UE_mode_cat(1:100:end)==3);
-mode2_ideal.UE_synched = (mode2_ideal.UE_mode_cat(1:100:end)>0);
-
-%%
-mode1_ul.ulsch_fer_cat = [100 diff(mode1_ul.ulsch_errors_cat)];
-mode1_ul.ulsch_throughput = double(mode1_ul.tbs_cat) .* double(100 - mode1_ul.ulsch_fer_cat) .* 3;
-mode1_ul.eNB_connected = ([mode1_ul.eNb_UE_stats_cat(:).UE_mode]==3);
-mode1_ul.ulsch_throughput(1,~mode1_ul.eNB_connected) = 0;
-mode1_ul.ulsch_throughput_ideal_1Rx = scale_ideal_tp(mode1_ul.Rate_64Qam_1RX_cat*100);
-mode1_ul.ulsch_throughput_ideal_2Rx = scale_ideal_tp(mode1_ul.Rate_64Qam_2RX_cat*100);
-mode1_ul.good = ~isnan(mode1_ul.ulsch_throughput_ideal_1Rx);
-mode1_ul.ulsch_throughput_ideal_1Rx(~mode1_ul.eNB_connected,1) = 0;
-mode1_ul.ulsch_throughput_ideal_2Rx(~mode1_ul.eNB_connected,1) = 0;
-
-mode2_ul.ulsch_fer_cat = [100 diff(mode2_ul.ulsch_errors_cat)];
-mode2_ul.ulsch_throughput = double(mode2_ul.tbs_cat) .* double(100 - mode2_ul.ulsch_fer_cat) .* 3;
-mode2_ul.eNB_connected = ([mode2_ul.eNb_UE_stats_cat(:).UE_mode]==3);
-mode2_ul.ulsch_throughput(1,~mode2_ul.eNB_connected) = 0;
-mode2_ul.ulsch_throughput_ideal_1Rx = scale_ideal_tp(mode2_ul.Rate_64Qam_1RX_cat*100);
-mode2_ul.ulsch_throughput_ideal_2Rx = scale_ideal_tp(mode2_ul.Rate_64Qam_2RX_cat*100);
-mode2_ul.good = ~isnan(mode2_ul.ulsch_throughput_ideal_1Rx);
-mode2_ul.ulsch_throughput_ideal_1Rx(~mode2_ul.eNB_connected,1) = 0;
-mode2_ul.ulsch_throughput_ideal_2Rx(~mode2_ul.eNB_connected,1) = 0;
-
-mode6_ul.ulsch_fer_cat = [100 diff(mode6_ul.ulsch_errors_cat)];
-mode6_ul.ulsch_throughput = double(mode6_ul.tbs_cat) .* double(100 - mode6_ul.ulsch_fer_cat) .* 3;
-mode6_ul.eNB_connected = ([mode6_ul.eNb_UE_stats_cat(:).UE_mode]==3);
-mode6_ul.ulsch_throughput(1,~mode6_ul.eNB_connected) = 0;
-mode6_ul.ulsch_throughput_ideal_1Rx = scale_ideal_tp(mode6_ul.Rate_64Qam_1RX_cat*100);
-mode6_ul.ulsch_throughput_ideal_2Rx = scale_ideal_tp(mode6_ul.Rate_64Qam_2RX_cat*100);
-mode6_ul.good = ~isnan(mode6_ul.ulsch_throughput_ideal_1Rx);
-mode6_ul.ulsch_throughput_ideal_1Rx(~mode6_ul.eNB_connected,1) = 0;
-mode6_ul.ulsch_throughput_ideal_2Rx(~mode6_ul.eNB_connected,1) = 0;
-
-
-%% calc distance
-[mode1.dist, mode1.dist_travelled] = calc_dist(mode1.gps_lat_cat,mode1.gps_lon_cat,mm);
-[mode2.dist, mode2.dist_travelled] = calc_dist(mode2.gps_lat_cat,mode2.gps_lon_cat,mm);
-[mode6.dist, mode6.dist_travelled] = calc_dist(mode6.gps_lat_cat,mode6.gps_lon_cat,mm);
-
-
-%% define parcours 1
-NFrames_cum = cumsum(mode2.NFrames);
-parcours1 = false(1,length(mode2.timestamp_cat));
-
-switch mm
- case 'cordes'
- idx(1) = 1; %start
- idx(2) = strmatch('data_term3_idx30_20100511T164443.EMOS',char(mode2.filenames)); %end
- idx(3) = strmatch('data_term3_idx22_20100518T145355.EMOS',char(mode2.filenames)); %start
- idx(4) = strmatch('data_term3_idx11_20100520T153238.EMOS',char(mode2.filenames)); %end
-
- frame_idx = NFrames_cum(idx)/100;
- parcours1(frame_idx(1):frame_idx(2)) = true;
- parcours1(frame_idx(3):frame_idx(4)) = true;
- case 'penne'
- % double check this - do we neglect the coverage roads here?
- idx = strmatch('data_term3_idx72_20100701T151158.EMOS',char(mode2.filenames));
- frame_idx = NFrames_cum(idx)/100;
- parcours1(1:frame_idx) = true;
- case 'ambialet'
- idx(1) = strmatch('data_term3_idx34_20100719T191120.EMOS',char(mode2.filenames)); %last file before parcours 1
- idx(2) = strmatch('data_term3_idx07_20100721T180138.EMOS',char(mode2.filenames)); %last file of parcours 1
-
- frame_idx = NFrames_cum(idx)/100;
- parcours1(frame_idx(1)+1:frame_idx(2)) = true;
-end
-
-
-%% find a common subset of points
-% take the points from mode6 where UE_connected==1 as basis
-% then for each of those points find points in the other set that are close
-tol = 0.001;
-mode1_gps = [mode1.gps_lat_cat.' mode1.gps_lon_cat.'];
-mode2_gps = [mode2.gps_lat_cat.' mode2.gps_lon_cat.'];
-mode6_gps = [mode6.gps_lat_cat.' mode6.gps_lon_cat.'];
-mode1.ind_common = false(1,length(mode1_gps));
-mode2.ind_common = false(1,length(mode2_gps));
-mode6.ind_common = false(1,length(mode6_gps));
-for i=1:length(mode6_gps)
- mode1_d = ipdm(mode6_gps(i,:),mode1_gps,'Subset','Maximum','Limit',tol);
- mode2_d = ipdm(mode6_gps(i,:),mode2_gps,'Subset','Maximum','Limit',tol);
- mode1.ind_common(mode1_d<=tol) = true;
- mode2.ind_common(mode2_d<=tol) = true;
- if any(mode1_d<=tol) && any(mode2_d<=tol)
- mode6.ind_common(i) = true;
- end
-end
-
-%% find routes taken more than once
-mode1.ind_duplicate = filter_routes(mode1.gps_lat_cat,mode1.gps_lon_cat,mode1.gps_time_cat);
-mode2.ind_duplicate = filter_routes(mode2.gps_lat_cat,mode2.gps_lon_cat,mode2.gps_time_cat);
-mode6.ind_duplicate = filter_routes(mode6.gps_lat_cat,mode6.gps_lon_cat,mode6.gps_time_cat);
-
-% sum(parcours1 & ~mode2.ind_duplicate & ~mode2.ind_common)
-% sum(~mode1.ind_duplicate & ~mode1.ind_common)
-
-% add mode2.throughput( parcours1 & ~mode2.ind_duplicate &
-% ~mode2.ind_common) to the points in mode6.throughput
-
-%% set throughput to 0 when not connected resp. not synched
-mode1.throughput(~mode1.UE_connected | ~mode1.good) = 0;
-mode2.throughput(~mode2.UE_connected | ~mode2.good) = 0;
-mode6.throughput(~mode6.UE_connected | ~mode6.good) = 0;
-nn = fieldnames(mode2_ideal);
-for n = strmatch('rateps',nn).'
- mode2_ideal.(nn{n})(~mode2_ideal.UE_synched) = 0;
-end
-
-% %% select common routes of parcours 1 that have only been taken once
-% mode1.throughput(~mode1.ind_common | mode1.ind_duplicate) = nan;
-% mode2.throughput(~mode2.ind_common | mode2.ind_duplicate) = nan;
-% mode6.throughput(~mode6.ind_common | mode6.ind_duplicate) = nan;
-% nn = fieldnames(mode2_ideal);
-% for n = strmatch('rateps',nn).'
-% mode2_ideal.(nn{n})(~mode2.ind_common | mode2.ind_duplicate) = nan;
-% end
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-colors = {'b','g','r','c','m','y','k','b--','g--','r--','c--','m--','y--','k--'};
-legend_str = {};
-ni=1;
-for n = strmatch('rateps',nn).'
- hold on
- si = strfind(nn{n},'supportedQam');
- if si
- [f,x] = ecdf(scale_ideal_tp(mode2_ideal.(nn{n})(mode2.ind_common & ~mode2.ind_duplicate)));
- plot(x,f,colors{ni},'Linewidth',2);
- legend_tmp = nn{n};
- legend_tmp(si:si+10) = [];
- legend_str{ni} = legend_tmp;
- ni=ni+1;
- end
-end
-[f,x] = ecdf(mode1.throughput(mode1.ind_common & ~mode1.ind_duplicate));
-plot(x,f,colors{ni},'Linewidth',2)
-legend_str{ni} = sprintf('TX mode 1 (%d pts)',sum((mode1.ind_common & ~mode1.ind_duplicate)));
-ni=ni+1;
-[f,x] = ecdf(mode2.throughput(mode2.ind_common & ~mode2.ind_duplicate));
-plot(x,f,colors{ni},'Linewidth',2)
-legend_str{ni} = sprintf('Tx mode 2 (%d pts)',sum(mode2.ind_common & ~mode2.ind_duplicate));
-ni=ni+1;
-[f,x] = ecdf(mode6.throughput(mode6.ind_common & ~mode6.ind_duplicate));
-plot(x,f,colors{ni},'Linewidth',2)
-legend_str{ni} = sprintf('Tx mode 6 (%d pts)',sum(mode6.ind_common & ~mode6.ind_duplicate));
-ni=ni+1;
-
-title('DLSCH throughput CDF')
-xlabel('Throughput [bps]')
-ylabel('P(x=0).';
- [f,x] = ecdf(double(mode2_update.pbch_fer_cat(mode2_update.pbch_good)));
- n_points = sum(mode2_update.pbch_good);
-else
- mode2.pbch_fer_cat(~mode2.UE_synched) = 100;
- mode2.pbch_good = (mode2.pbch_fer_cat<=100 & mode2.pbch_fer_cat>=0).';
- [f,x] = ecdf(double(mode2.pbch_fer_cat(mode2.pbch_good & parcours1)));
- n_points = sum(mode2.pbch_good & parcours1);
-end
-plot(x,f,'r','Linewidth',2)
-hold on
-mode1.pbch_fer_cat(~mode1.UE_synched) = 100;
-mode1.pbch_good = (mode1.pbch_fer_cat<=100 & mode1.pbch_fer_cat>=0).';
-[f,x] = ecdf(double(mode1.pbch_fer_cat(mode1.pbch_good)));
-plot(x,f,'b','Linewidth',2)
-legend(sprintf('Mode 2/6 (%d pts)',n_points),...
- sprintf('Mode 1 (%d pts)',sum(mode1.pbch_good)),'Location','SouthEast');
-title('PBCH FER CDF')
-xlabel('PBCH FER [%]')
-ylabel('P(x0.5) & (dist<100)).';
-rx_rssi_dBm_cat = [mode1.rx_rssi_dBm_cat; mode2.rx_rssi_dBm_cat; mode6.rx_rssi_dBm_cat];
-good = (rx_rssi_dBm_cat<40 & rx_rssi_dBm_cat>-120);
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-semilogx(dist(dist_ok & good(:,1)), double(rx_rssi_dBm_cat(dist_ok & good(:,1),1)), 'rx')
-hold on
-max_dist = ceil(max(dist(dist_ok & good(:,1))));
-PL = double(rx_rssi_dBm_cat(dist_ok & good(:,1),1)) - 43;
-d = logspace(-1,log10(max_dist),100);
-res = [ones(length(PL),1) log10(dist(dist_ok & good(:,1)).')]\PL;
-semilogx(d,res(1)+res(2)*log10(d)+43,'b')
-semilogx(d,43-cost231_hata(d),'k')
-legend('measured',sprintf('fitted (PL_0=%4.2fdB, R=%4.2f)',res(1)+43,res(2)/10),'COST231-Hata','Location','Best');
-title('RX RSSI distance from BS [dBm]')
-xlabel('Distance from BS [Km]')
-ylabel('RX RSSI [dBm]')
-xlim([0.1 max_dist])
-ylim([-110 -30]);
-saveas(h_fig, fullfile(pathname,'results','RX_RSSI_dBm_dist_with_PL.eps'),'epsc2');
-
-
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_in_bins(dist(good(:,1)),double(rx_rssi_dBm_cat(good(:,1),1)),0:max_dist);
-xlabel('Distance [km]')
-ylabel('RX RSSI [dBm]')
-ylim([-110 -30]);
-saveas(h_fig,fullfile(pathname,'results','RX_RSSI_dBm_dist_bars.eps'),'epsc2');
-
-
-%% distance travelled comparison
-% to select regions use the gps_link_brush.m tool
-close all
-
-switch mm
- case 'cordes'
- plot_distance_travelled_cordes
- case 'penne'
- load penne_zoom1.mat
- file_id = 1;
- plot_distance_travelled
-
- load penne_zoom2.mat
- file_id = 2;
- plot_distance_travelled
-
- load penne_zoom3.mat
- file_id = 3;
- plot_distance_travelled
- case 'ambialet'
- load ambialet_zoom1.mat
- file_id = 1;
- plot_distance_travelled
-
- load ambialet_zoom2.mat
- file_id = 2;
- plot_distance_travelled
-
- load ambialet_zoom3.mat
- file_id = 3;
- plot_distance_travelled
-
- eval_village_ambialet
-
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled.m
deleted file mode 100644
index cd8f496ca1..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled.m
+++ /dev/null
@@ -1,94 +0,0 @@
-function plot_distance_travelled(mode1,index1,mode2,mode2_ideal,index2b,mode6,index6,pathname,file_id, mm)
-
-[dist1, dist_travelled1] = calc_dist(mode1.gps_lat_cat(index1), mode1.gps_lon_cat(index1), mm);
-[dist2b, dist_travelled2b] = calc_dist(mode2.gps_lat_cat(index2b), mode2.gps_lon_cat(index2b), mm);
-[dist6, dist_travelled6] = calc_dist(mode6.gps_lat_cat(index6), mode6.gps_lon_cat(index6), mm);
-
-%%
-h_fig = figure(3);
-hold off
-plot(dist_travelled1, mode1.rx_rssi_dBm_cat(index1,1))
-hold on
-plot(dist_travelled2b, mode2.rx_rssi_dBm_cat(index2b,1),'r')
-plot(dist_travelled6, mode6.rx_rssi_dBm_cat(index6,1),'g')
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-ylim([-110 -30]);
-saveas(h_fig,fullfile(pathname,'results',sprintf('all_modes_comparison%d_rssi_dBm.eps',file_id)),'epsc2');
-
-%%
-h_fig = figure(4);
-hold off
-plot_gps_coordinates(mm,mode1.gps_lon_cat(index1), ...
- mode1.gps_lat_cat(index1),...
- double(mode1.rx_rssi_dBm_cat(index1,1)),[-110 -30]);
-saveas(h_fig,fullfile(pathname,'results',sprintf('all_modes_comparison%d_rssi_dBm.jpg',file_id)),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(dist_travelled1, mode1.throughput(index1,1));
-hold on
-plot(dist_travelled2b, mode2.throughput(index2b,1),'r');
-plot(dist_travelled6, mode6.throughput(index6,1),'g')
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'results',sprintf('all_modes_comparison%d_troughput_distance_travelled.eps',file_id)),'epsc2');
-
-%% cqi
-h_fig = figure(6);
-temp = cat(3,mode6.phy_measurements_cat(:).precoded_cqi_dB);
-mode6.precoded_cqi_dB = squeeze(temp(1,1,:));
-temp = cat(1,mode6.phy_measurements_cat(:).wideband_cqi_tot);
-mode6.wideband_cqi_dB = temp(:,1);
-
-hold off
-plot(dist_travelled6, mode6.precoded_cqi_dB(index6,1),'r')
-hold on
-plot(dist_travelled6, mode6.wideband_cqi_dB(index6,1),'b')
-
-legend('Precoded CQI','Normal CQI')
-xlabel('Distance travelled [km]')
-ylabel('CQI')
-saveas(h_fig,fullfile(pathname,'results',sprintf('all_modes_comparison%d_cqi_distance_travelled.eps',file_id)),'epsc2');
-
-%% ideal curves
-h_fig = figure(7);
-hold off
-plot(dist_travelled2b, mode2_ideal.rateps_SISO_supportedQam_eNB1_2Rx_cat(index2b),'r');
-hold on
-plot(dist_travelled2b, mode2_ideal.rateps_alamouti_supportedQam_eNB1_2Rx_cat(index2b),'g');
-plot(dist_travelled2b, mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_maxq_cat(index2b),'b');
-plot(dist_travelled2b, mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq_cat(index2b),'k');
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6 opt','Mode6 feedback')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'results',sprintf('all_modes_comparison%d_throughput_ideal_distance_travelled.eps',file_id)),'epsc2');
-
-
-%% PBCH
-h_fig = figure(8);
-hold off
-mode1.pbch_good = (mode1.pbch_fer_cat<=100 & mode1.pbch_fer_cat>=0).';
-mode2.pbch_good = (mode2.pbch_fer_cat<=100 & mode2.pbch_fer_cat>=0).';
-mode1.pbch_fer_cat(~mode1.UE_synched | ~mode1.pbch_good) = nan;
-mode2.pbch_fer_cat(~mode2.UE_synched | ~mode2.pbch_good) = nan;
-plot(dist_travelled1, mode1.pbch_fer_cat(index1,1));
-hold on
-plot(dist_travelled2b, mode2.pbch_fer_cat(index2b,1),'r');
-%plot(dist_travelled6, mode6.throughput(index6,1),'g')
-
-
-legend('Mode1','Mode2/6')
-xlabel('Distance travelled [km]')
-ylabel('PBCH FER [bps]')
-saveas(h_fig,fullfile(pathname,'results',sprintf('all_modes_comparison%d_pbch_fer_distance_travelled.eps',file_id)),'epsc2');
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_cordes.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_cordes.m
deleted file mode 100644
index db61d99b3f..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_cordes.m
+++ /dev/null
@@ -1,300 +0,0 @@
-clear all
-close all
-
-pathname='/emos/EMOS/results/';
-
-coverage = load('/emos/EMOS/Coverage/results/results_UE.mat');
-mode1 = load('/emos/EMOS/Mode1/results/results_UE.mat');
-mode2 = load('/emos/EMOS/Mode2/results_wo_coverage/results_UE.mat');
-mode2_update = load('/emos/EMOS/Mode2_update/results/results_UE.mat');
-mode2_ideal = load('/emos/EMOS/Mode2/results_wo_coverage/results_cat_UE.mat');
-mode6 = load('/emos/EMOS/Mode6/results/results_UE.mat');
-
-mm='cordes';
-
-
-%%
-[coverage.dist, coverage.dist_travelled] = calc_dist(coverage.gps_lat_cat,coverage.gps_lon_cat);
-[mode1.dist, mode1.dist_travelled] = calc_dist(mode1.gps_lat_cat,mode1.gps_lon_cat);
-[mode2.dist, mode2.dist_travelled] = calc_dist(mode2.gps_lat_cat,mode2.gps_lon_cat);
-[mode2_update.dist, mode2_update.dist_travelled] = calc_dist(mode2_update.gps_lat_cat,mode2_update.gps_lon_cat);
-[mode6.dist, mode6.dist_travelled] = calc_dist(mode6.gps_lat_cat,mode6.gps_lon_cat);
-
-%%
-mode1.UE_connected = (mode1.UE_mode_cat==3);
-mode1.UE_synched = (mode1.UE_mode_cat>0);
-mode1.good = (mode1.dlsch_fer_cat<=100 & mode1.dlsch_fer_cat>=0).';
-mode1.throughput = double(100./(100+mode1.dlsch_fer_cat).*mode1.tbs_cat.*6.*100);
-%mode1.throughput = (100-mode1.dlsch_fer_cat).*mode1.tbs_cat*6;
-mode1.throughput(~mode1.UE_connected) = 0;
-
-mode2.UE_connected = (mode2.UE_mode_cat==3);
-mode2.UE_synched = (mode2.UE_mode_cat>0);
-mode2.good = (mode2.dlsch_fer_cat<=100 & mode2.dlsch_fer_cat>=0).';
-mode2.throughput = double(100./(100+mode2.dlsch_fer_cat).*mode2.tbs_cat.*6.*100);
-%mode2.throughput = (100-mode2.dlsch_fer_cat).*mode2.tbs_cat*6;
-mode2.throughput(~mode2.UE_connected) = 0;
-
-mode2_update.UE_connected = (mode2_update.UE_mode_cat==3);
-mode2_update.UE_synched = (mode2_update.UE_mode_cat>0);
-mode2_update.good = (mode2_update.dlsch_fer_cat<=100 & mode2_update.dlsch_fer_cat>=0).';
-mode2_update.throughput = double(100./(100+mode2_update.dlsch_fer_cat).*mode2_update.tbs_cat.*6.*100);
-%mode2_update.throughput = (100-mode2_update.dlsch_fer_cat).*mode2_update.tbs_cat*6;
-mode2_update.throughput(~mode2_update.UE_connected) = 0;
-
-mode6.UE_connected = (mode6.UE_mode_cat==3);
-mode6.UE_synched = (mode6.UE_mode_cat>0);
-mode6.good = (mode6.dlsch_fer_cat<=100 & mode6.dlsch_fer_cat>=0).';
-mode6.throughput = double(100./(100+mode6.dlsch_fer_cat).*mode6.tbs_cat.*6.*100);
-%mode6.throughput = (100-mode6.dlsch_fer_cat).*mode6.tbs_cat*6;
-mode6.throughput(~mode6.UE_connected) = 0;
-
-
-%% Zoom 1
-start_mode1 = 746;
-length_mode1 = 300;
-%start_mode2 = 330;
-start_mode2 = 22873+330;
-length_mode2 = 380;
-start_mode6 = 16599;
-end_mode6 = 16276;
-%length_mode6 =
-
-%%
-h_fig = figure(3);
-hold off
-plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1), ...
- mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1))
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2), ...
- mode2.rx_rssi_dBm_cat(start_mode2:start_mode2+length_mode2,1),'r')
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.rx_rssi_dBm_cat(end_mode6:start_mode6,1),'g')
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-ylim([-110, -30]);
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.eps'),'epsc2');
-
-
-%%
-h_fig = figure(4);
-hold off
-plot_gps_coordinates(mm,mode1.gps_lon_cat(start_mode1:start_mode1+length_mode1), ...
- mode1.gps_lat_cat(start_mode1:start_mode1+length_mode1),...
- double(mode1.rx_rssi_dBm_cat(start_mode1:start_mode1+length_mode1,1)),[-110,-30]);
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_rssi_dBm.jpg'),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(mode1.dist_travelled(start_mode1:start_mode1+length_mode1)-mode1.dist_travelled(start_mode1),...
- mode1.throughput(start_mode1:start_mode1+length_mode1));
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- mode2.throughput(start_mode2:start_mode2+length_mode2),'r');
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.throughput(end_mode6:start_mode6,1),'g')
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_troughput_distance_travelled.eps'),'epsc2');
-
-%% cqi
-h_fig = figure(6);
-temp = cat(3,mode6.phy_measurements_cat(:).precoded_cqi_dB);
-mode6.precoded_cqi_dB = squeeze(temp(1,1,:));
-temp = cat(1,mode6.phy_measurements_cat(:).wideband_cqi_tot);
-mode6.wideband_cqi_dB = temp(:,1);
-
-hold off
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.precoded_cqi_dB(end_mode6:start_mode6,1),'r')
-hold on
-plot(-mode6.dist_travelled(end_mode6)+mode6.dist_travelled(end_mode6:start_mode6), ...
- mode6.wideband_cqi_dB(end_mode6:start_mode6,1),'b')
-
-legend('Precoded CQI','Normal CQI')
-xlabel('Distance travelled [km]')
-ylabel('CQI')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_cqi_distance_travelled.eps'),'epsc2');
-
-%% ideal curves
-h_fig = figure(7);
-hold off
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- scale_ideal_tp(mode2_ideal.rateps_SISO_supportedQam_eNB1_2Rx_cat(start_mode2:start_mode2+length_mode2)),'r');
-hold on
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- scale_ideal_tp(mode2_ideal.rateps_alamouti_supportedQam_eNB1_2Rx_cat(start_mode2:start_mode2+length_mode2)),'g');
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- scale_ideal_tp(mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_maxq_cat(start_mode2:start_mode2+length_mode2)),'b');
-plot(mode2.dist_travelled(start_mode2:start_mode2+length_mode2)-mode2.dist_travelled(start_mode2),...
- scale_ideal_tp(mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq_cat(start_mode2:start_mode2+length_mode2)),'k');
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6 opt','Mode6 feedback')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison_throughput_ideal_distance_travelled.eps'),'epsc2');
-
-
-%% Zoom2
-load cordes_zoom2.mat
-select2b = false(size(parcours1));
-select2b(parcours1)=select2;
-select1 = find(select1);
-select2 = find(select2);
-select6 = find(select6);
-select2b = find(select2b);
-
-%%
-h_fig = figure(3);
-hold off
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)), ...
- mode1.rx_rssi_dBm_cat(select1,1))
-hold on
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)), ...
- mode2.rx_rssi_dBm_cat(select2b,1),'r')
-plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
- mode6.rx_rssi_dBm_cat(select6,1),'g')
-ylim([-110 -30]);
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison2_rssi_dBm.eps'),'epsc2');
-
-
-%%
-h_fig = figure(4);
-hold off
-plot_gps_coordinates(mm,mode1.gps_lon_cat(select1), ...
- mode1.gps_lat_cat(select1),...
- double(mode1.rx_rssi_dBm_cat(select1,1)),[-110,-30]);
-saveas(h_fig,fullfile(pathname,'all_modes_comparison2_rssi_dBm.jpg'),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)),...
- mode1.throughput(select1,1));
-hold on
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)),...
- mode2.throughput(select2b,1),'r');
-plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
- mode6.throughput(select6,1),'g')
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison2_troughput_distance_travelled.eps'),'epsc2');
-
-%% cqi
-h_fig = figure(6);
-temp = cat(3,mode6.phy_measurements_cat(:).precoded_cqi_dB);
-mode6.precoded_cqi_dB = squeeze(temp(1,1,:));
-temp = cat(1,mode6.phy_measurements_cat(:).wideband_cqi_tot);
-mode6.wideband_cqi_dB = temp(:,1);
-
-hold off
-plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
- mode6.precoded_cqi_dB(select6,1),'r')
-hold on
-plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
- mode6.wideband_cqi_dB(select6,1),'b')
-
-legend('Precoded CQI','Normal CQI')
-xlabel('Distance travelled [km]')
-ylabel('CQI')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison2_cqi_distance_travelled.eps'),'epsc2');
-
-%% ideal curves
-h_fig = figure(7);
-hold off
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)),...
- scale_ideal_tp(mode2_ideal.rateps_SISO_supportedQam_eNB1_2Rx_cat(select2b)),'r');
-hold on
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)),...
- scale_ideal_tp(mode2_ideal.rateps_alamouti_supportedQam_eNB1_2Rx_cat(select2b)),'g');
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)),...
- scale_ideal_tp(mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_maxq_cat(select2b)),'b');
-plot(mode2.dist_travelled(select2b)-mode2.dist_travelled(select2b(1)),...
- scale_ideal_tp(mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq_cat(select2b)),'k');
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6 opt','Mode6 feedback')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison2_throughput_ideal_distance_travelled.eps'),'epsc2');
-
-
-%% Zoom3
-load cordes_zoom3.mat
-select2b = false(size(parcours1));
-select2b(parcours1)=select2;
-select1 = find(select1);
-select2 = find(select2);
-select2_update = find(select2_update);
-select6 = find(select6);
-select2b = find(select2b);
-
-%%
-h_fig = figure(3);
-hold off
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)), ...
- mode1.rx_rssi_dBm_cat(select1,1))
-hold on
-plot(mode2_update.dist_travelled(select2_update)-mode2_update.dist_travelled(select2_update(1)), ...
- mode2_update.rx_rssi_dBm_cat(select2_update,1),'r')
-%plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
-% mode6.rx_rssi_dBm_cat(select6,1),'g')
-ylim([-110 -30]);
-legend('Mode1','Mode2')
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison3_rssi_dBm.eps'),'epsc2');
-
-
-%%
-h_fig = figure(4);
-hold off
-plot_gps_coordinates(mm,mode1.gps_lon_cat(select1), ...
- mode1.gps_lat_cat(select1),...
- double(mode1.rx_rssi_dBm_cat(select1,1)),[-110 -30]);
-saveas(h_fig,fullfile(pathname,'all_modes_comparison3_rssi_dBm.jpg'),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)),...
- mode1.throughput(select1,1));
-hold on
-plot(mode2_update.dist_travelled(select2_update)-mode2_update.dist_travelled(select2_update(1)),...
- mode2_update.throughput(select2_update,1),'r');
-%plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
-% mode6.throughput(select6,1),'g')
-ylim([0 8.64e6]);
-legend('Mode1','Mode2')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison3_troughput_distance_travelled.eps'),'epsc2');
-
-%%
-h_fig = figure(6);
-hold off
-mode1.pbch_good = (mode1.pbch_fer_cat<=100 & mode1.pbch_fer_cat>=0).';
-mode2_update.pbch_good = (mode2_update.pbch_fer_cat<=100 & mode2_update.pbch_fer_cat>=0).';
-mode1.pbch_fer_cat(~mode1.UE_synched | ~mode1.pbch_good) = nan;
-mode2_update.pbch_fer_cat(~mode2_update.UE_synched | ~mode2_update.pbch_good) = nan;
-plot(mode1.dist_travelled(select1)-mode1.dist_travelled(select1(1)),...
- mode1.pbch_fer_cat(select1,1));
-hold on
-plot(mode2_update.dist_travelled(select2_update)-mode2_update.dist_travelled(select2_update(1)),...
- mode2_update.pbch_fer_cat(select2_update,1),'r');
-%plot(mode6.dist_travelled(select6)-mode6.dist_travelled(select6(1)), ...
-% mode6.throughput(select6,1),'g')
-legend('Mode1','Mode2')
-xlabel('Distance travelled [km]')
-ylabel('PBCH FER [bps]')
-saveas(h_fig,fullfile(pathname,'all_modes_comparison3_pbch_fer_distance_travelled.eps'),'epsc2');
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_ideal.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_ideal.m
deleted file mode 100644
index c4900194f5..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_distance_travelled_ideal.m
+++ /dev/null
@@ -1,90 +0,0 @@
-fig_path = 'dist_travelled';
-file_id = 1;
-
-%%
-[mode2_ideal.dist, mode2_ideal.dist_travelled] = calc_dist(lat,lon,mm);
-
-index = find(select==1);
-
-%%
-h_fig = figure(3);
-hold off
-plot(mode2_ideal.dist_travelled(index)-mode2_ideal.dist_travelled(index(1)), ...
- mode2.rx_rssi_dBm_cat(index,1))
-xlabel('Distance travelled [km]')
-ylabel('RX RSSI [dBm]')
-ylim([-110 -30]);
-saveas(h_fig,fullfile(pathname,fig_path,sprintf('all_modes_comparison%d_rssi_dBm.eps',file_id)),'epsc2');
-
-
-%%
-h_fig = figure(4);
-hold off
-plot_gps_coordinates(mm,lon(index), lat(index),...
- double(mode2.rx_rssi_dBm_cat(index,1)),[-110 -30]);
-saveas(h_fig,fullfile(pathname,fig_path,sprintf('all_modes_comparison%d_rssi_dBm.jpg',file_id)),'jpg');
-
-%%
-h_fig = figure(5);
-hold off
-plot(mode2_ideal.dist_travelled(index)-mode2_ideal.dist_travelled(index(1)),...
- mode2_ideal.rateps_SISO_supportedQam_eNB1_2Rx_cat(index));
-hold on
-plot(mode2_ideal.dist_travelled(index)-mode2_ideal.dist_travelled(index(1)),...
- mode2_ideal.rateps_alamouti_supportedQam_eNB1_2Rx_cat(index),'r');
-plot(mode2_ideal.dist_travelled(index)-mode2_ideal.dist_travelled(index(1)), ...
- mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq_cat(index),'g')
-ylim([0 8.64e6]);
-legend('Mode1','Mode2','Mode6')
-xlabel('Distance travelled [km]')
-ylabel('Throughput [bps]')
-saveas(h_fig,fullfile(pathname,fig_path,sprintf('all_modes_comparison%d_troughput_distance_travelled.eps',file_id)),'epsc2');
-
-%% cqi
-temp = cat(1,mode2.phy_measurements_cat(:).wideband_cqi_tot);
-mode2.wideband_cqi_dB = temp(:,1);
-
-h_fig = figure(6);
-hold off
-plot(mode2_ideal.dist_travelled(index)-mode2_ideal.dist_travelled(index(1)), ...
- mode2.wideband_cqi_dB(index,1),'b')
-xlabel('Distance travelled [km]')
-ylabel('CQI')
-saveas(h_fig,fullfile(pathname,fig_path,sprintf('all_modes_comparison%d_cqi_distance_travelled.eps',file_id)),'epsc2');
-
-% %% ideal curves
-% h_fig = figure(7);
-% hold off
-% plot(mode2.dist_travelled(index2)-mode2.dist_travelled(index2(1)),...
-% mode2_ideal.rateps_SISO_supportedQam_eNB1_2Rx_cat(index2),'r');
-% hold on
-% plot(mode2.dist_travelled(index2)-mode2.dist_travelled(index2(1)),...
-% mode2_ideal.rateps_alamouti_supportedQam_eNB1_2Rx_cat(index2),'g');
-% plot(mode2.dist_travelled(index2)-mode2.dist_travelled(index2(1)),...
-% mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_maxq_cat(index2),'b');
-% plot(mode2.dist_travelled(index2)-mode2.dist_travelled(index2(1)),...
-% mode2_ideal.rateps_beamforming_supportedQam_eNB1_2Rx_feedbackq_cat(index2),'k');
-% ylim([0 8.64e6]);
-% legend('Mode1','Mode2','Mode6 opt','Mode6 feedback')
-% xlabel('Distance travelled [km]')
-% ylabel('Throughput [bps]')
-% saveas(h_fig,fullfile(pathname,fig_path,sprintf('all_modes_comparison%d_throughput_ideal_distance_travelled.eps',file_id)),'epsc2');
-
-
-%% PBCH
-h_fig = figure(8);
-hold off
-mode2.UE_synched = (mode2.UE_mode_cat>0);
-mode2.UE_connected = (mode2.UE_mode_cat==3);
-mode2.pbch_good = (mode2.pbch_fer_cat<=100 & mode2.pbch_fer_cat>=0).';
-mode2.pbch_fer_cat(~mode2.UE_synched | ~mode2.pbch_good) = nan;
-plot(mode2_ideal.dist_travelled(index)-mode2_ideal.dist_travelled(index(1)),...
- mode2.pbch_fer_cat(index,1));
-xlabel('Distance travelled [km]')
-ylabel('PBCH FER [bps]')
-saveas(h_fig,fullfile(pathname,fig_path,sprintf('all_modes_comparison%d_pbch_fer_distance_travelled.eps',file_id)),'epsc2');
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_ambialet.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_ambialet.m
deleted file mode 100644
index fe43382d46..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_ambialet.m
+++ /dev/null
@@ -1,40 +0,0 @@
-% file: plot_figures_top.m
-% this file reads the data post processed measurement data and procudes all
-% the figures requested by Mr. Scot. The comparison between different modes
-% is done with the script plot_comparison_all_modes.m and
-% distance_travelled_comparison.m
-clear all
-close all
-
-%decimation = 1;
-%NFrames_max = 100*60*10;
-mm='ambialet';
-
-h_fig = 0;
-
-%% results from interference measurements
-%pathname = '/emos/AMBIALET/Interference/results/';
-%plot_results_UE_quick
-%plot_results_eNb_quick
-
-%% results from raw channel estimates (ideal throughput)
-pathname = '/emos/AMBIALET/Mode2/results/';
-%Concatenate_results_UE_quick
-plot_results_cat
-
-%% results from quick post processing (modem throughput)
-pathname = '/emos/AMBIALET/Mode1/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/emos/AMBIALET/Mode2/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/emos/AMBIALET/Mode6/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_cordes.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_cordes.m
deleted file mode 100644
index bf3cd591be..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_cordes.m
+++ /dev/null
@@ -1,42 +0,0 @@
-% file: plot_figures_top.m
-% this file reads the data post processed measurement data and procudes all
-% the figures requested by Mr. Scot. The comparison between different modes
-% is done with the script distance_travelled_comparison_cordes.m followed
-% by plot_comparison_all_modes_cordes.m
-clear all
-close all
-
-%decimation = 1;
-%NFrames_max = 100*60*10;
-mm='cordes';
-
-%% results interference measurements
-%pathname = '/emos/EMOS/Interference/results/';
-%plot_results_I0_quick
-
-%% results from raw channel estimates (ideal throughput)
-pathname = '/emos/EMOS/Mode2/results_with_coverage/';
-%Concatenate_results_UE_quick
-plot_results_cat
-
-%% results from quick post processing (modem throughput)
-pathname = '/emos/EMOS/Mode1/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/emos/EMOS/Mode2/results_with_coverage';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/emos/EMOS/Mode2_update/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/emos/EMOS/Mode6/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_penne.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_penne.m
deleted file mode 100644
index 516d0cc684..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_figures_penne.m
+++ /dev/null
@@ -1,45 +0,0 @@
-% file: plot_figures_top.m
-% this file reads the data post processed measurement data and procudes all
-% the figures requested by Mr. Scot. The comparison between different modes
-% is done with the script plot_comparison_all_modes.m and
-% distance_travelled_comparison.m
-clear all
-close all
-
-%decimation = 1;
-%NFrames_max = 100*60*10;
-mm='penne';
-
-h_fig = 0;
-
-%% results from quick post processing (modem throughput)
-%pathname = '/media/disk/PENNE/Interference/results';
-%plot_results_UE_quick
-%plot_results_eNb_quick
-
-%% results from raw channel estimates (ideal throughput)
-pathname = '/media/disk/PENNE/Mode2/results/';
-%Concatenate_results_UE_quick
-plot_results_cat
-
-%% results from quick post processing (modem throughput)
-pathname = '/media/disk/PENNE/Mode1/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/media/disk/PENNE/Mode2/results';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/media/disk/PENNE/Mode2_OFDMA/results/';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-%%
-pathname = '/media/disk/PENNE/Mode6/20100702_VTP_Mode6/';
-plot_results_UE_quick
-plot_results_eNb_quick
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_in_bins.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_in_bins.m
deleted file mode 100644
index 0bc48cb9a3..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_in_bins.m
+++ /dev/null
@@ -1,52 +0,0 @@
-function [out,n,n2] = plot_in_bins(x,y,edges,service)
-% [out] = plot_in_bins(data,bins)
-% This function puts the data y = y(x) in bins of x. For every bin it
-% calculates the average and the (95/85/50/5%) percentiles. The output is a
-% matrix with 4 columns corresponding to the computed statistics and
-% length(edges) row. See help histc for treatment of edges.
-
-clf
-
-if (length(x) ~= length(y))
- error('x and y must be the same size!');
-end
-x=x(:);
-y=y(:);
-
-[n, bin] = histc(x,edges);
-n1 = histc(x(y>0),edges);
-
-out = zeros(length(edges),5);
-n2 = zeros(size(n));
-
-for k=1:length(edges)
- n2(k) = sum(bin==k & ~isnan(y));
- out(k,1) = mean(y(bin==k & ~isnan(y)));
- % we would like the percentiles where (95/85/50/5%) of the values are
- % above. Matlab returns the percentiles of the values below. So we
- % calculate
- out(k,2:5) = prctile(y(bin==k & ~isnan(y)),[5 15 50 95]);
-end
-
-midpoints = (edges(1:end-1) + edges(2:end))/2;
-plot(midpoints,out(1:end-1,:));
-xlim([edges(1),edges(end)])
-yl = ylim;
-for i=1:length(midpoints)
- %text(edges(i),max(out(i,:)),sprintf('%d (%d %%)',n2(i),round(n2(i)/n(i))), 'HorizontalAlignment','left','VerticalAlignment','middle','Rotation',90);
- text(midpoints(i),min(0,yl(1)),sprintf(' %d',n2(i)), 'HorizontalAlignment','left','VerticalAlignment','middle','Rotation',90);
-end
-legend('Mean','95% prctile above','85% prctile above','50% prctile above','5% prctile above','Location','Best');
-
-if nargin == 4
- ax1 = gca;
- ax2 = axes('Position',get(ax1,'Position'));
- plot(midpoints,n1(1:end-1)./n2(1:end-1)*100,'Color','k','Linewidth',2,'Parent',ax2);
- set(ax2,'YAxisLocation','right');
- set(ax2,'Color','none');
- set(ax2,'XColor','k');
- set(ax2,'YColor','k');
- set(ax2,'ylim',[0, 100]);
- set(get(ax2,'ylabel'),'String','Service (%)');
- set(gcf,'CurrentAxes',ax1)
-end
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_I0_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_results_I0_quick.m
deleted file mode 100755
index efa07a9e7c..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_I0_quick.m
+++ /dev/null
@@ -1,23 +0,0 @@
-%%
-load(fullfile(pathname,'results_eNB.mat'));
-h_fig = figure(2);
-hold off
-plot(frame_tx_cat,rx_N0_dBm_cat,'x')
-title('RX I0 [dBm]')
-xlabel('Frame number')
-ylabel('RX I0 [dBm]')
-legend('Sector 0','Sector 1','Sector 2');
-saveas(h_fig,fullfile(pathname,'RX_I0_dBm.eps'),'epsc2')
-
-%%
-load(fullfile(pathname,'results_UE.mat'));
-h_fig = figure(3);
-hold off
-plot_gps_coordinates(mm,gps_lon_cat, gps_lat_cat,rx_N0_dBm_cat);
-title('RX I0 [dBm]')
-xlabel('Frame number')
-ylabel('RX I0 [dBm]')
-saveas(h_fig,fullfile(pathname,'RX_RSSI_dBm_gps.jpg'),'jpg')
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick.m
deleted file mode 100755
index 82c10abb46..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick.m
+++ /dev/null
@@ -1,16 +0,0 @@
-% file: plot_results_UE_quick.m
-% author: florian.kaltenberger@eurecom.fr
-% purpose: plots the results from the UE after post_processing_ue_quick
-% requires pathname to be set to the right directory
-
-load(fullfile(pathname,'results_UE.mat'));
-if exist(fullfile(pathname,'nomadic','results_UE.mat'),'dir')
- nomadic = load(fullfile(pathname,'nomadic','results_UE.mat'));
- nomadic_flag = true;
-else
- nomadic_flag = false;
-end
-
-plot_results_UE_quick_common
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick_common.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick_common.m
deleted file mode 100644
index 888683340f..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_UE_quick_common.m
+++ /dev/null
@@ -1,331 +0,0 @@
-h_fig = 0;
-
-%%
-UE_synched = (UE_mode_cat>0);
-UE_connected = (UE_mode_cat==3);
-timebase = 1:length(UE_mode_cat);
-timebase2 = gps_time_cat-gps_time_cat(find(~isnan(gps_time_cat),1));
-timebase_cuts = find(diff(timebase2)>60*60*8);
-if (nomadic_flag)
- nomadic.UE_synched = (nomadic.UE_mode_cat>0);
- nomadic.UE_connected = (nomadic.UE_mode_cat==3);
- %nomadic.timebase = nomadic.gps_time_cat-gps_time_cat(1);
- nomadic.timebase = 1:length(nomadic.UE_mode_cat);
-end
-
-[dist, dist_traveled] = calc_dist(gps_lat_cat,gps_lon_cat,mm);
-
-%% Frame TX number over time
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-%frame_tx_cat(frame_tx_cat>100*60*60*8) = NaN;
-plot(timebase,frame_tx_cat,'x')
-if (nomadic_flag)
- hold on
- plot(nomadic.timebase,nomadic.frame_tx_cat,'rx')
- legend('vehicular','nomadic')
-end
-title('Time vs TX Frame')
-xlabel('Time [sec]')
-ylabel('TX Frame')
-saveas(h_fig,fullfile(pathname,'frame_tx.eps'),'epsc2')
-
-%% RX RSSI over time and GPS coordinates
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-good = (rx_rssi_dBm_cat<40 & rx_rssi_dBm_cat>-120);
-% n0_power_tot_dBm = [phy_measurements_cat(:).n0_power_tot_dBm];
-% if isa(n0_power_tot_dBm,'uint16') % it was read with the wrong datatype
-% n0_power_tot_dBm = double(n0_power_tot_dBm)-pow2(16);
-% else
-% n0_power_tot_dBm = double(n0_power_tot_dBm);
-% end
-
-plot(timebase(good(:,1)),rx_rssi_dBm_cat(good(:,1),1),'x')
-hold on
-%plot(timebase(good(:,1)),n0_power_tot_dBm(good(:,1)),'g.')
-if (nomadic_flag)
- hold on
- nomadic.good = (nomadic.rx_rssi_dBm_cat<40 & nomadic.rx_rssi_dBm_cat>-120);
- plot(nomadic.timebase(nomadic.good(:,1)),nomadic.rx_rssi_dBm_cat(nomadic.good(:,1),1),'rx')
- legend('vehicular','nomadic')
-end
-title('RX RSSI [dBm]')
-xlabel('Time [sec]')
-ylabel('RX RSSI [dBm]')
-if ~isempty(strfind(lower(pathname),'interference'))
- ylim([-110 -90]);
-else
- ylim([-110 -30]);
-end
-if ~isempty(timebase_cuts)
- plot(timebase_cuts,-110,'k^','Markersize',10,'Linewidth',2)
-end
-saveas(h_fig,fullfile(pathname,'RX_RSSI_dBm.eps'),'epsc2')
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,gps_lon_cat(good(:,1)), gps_lat_cat(good(:,1)),...
- double(rx_rssi_dBm_cat(good(:,1),1)),[-110 -30]);
-if (nomadic_flag)
- hold on
- plot_gps_coordinates([],nomadic.gps_lon_cat(nomadic.good(:,1)),nomadic.gps_lat_cat(nomadic.good(:,1)), ...
- nomadic.rx_rssi_dBm_cat(nomadic.good(:,1),1),'nomadic');
-end
-title('RX RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'RX_RSSI_dBm_gps.jpg'),'jpg')
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_in_bins(dist(good(:,1)),double(rx_rssi_dBm_cat(good(:,1),1)),0:ceil(max(dist)));
-xlabel('Distance [km]')
-ylabel('RX RSSI [dBm]')
-ylim([-110 -30]);
-saveas(h_fig,fullfile(pathname,'RX_RSSI_dBm_dist_bars.eps'),'epsc2');
-
-%% fit path loss model
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-dist_ok = (dist>0).';
-semilogx(dist(dist_ok & good(:,1)), double(rx_rssi_dBm_cat(dist_ok & good(:,1),1)), 'rx')
-hold on
-max_dist = ceil(max(dist(dist_ok & good(:,1))));
-PL = double(rx_rssi_dBm_cat(dist_ok & good(:,1),1)) - 43;
-d = logspace(-1,log10(max_dist),100);
-res = [ones(length(PL),1) log10(dist(dist_ok & good(:,1)).')]\PL;
-semilogx(d,res(1)+res(2)*log10(d)+43,'b')
-semilogx(d,43-cost231_hata(d),'k')
-legend('measured',sprintf('fitted (PL_0=%4.2fdB, R=%4.2f)',res(1)+43,res(2)/10),'COST231-Hata');
-title('RX RSSI distance from BS [dBm]')
-xlabel('Distance from BS [Km]')
-ylabel('RX RSSI [dBm]')
-xlim([0.1 max_dist])
-ylim([-110 -30]);
-saveas(h_fig, fullfile(pathname,'RX_RSSI_dBm_dist_with_PL.eps'),'epsc2');
-
-
-%% PBCH FER over time and GPS coordinates
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-good = (pbch_fer_cat<=100 & pbch_fer_cat>=0).';
-plot(timebase(UE_synched & good),pbch_fer_cat(UE_synched & good),'x');
-hold on
-if ~isempty(timebase_cuts)
- ylim1 = get(gca,'Ylim');
- plot(timebase_cuts,ylim1(1),'k^','Markersize',10,'Linewidth',2);
-end
-if (nomadic_flag)
- hold on
- nomadic.good = (nomadic.pbch_fer_cat<=100 & nomadic.pbch_fer_cat>=0).';
- plot(nomadic.timebase(nomadic.good & nomadic.UE_synched),nomadic.pbch_fer_cat(nomadic.good & nomadic.UE_synched),'rx')
- legend('vehicular','nomadic')
-end
-title('PBCH FER')
-xlabel('Time [sec]')
-ylabel('PBCH FER')
-saveas(h_fig,fullfile(pathname,'PBCH_FER.eps'),'epsc2')
-
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,gps_lon_cat(UE_synched & good), gps_lat_cat(UE_synched & good),...
- double(pbch_fer_cat(UE_synched & good)),[0 100]);
-title('PBCH FER')
-saveas(h_fig,fullfile(pathname,'PBCH_fer_gps.jpg'),'jpg')
-
-%% UE mode over GPS coordinates
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,gps_lon_cat, gps_lat_cat,double(UE_mode_cat),[0 3]);
-title('UE mode')
-saveas(h_fig,fullfile(pathname,'UE_mode_gps.jpg'),'jpg')
-
-%% DLSCH throughput over time
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-%dlsch_throughput = double((100-dlsch_fer_cat).*tbs_cat.*6);
-dlsch_throughput = double(100./(100+dlsch_fer_cat).*tbs_cat.*6.*100); %this assumes that DLSCH is received correctly in the second round
-good = (dlsch_fer_cat<=100 & dlsch_fer_cat>=0).';
-dlsch_throughput(~UE_connected | ~good) = 0;
-plot(timebase,dlsch_throughput,'x');
-hold on
-if (nomadic_flag)
- %nomadic.dlsch_throughput = (100-nomadic.dlsch_fer_cat).* nomadic.tbs_cat.*6;
- nomadic.dlsch_throughput = double(100./(100+nomadic.dlsch_fer_cat).* nomadic.tbs_cat.*6.*100);
- nomadic.good = (nomadic.dlsch_fer_cat<=100 & nomadic.dlsch_fer_cat>=0).';
- nomadic.dlsch_throughput(~nomadic.UE_connected | ~nomadic.good) = 0;
- plot(nomadic.timebase,nomadic.dlsch_throughput,'rx')
- legend('vehicular','nomadic')
-end
-xlabel('Time [sec]')
-ylabel('Throughput L1 [bps]')
-ylim([0 8.64e6]);
-title('DLSCH Throughput')
-if ~isempty(timebase_cuts)
- plot(timebase_cuts,0,'k^','Markersize',10,'Linewidth',2)
-end
-saveas(h_fig,fullfile(pathname,'DLSCH_throughput.eps'),'epsc2')
-
-%% DLSCH throughput over GPS coordinates
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,gps_lon_cat, gps_lat_cat,dlsch_throughput,[0 8.64e6]);
-title('DLSCH Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'DLSCH_troughput_gps.jpg'),'jpg')
-
-
-% %% MCS over GPS coordinates
-% h_fig = h_fig+1;
-% figure(h_fig);
-% hold off
-% plot_gps_coordinates(mm,gps_lon_cat(UE_connected & good), gps_lat_cat(UE_connected & good),...
-% double(mcs_cat(UE_connected & good)));
-% title('DLSCH MCS')
-% saveas(h_fig,fullfile(pathname,'DLSCH_MCS_gps.jpg'),'jpg')
-
-%% Coded throughput CDF comparison
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-[f,x] = ecdf(dlsch_throughput);
-plot(x,f,'b','Linewidth',2)
-xlim([0 8.64e6]);
-title('DLSCH Throughput CDF')
-xlabel('Throughput [bps]')
-ylabel('P(xframestamp_max) || (framestamp0,1);
-
-% get the aligned gps data, removing duplicates
-gps_lat_aligned = zeros(1,NFrames);
-gps_lon_aligned = zeros(1,NFrames);
-gps_lat_aligned(1,UE_aligned) = estimates_UE.gps_lat_cat(~UE_duplicates);
-gps_lon_aligned(1,UE_aligned) = estimates_UE.gps_lon_cat(~UE_duplicates);
-
-%%
-h_fig = figure(99);
-hold off
-plot(estimates_eNB.frame_tx_cat)
-hold on
-plot(estimates_UE.frame_tx_cat(~UE_duplicates),'r')
-legend('eNB','UE')
-
-% frame_aligned = zeros(NFrames,2);
-% frame_aligned(eNB_aligned,1) = estimates_eNB.frame_tx_cat;
-% frame_aligned(UE_aligned,2) = estimates_UE.frame_tx_cat(~UE_duplicates);
-h_fig = figure(98);
-hold off
-plot(estimates_eNB.frame_tx_cat,eNB_connected,'x');
-hold on
-plot(estimates_UE.frame_tx_cat(~UE_duplicates),UE_connected(~UE_duplicates),'rx')
-legend('eNb','UE')
-
-%%
-UL_rssi_cat = zeros(length(estimates_eNB.eNb_UE_stats_cat),2);
-for i=1:length(estimates_eNB.eNb_UE_stats_cat)
- UL_rssi_cat(i,:) = double(estimates_eNB.eNb_UE_stats_cat(i).UL_rssi);
-end
-UL_rssi_aligned = zeros(NFrames,2);
-UL_rssi_aligned(eNB_aligned,:) = UL_rssi_cat;
-
-h_fig = figure(15);
-hold off
-plot_gps_coordinates(mm,gps_lon_aligned(all_connected), ...
- gps_lat_aligned(all_connected), ...
- mean(UL_rssi_aligned(all_connected,:),2));
-title('UL RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'UL_RSSI_dBm_gps.jpg'),'jpg')
-
-%%
-ulsch_throughput_aligned = zeros(NFrames,1);
-ulsch_throughput_aligned(eNB_aligned,1) = ulsch_throughput;
-h_fig = figure(16);
-hold off
-plot_gps_coordinates(mm,gps_lon_aligned(all_connected), ...
- gps_lat_aligned(all_connected), ...
- ulsch_throughput_aligned(all_connected,1));
-title('UL Throughput (modem) [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput_gps.jpg'),'jpg')
-
-%%
-ulsch_throughput_ideal_1Rx_aligned = zeros(NFrames,1);
-ulsch_throughput_ideal_1Rx_aligned(eNB_aligned,1) = ulsch_throughput_ideal_1Rx;
-h_fig = figure(17);
-hold off
-plot_gps_coordinates(mm,gps_lon_aligned(all_connected), ...
- gps_lat_aligned(all_connected), ...
- ulsch_throughput_ideal_1Rx_aligned(all_connected,1));
-title('UL Throughput (ideal, 1Rx) [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput_ideal_1Rx_gps.jpg'),'jpg')
-
-%%
-ulsch_throughput_ideal_2Rx_aligned = zeros(NFrames,1);
-ulsch_throughput_ideal_2Rx_aligned(eNB_aligned,1) = ulsch_throughput_ideal_2Rx;
-h_fig = figure(18);
-hold off
-plot_gps_coordinates(mm,gps_lon_aligned(all_connected), ...
- gps_lat_aligned(all_connected), ...
- ulsch_throughput_ideal_2Rx_aligned(all_connected,1));
-title('UL Throughput (ideal, 2Rx) [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput_ideal_2Rx_gps.jpg'),'jpg')
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_eNb_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/plot_results_eNb_quick.m
deleted file mode 100755
index afda7c1597..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/plot_results_eNb_quick.m
+++ /dev/null
@@ -1,256 +0,0 @@
-%% load data
-estimates_eNB = load(fullfile(pathname,'results_eNB.mat'));
-
-h_fig = 0;
-
-% calculate the indices where the ue and the eNB were connected (they might
-% not have set the flag in the same frame)
-eNB_connected = ([estimates_eNB.eNb_UE_stats_cat(:).UE_mode]==3);
-%timebase = estimates_eNB.gps_time_cat - min(estimates_eNB.gps_time_cat);
-timebase = 1:length(estimates_eNB.gps_time_cat);
-[dist, dist_traveled] = calc_dist(estimates_eNB.gps_lat_cat,estimates_eNB.gps_lon_cat,mm);
-max_dist = ceil(max(dist));
-
-%% N0 over time
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot(timebase,estimates_eNB.rx_N0_dBm_cat,'x')
-ylim([-110 -90]);
-title('UL I0 [dBm]')
-xlabel('Time [sec]')
-ylabel('UL I0 [dBm]')
-legend('Sector 0','Sector 1','Sector 2')
-saveas(h_fig,fullfile(pathname,'UL_I0_dBm.eps'),'epsc2')
-
-%% UL RSSI over time
-UL_rssi_cat = zeros(length(estimates_eNB.phy_measurements_cat),3);
-for i=1:length(estimates_eNB.phy_measurements_cat)
- UL_rssi_cat(i,:) = double([estimates_eNB.phy_measurements_cat(i,:).rx_rssi_dBm]);
-end
-UL_rssi_cat(~eNB_connected,:) = -120;
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot(timebase,UL_rssi_cat,'x');
-title('UL RSSI [dBm]')
-xlabel('Time [sec]')
-ylabel('UL RSSI [dBm]')
-legend('Sector 0','Sector 1','Sector 2')
-ylim([-110 -30]);
-saveas(h_fig,fullfile(pathname,'UL_RSSI_dBm.eps'),'epsc2')
-
-%% UL RSSI on map
-UL_UE_rssi_cat = zeros(length(estimates_eNB.eNb_UE_stats_cat),1);
-sector = [estimates_eNB.eNb_UE_stats_cat.sector];
-for i=1:length(estimates_eNB.eNb_UE_stats_cat)
- UL_UE_rssi_cat(i) = UL_rssi_cat(i,sector(i)+1);
-end
-
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,estimates_eNB.gps_lon_cat, estimates_eNB.gps_lat_cat, ...
- UL_UE_rssi_cat,[-110 -30]);
-title('UL RSSI [dBm]')
-saveas(h_fig,fullfile(pathname,'UL_RSSI_dBm_gps.jpg'),'jpg')
-
-
-%% ULSCH throughput over time
-% if (estimates_eNB.start_time(1) >= datenum('20100610T000000','yyyymmddTHHMMSS'));
-% version = 1;
-% good = true(size(estimates_eNB.Rate_64Qam_1RX_cat));
-% else
-% version = 0;
-% good = ([estimates_eNB.eNb_UE_stats_cat.sector].'==0);
-% end
-
-estimates_eNB.ulsch_fer_cat = [100 diff(estimates_eNB.ulsch_errors_cat)];
-ulsch_throughput = double(estimates_eNB.tbs_cat) .* double(100 - estimates_eNB.ulsch_fer_cat) .* 3;
-ulsch_throughput(1,~eNB_connected) = 0;
-ulsch_throughput_ideal_1Rx = scale_ideal_tp(estimates_eNB.Rate_64Qam_1RX_cat*100);
-ulsch_throughput_ideal_2Rx = scale_ideal_tp(estimates_eNB.Rate_64Qam_2RX_cat*100);
-
-% we need to filter out the NaN measurements, that are due to the recording
-% bug in the early versions.
-good = ~isnan(ulsch_throughput_ideal_1Rx);
-
-ulsch_throughput_ideal_1Rx(~eNB_connected,1) = 0;
-%ulsch_throughput_ideal_1Rx(~good) = nan;
-ulsch_throughput_ideal_2Rx(~eNB_connected,1) = 0;
-%ulsch_throughput_ideal_2Rx(~good) = nan;
-
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot(timebase,ulsch_throughput,'x');
-hold on
-plot(timebase,ulsch_throughput_ideal_1Rx,'rx');
-hold on
-plot(timebase,ulsch_throughput_ideal_2Rx,'gx');
-ylim([0 4.86e6])
-legend('modem','ideal 1 rx antenna','ideal 2 rx antennas');
-title('UL Throughput [bps]')
-xlabel('Time [sec]')
-ylabel('UL Throughput [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput.eps'),'epsc2')
-
-%% Throughputs on maps
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,estimates_eNB.gps_lon_cat(good), estimates_eNB.gps_lat_cat(good), ...
- ulsch_throughput(good),[0 4.86e6]);
-title('UL Throughput (modem) [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput_gps.jpg'),'jpg')
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,estimates_eNB.gps_lon_cat(good), estimates_eNB.gps_lat_cat(good), ...
- ulsch_throughput_ideal_1Rx(good),[0 4.86e6]);
-title('UL Throughput (ideal, 1Rx) [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput_ideal_1Rx_gps.jpg'),'jpg')
-
-%%
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-plot_gps_coordinates(mm,estimates_eNB.gps_lon_cat(good), estimates_eNB.gps_lat_cat(good), ...
- ulsch_throughput_ideal_2Rx(good),[0 4.86e6]);
-title('UL Throughput (ideal, 2Rx) [bps]')
-saveas(h_fig,fullfile(pathname,'UL_throughput_ideal_2Rx_gps.jpg'),'jpg')
-
-
-%% Coded throughput CDF comparison
-h_fig = h_fig+1;
-figure(h_fig);
-hold off
-[f,x] = ecdf(ulsch_throughput(good));
-plot(x,f,'b','Linewidth',2)
-hold on
-[f,x] = ecdf(ulsch_throughput_ideal_1Rx(good));
-plot(x,f,'g','Linewidth',2)
-[f,x] = ecdf(ulsch_throughput_ideal_2Rx(good));
-plot(x,f,'r','Linewidth',2)
-xlim([0 4.86e6])
-legend('modem','ideal 1 rx antenna','ideal 2 rx antennas','Location','SouthEast');
-title('UL Throughput CDF')
-xlabel('UL Throughput [bps]')
-ylabel('P(x= datenum('20100610T000000','yyyymmddTHHMMSS'));
- version = 1;
- else
- version = 0;
- end
-
-
- [H, H_fq, estimates, gps_data, NFrames(file_idx)] = load_estimates_lte(fullfile(pathname,filenames{file_idx}),NFrames_max,decimation,is_eNb,version);
-
-%%
- phy_measurements = repmat(phy_measurements_eNb_struct,NFrames(file_idx)/decimation,3);
- eNb_UE_stats = repmat(eNb_UE_stats_struct,1,NFrames(file_idx)/decimation);
- mcs = zeros(1,NFrames(file_idx)/decimation);
- tbs = zeros(1,NFrames(file_idx)/decimation);
- %rx_N0_dBm = zeros(NFrames(file_idx)/decimation,3);
- %rx_N0_subband_dBm = zeros(NFrames(file_idx)/decimation,3,25);
- for i=1:NFrames(file_idx)/decimation
- phy_measurements(i,:) = estimates(i).phy_measurements_eNb;
- if (version<1)
- eNb_UE_stats(i) = estimates(i).eNb_UE_stats(3,1);
- else
- eNb_UE_stats(i) = estimates(i).eNb_UE_stats(1,1);
- end
- mcs(i) = get_mcs(estimates(i).dci_alloc(10,1).dci_pdu,'format0');
- tbs(i) = get_tbs(mcs(i),25);
- %for j=1:3
- %rx_N0_dBm(i,j) = estimates(i).phy_measurements_eNb(j).n0_power_tot_dBm;
- %rx_N0_subband_dBm(i,j,:) = estimates(i).phy_measurements_eNb(j).n0_subband_power_tot_dBm;
- %end
- end
-
-
- minestimates(file_idx).filename = filenames{file_idx};
- minestimates(file_idx).filedate = filedates{file_idx};
- minestimates(file_idx).start_time = start_time(file_idx);
- minestimates(file_idx).NFrames = NFrames(file_idx);
- minestimates(file_idx).phy_measurements = phy_measurements;
- minestimates(file_idx).eNb_UE_stats = eNb_UE_stats;
- minestimates(file_idx).timestamp = [estimates.timestamp];
- minestimates(file_idx).frame_tx = [estimates.frame_tx];
- minestimates(file_idx).mimo_mode= [estimates.mimo_mode];
- minestimates(file_idx).ulsch_errors = [estimates.ulsch_errors];
- minestimates(file_idx).mcs_cat = mcs;
- minestimates(file_idx).tbs_cat = tbs;
- minestimates(file_idx).gps_data = gps_data;
-
-
- save(fullfile(pathname,'results_eNB_new.mat'),'minestimates','file_idx');
-
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/post_processing_eNb_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/post_processing_eNb_quick.m
deleted file mode 100644
index a771854d99..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/post_processing_eNb_quick.m
+++ /dev/null
@@ -1,150 +0,0 @@
-if ~exist(pathname,'dir')
- error('Path does not exist!')
-end
-
-d = dir(fullfile(pathname, 'data_term1*.EMOS'));
-filenames = {d.name};
-filedates = {d.date};
-[filedates,idx] = sort(filedates);
-filenames = filenames(idx);
-
-% NFrames = floor([d.bytes]/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
-% for i=1:length(filenames)
-% file_idx(i) = sscanf(d(i).name,'data_term1_idx%d_%s.EMOS',1);
-% end
-
-NFrames_max = 100*60*10;
-
-if (exist(fullfile(pathname,'results_eNB.mat'),'file'))
- load(fullfile(pathname,'results_eNB.mat'));
- start_idx = file_idx + 1
-else
- timestamp_cat = [];
- phy_measurements_cat = struct([]);
- eNb_UE_stats_cat = struct([]);
- rx_N0_dBm_cat = [];
- %rx_N0_subband_dBm_cat = [];
- gps_lon_cat = [];
- gps_lat_cat = [];
- gps_time_cat = [];
- gps_speed_cat = [];
- frame_tx_cat = [];
- ulsch_errors_cat = [];
- mcs_cat = [];
- tbs_cat = [];
-
- Rate_4Qam_1RX_cat = [];
- Rate_16Qam_1RX_cat = [];
- Rate_64Qam_1RX_cat = [];
- siso_SNR_1RX_cat = [];
-
- Rate_4Qam_2RX_cat = [];
- Rate_16Qam_2RX_cat = [];
- Rate_64Qam_2RX_cat = [];
- siso_SNR_2RX_cat = [];
-
-
- NFrames = zeros(1,length(filenames));
- start_time = zeros(1,length(filenames));
- start_idx = 1;
-end
-
-%%
-for file_idx = start_idx:length(filenames)
- disp(filenames{file_idx});
-
- [path,file,ext,ver] = fileparts(filenames{file_idx});
- time_idx = regexp(file,'\d{8}T\d{6}');
- start_time(file_idx) = datenum(file(time_idx:end),'yyyymmddTHHMMSS');
-
- if file(10)=='1'
- is_eNb=1;
- else
- is_eNb=0;
- end
-
- if (start_time(file_idx) >= datenum('20100610T000000','yyyymmddTHHMMSS'));
- version = 1;
- else
- version = 0;
- end
-
- [H, H_fq, estimates, gps_data, NFrames(file_idx)] = load_estimates_lte(fullfile(pathname,filenames{file_idx}),NFrames_max,decimation,is_eNb,version);
-
-%%
- phy_measurements = repmat(phy_measurements_eNb_struct,NFrames(file_idx)/decimation,3);
- eNb_UE_stats = repmat(eNb_UE_stats_struct,1,NFrames(file_idx)/decimation);
- mcs = zeros(1,NFrames(file_idx)/decimation);
- tbs = zeros(1,NFrames(file_idx)/decimation);
- rx_N0_dBm = zeros(NFrames(file_idx)/decimation,3);
- %rx_N0_subband_dBm = zeros(NFrames(file_idx)/decimation,3,25);
- for i=1:NFrames(file_idx)/decimation
- phy_measurements(i,:) = estimates(i).phy_measurements_eNb;
- if (version<1)
- eNb_UE_stats(i) = estimates(i).eNb_UE_stats(3,1);
- else
- eNb_UE_stats(i) = estimates(i).eNb_UE_stats(1,1);
- end
- mcs(i) = get_mcs(estimates(i).dci_alloc(10,1).dci_pdu,'format0');
- tbs(i) = get_tbs(mcs(i),25);
- for j=1:3
- rx_N0_dBm(i,j) = estimates(i).phy_measurements_eNb(j).n0_power_tot_dBm;
- %rx_N0_subband_dBm(i,j,:) = estimates(i).phy_measurements_eNb(j).n0_subband_power_tot_dBm;
- end
- end
-
- [Rate_4Qam_1RX,Rate_16Qam_1RX,Rate_64Qam_1RX, siso_SNR_1RX] = calc_rps_SISO_UL(estimates, 1, version, 0);
- [Rate_4Qam_2RX,Rate_16Qam_2RX,Rate_64Qam_2RX, siso_SNR_2RX] = calc_rps_SISO_UL(estimates, 2, version, 0);
-
- phy_measurements_cat = [phy_measurements_cat; phy_measurements];
- eNb_UE_stats_cat = [eNb_UE_stats_cat eNb_UE_stats];
- timestamp_cat = [timestamp_cat [estimates.timestamp]];
- frame_tx_cat = [frame_tx_cat [estimates.frame_tx]];
- ulsch_errors_cat = [ulsch_errors_cat [estimates.ulsch_errors]];
- mcs_cat = [mcs_cat mcs];
- tbs_cat = [tbs_cat tbs];
- rx_N0_dBm_cat = [rx_N0_dBm_cat; rx_N0_dBm];
- %rx_N0_subband_dBm_cat = cat(1,rx_N0_subband_dBm_cat,rx_N0_subband_dBm);
- gps_lon_cat = [gps_lon_cat [gps_data.longitude]];
- gps_lat_cat = [gps_lat_cat [gps_data.latitude]];
- gps_time_cat = [gps_time_cat [gps_data.timestamp]];
- gps_speed_cat = [gps_speed_cat [gps_data.speed]];
-
- Rate_4Qam_1RX_cat = [Rate_4Qam_1RX_cat; Rate_4Qam_1RX];
- Rate_16Qam_1RX_cat = [Rate_16Qam_1RX_cat; Rate_16Qam_1RX];
- Rate_64Qam_1RX_cat = [Rate_64Qam_1RX_cat; Rate_64Qam_1RX];
- siso_SNR_1RX_cat = [siso_SNR_1RX_cat; siso_SNR_1RX];
-
- Rate_4Qam_2RX_cat = [Rate_4Qam_2RX_cat; Rate_4Qam_2RX];
- Rate_16Qam_2RX_cat = [Rate_16Qam_2RX_cat; Rate_16Qam_2RX];
- Rate_64Qam_2RX_cat = [Rate_64Qam_2RX_cat; Rate_64Qam_2RX];
- siso_SNR_2RX_cat = [siso_SNR_2RX_cat; siso_SNR_2RX];
-
-
- save(fullfile(pathname,'results_eNB.mat'),'phy_measurements_cat',...
- 'eNb_UE_stats_cat','timestamp_cat','frame_tx_cat','mcs_cat','tbs_cat',...
- 'ulsch_errors_cat','rx_N0_dBm_cat','gps_lon_cat','gps_lat_cat','gps_time_cat','gps_speed_cat',...
- 'Rate*cat','siso*cat',...
- 'file_idx','NFrames','start_time','filenames','filedates');
-
- %%
-% h_fig = figure(2);
-% hold off
-% plot(timestamp_cat,rx_N0_dBm_cat,'x')
-% title('RX I0 [dBm]')
-% xlabel('Frame number')
-% ylabel('RX I0 [dBm]')
-% saveas(h_fig,fullfile(pathname,'RX_I0_dBm.eps'),'epsc2')
-%
-% %%
-% h_fig = figure(3);
-% hold off
-% plot_gps_coordinates(mm,gps_lon_cat, gps_lat_cat,rx_N0_dBm_cat);
-% title('RX I0 [dBm]')
-% xlabel('Frame number')
-% ylabel('RX I0 [dBm]')
-% saveas(h_fig,fullfile(pathname,'RX_I0_dBm_gps.eps'),'epsc2')
-end
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/rank_pmi_calc.m b/openair1/EMOS/LTE/POST_PROCESSING/rank_pmi_calc.m
deleted file mode 100644
index e6435575b5..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/rank_pmi_calc.m
+++ /dev/null
@@ -1,135 +0,0 @@
-
-pathname = '/homes/latif/Mode2_UE_matFiles/';
-d = dir(fullfile(pathname, '*_results_UE.mat'));
-filenames = {d.name};
-
-for f = 1:length(filenames)
-
- try
- s = fullfile(pathname, filenames{f});
-
- if (exist(regexprep(s, '_results_UE.mat', '_results_PMI.mat')))
- continue;
- end
-
- load(s);
-
- pmi1 = [];
- pmi2 = [];
- lat = [];
- lon = [];
- count = 0;
- rank_Ind=[];
-
- for b = 1:100:length(minestimates)
-
- count = count+1;
-
- q1 = double(minestimates(b).phy_measurements.subband_pmi_re(1,:,1))+1j*double(minestimates(b).phy_measurements.subband_pmi_im(1,:,1));
- q2 = double(minestimates(b).phy_measurements.subband_pmi_re(2,:,1))+1j*double(minestimates(b).phy_measurements.subband_pmi_im(2,:,1));
-
- for i = 1:1:7
-
- qq1(i) = quantize_q(q1(i));
- qq1(i) = map_q(qq1(i));
- qq2(i) = quantize_q(q2(i));
- qq2(i) = map_q(qq2(i));
-
- if ((qq1(i)==0 && qq2(i)==3) || (qq1(i)==3 && qq2(i)==0) || (qq1(i)==2 && qq2(i)==1) || (qq1(i)==1 && qq2(i)==2))
- ran(i) = 1;
- else
- ran(i) = 0;
- end
-
-
- end
-
- if sum(ran==1)>=4
-
- rank_Ind = [rank_Ind 1];
- else
- rank_Ind = [rank_Ind 0];
- end
-
- pmi1 = [pmi1 qq1];
- pmi2 = [pmi2 qq2];
-
-
- end
- lat = [gps_data.latitude];
- lon = [gps_data.longitude];
- pmi1 = reshape(pmi1,7,[]);
- pmi2 = reshape(pmi2,7,[]);
- UE_synched = ([minestimates(1:100:end).UE_mode] > 0);
-
- save(regexprep(s, '_results_UE.mat', '_results_PMI.mat'), 'lat', 'lon', 'pmi1', 'pmi2', 'UE_synched', 'rank_Ind');
- catch me
- continue;
- end
-
- %save(fullfile(s, 'results_UE.mat'), '*_cat', 'pmi1','pmi2','rank_Ind');
-end
-
-
-%%
-%CONCATENATION SCRIPT
-
-lat_cat= [];
-lon_cat=[];
-pmi1_cat=[];
-pmi2_cat=[];
-UE_synched_cat=[];
-rank_Ind_cat=[];
-
-pathname = '/homes/latif/Mode2_UE_matFiles/';
-d = dir(fullfile(pathname, '*_results_PMI.mat'));
-filenames = {d.name};
-
-for f = 1:length(filenames)
- s = fullfile(pathname, filenames{f});
- load(s);
-
- lat_cat = [lat_cat lat];
- lon_cat = [lon_cat lon];
- pmi1_cat=[pmi1_cat pmi1];
-
- pmi2_cat=[pmi2_cat pmi2];
- UE_synched_cat=[UE_synched_cat UE_synched];
- rank_Ind_cat=[rank_Ind_cat rank_Ind];
-
-
-end
-
-save(fullfile(pathname, 'Mode2_PMI_Cat.mat'), 'lat_cat', 'rank_Ind_cat', 'lon_cat','pmi1_cat', 'pmi2_cat','UE_synched_cat');
-%%
-%PLOTTING SCRIPT
-
-mm='cordes';
-in = 0;
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm,lon_cat(UE_synched_cat),lat_cat(UE_synched_cat),pmi1_cat(1,UE_synched_cat));
-title('PMI')
-saveas(h_fig,fullfile(pathname,'PMI_1stRX_subband1.jpg'),'jpg')
-
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm, lon_cat(UE_synched_cat),lat_cat(UE_synched_cat),pmi1_cat(2,UE_synched_cat));
-title('PMI')
-saveas(h_fig,fullfile(pathname,'PMI_1stRX_subband2.jpg'),'jpg')
-
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm, lon_cat(UE_synched_cat),lat_cat(UE_synched_cat),pmi2_cat(1,UE_synched_cat));
-title('PMI')
-saveas(h_fig,fullfile(pathname,'PMI_2ndRX_subband1.jpg'),'jpg')
-
-in = in + 1;
-h_fig = figure(in);
-hold off
-plot_gps_coordinates(mm, lon_cat(UE_synched_cat),lat_cat(UE_synched_cat),pmi2_cat(2,UE_synched_cat));
-title('PMI')
-saveas(h_fig,fullfile(pathname,'PMI_2ndRX_subband2.jpg'),'jpg')
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/scale_ideal_tp.m b/openair1/EMOS/LTE/POST_PROCESSING/scale_ideal_tp.m
deleted file mode 100644
index e580f54b53..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/scale_ideal_tp.m
+++ /dev/null
@@ -1,17 +0,0 @@
-function tp2 = scale_ideal_tp(tp1)
-% tp2 = scale_ideal_tp(tp1)
-% this function scales the tp1 obtained with the MI criterion to the one
-% obtained by simulation.
-
-load SISO_scaling.mat
-
-% find the snr of tp in tp_mi
-snr = interp1(tp_mi,snr_mi,tp1,'nearest','extrap');
-
-% apply the offset of the nomadic antennas
-% snr = snr - 4.7;
-
-% lookup the new throughput
-tp2 = interp1(snr_sim,tp_sim,snr,'nearest','extrap');
-
-tp2(isnan(tp1))=nan;
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/select_dist_travelled_ideal.m b/openair1/EMOS/LTE/POST_PROCESSING/select_dist_travelled_ideal.m
deleted file mode 100644
index d004d1113a..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/select_dist_travelled_ideal.m
+++ /dev/null
@@ -1,31 +0,0 @@
-clear all
-close all
-
-%%
-% pathname = '/emos/EMOS/';
-% mm = 'cordes';
-pathname = '/emos/AMBIALET/';
-mm = 'ambialet';
-mode2_ideal = load(fullfile(pathname,'/Mode2/results/results_cat_UE.mat'));
-mode2 = load(fullfile(pathname,'/Mode2/results/results_UE.mat'));
-
-%%
-figure(1)
-hold off
-time = [mode2_ideal.gps_data_cat.timestamp];
-select = zeros(size(time));
-plot(time,select,'x')
-xlabel('Time')
-ylabel('Select')
-linkdata on
-
-%%
-figure(2)
-hold off
-lat = [mode2_ideal.gps_data_cat.latitude];
-lon = [mode2_ideal.gps_data_cat.longitude];
-[x,y] = plot_gps_coordinates(mm,lon,lat,[],[],'','blue','Marker','x','Line','none');
-linkdata on
-set(findobj('XDataSource','x'),'ZDataSource','select');
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/select_mu-mimo_ambialet.mat b/openair1/EMOS/LTE/POST_PROCESSING/select_mu-mimo_ambialet.mat
deleted file mode 100644
index 0f41366c6f..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/select_mu-mimo_ambialet.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_channel.m b/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_channel.m
deleted file mode 100644
index 23c5bd3970..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_channel.m
+++ /dev/null
@@ -1,71 +0,0 @@
-close all
-clear all
-
-pathname = '/emos/AMBIALET/Mode2/';
-dd = dir(fullfile(pathname,'*extended*'));
-
-% pathname = '/emos/EMOS/';
-% dd(1).name = '/Mode6/20100610_VTP_MODE6_ZONES_PUSCH_UPDATE.2/';
-% dd(1).isdir = 1;
-% % dd(1).name = 'Mode6/20100526_mode1_parcours1_part4_part5';
-% % dd(1).isdir = 1;
-% % dd(2).name = 'Mode2/20100520_mode2_parcours1_part4_part5';
-% % dd(2).isdir = 1;
-
-
-for dir_idx=1:1:length(dd)
- % if dd(dir_idx).isdir == 1
-
- % if length(dd(dir_idx).name) > 10
-
- fpath = fullfile(pathname,dd(dir_idx).name);
-
- d = dir(fullfile(fpath, 'data_term3*.EMOS'));
- filenames = {d.name};
-
- decimation = 1;
- NFrames_max = 100*60*10;
-
- for file_idx = 1:length(filenames)
-
- disp(filenames{file_idx});
- [path,file,ext,ver] = fileparts(filenames{file_idx});
-
- time_idx = regexp(file,'\d{8}T\d{6}');
- start_time = datenum(file(time_idx:end),'yyyymmddTHHMMSS');
-
- if (start_time >= datenum('20100610T000000','yyyymmddTHHMMSS'));
- version = 1;
- else
- version = 0;
- end
-
- if file(10)=='1'
- is_eNb=1;
- mat_file = [file '_results_eNB.mat'];
- else
- is_eNb=0;
- mat_file = [file '_results_UE.mat'];
- end
-
- if (exist(fullfile(fpath,mat_file),'file'))
- continue
- end
-
- [H, H_fq, gps_data, NFrames, minestimates, throughput, SNR, K_fac] = load_estimates_lte_1(fullfile(fpath,filenames{file_idx}),NFrames_max,decimation,is_eNb,version);
-
- if is_eNb
- save(regexprep((fullfile(fpath,filenames{file_idx},'results_eNB.mat')), '.EMOS/results_eNB.mat', '_results_eNB.mat'), 'gps_data', 'NFrames', 'SNR', 'throughput', 'minestimates', 'file_idx');
- else
- save(regexprep((fullfile(fpath,filenames{file_idx},'results_UE.mat')), '.EMOS/results_UE.mat', '_results_UE.mat'), 'gps_data', 'NFrames', 'SNR', 'throughput', 'minestimates', 'file_idx', 'K_fac');
- %save(regexprep((fullfile(fpath,filenames{file_idx},'K_factor.mat')), '.EMOS/K_factor.mat', '_K_factor.mat'), 'gps_data', 'K_fac');
- end
-
- end
-
- % We need to call the concatenate script here
- Concatenate_results_UE_quick
- Concatenate_results_eNB_quick
-
-end
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_nomadic_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_nomadic_quick.m
deleted file mode 100644
index 8ec4f946dd..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_nomadic_quick.m
+++ /dev/null
@@ -1,35 +0,0 @@
-close all
-clear all
-
-addpath('../IMPORT_FILTER')
-addpath('maps')
-addpath('CapCom')
-decimation = 100;
-struct_template;
-
-%root_path = '/emos/EMOS/Nomadic/';
-%root_path = '/emos/AMBIALET/Nomadic/';
-root_path = '/media/disk/PENNE/Nomadic/';
-
-%mm='cordes';
-%mm='ambialet';
-mm='penne';
-
-d = dir(fullfile(root_path, '*nomadic*'));
-dir_names = {d.name};
-id=[d.isdir];
-dir_names(~id) = [];
-
-%% post processing for nomadic points
-
-for i=1:length(dir_names)
- pathname = fullfile(root_path,dir_names{i});
- post_processing_UE_nomadic_quick
- post_processing_eNB_nomadic_quick
- eval_nomadic_points
-end
-
-
-
-
-
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_quick.m b/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_quick.m
deleted file mode 100755
index 5ed9b9c1b3..0000000000
--- a/openair1/EMOS/LTE/POST_PROCESSING/start_post_processing_quick.m
+++ /dev/null
@@ -1,51 +0,0 @@
-close all
-clear all
-
-addpath('../IMPORT_FILTER')
-addpath('maps')
-addpath('CapCom')
-decimation = 100;
-struct_template;
-
-root_path = '/emos/AMBIALET/Mode2/';
-%root_path = '/media/Iomega_HDD/EMOS/data/20100702/';
-%root_path = '/extras/kaltenbe/CNES/emos_preprocessed_data_penne/';
-%root_path = '/media/Iomega_HDD-1/';
-%root_path = '/media/Iomega_HDD/EMOS/data/';
-
-mm='ambialet';
-
-d = dir(fullfile(root_path, '*extended*'));
-dir_names = {d.name};
-%dir_names = {'20100616_Coverage_Runs'};
-
-%% post processing for nomadic points
-%
-% for i=1:length(dir_names)
-% pathname = fullfile(root_path,dir_names{i},'nomadic');
-% if exist(pathname,'dir')
-% post_processing_UE_nomadic_quick
-% end
-% end
-%
-% %eval_nomadic_points
-%
-
-
-%% post processing for vehicular measurements
-for i=1:length(dir_names)
- pathname = fullfile(root_path,dir_names{i});
- post_processing_UE_quick
- post_processing_eNb_quick
- get_gps_coordinates_eNB
-end
-
-%% plot
-for i=1:length(dir_names)
- pathname = fullfile(root_path,dir_names{i});
- disp(pathname);
- h_fig = 0;
- plot_results_UE_quick
- plot_results_eNb_quick
- %plot_results_eNb_aligned
-end
diff --git a/openair1/EMOS/LTE/POST_PROCESSING/table_LTE_MODE_4_5.mat b/openair1/EMOS/LTE/POST_PROCESSING/table_LTE_MODE_4_5.mat
deleted file mode 100644
index 9f97e903bb..0000000000
Binary files a/openair1/EMOS/LTE/POST_PROCESSING/table_LTE_MODE_4_5.mat and /dev/null differ
diff --git a/openair1/EMOS/LTE/RECIPROCITY/main.m b/openair1/EMOS/LTE/RECIPROCITY/main.m
deleted file mode 100644
index 3f49efdcdc..0000000000
--- a/openair1/EMOS/LTE/RECIPROCITY/main.m
+++ /dev/null
@@ -1,67 +0,0 @@
-clear all
-close all
-
-addpath('../IMPORT_FILTER');
-
-% [estimates,NFrames]=load_estimates_lte_new('E:/EMOS/eNB_data_20120719_171732.EMOS',1000);
-% [estimates_UE,NFrames_UE]=load_estimates_lte_new('E:/EMOS/UE_data_20120719_171714.EMOS',1000,1,0);
-
-% [estimates,NFrames]=load_estimates_lte_new('E:/EMOS/eNB_data_20120719_163504.EMOS',10000);
-% [estimates_UE,NFrames_UE]=load_estimates_lte_new('E:/EMOS/UE_data_20120719_163447.EMOS',10000,1,0);
-
-load eNB_estimates
-load UE_estimates
-
-struct_template_new
-
-%%
-NFrames = 1000;
-decimation = 1;
-NFrames_eNB = size(estimates,2);
-NFrames_UE = size(estimates_UE,2);
-
-H_eNB = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_eNb.channel,1)/2,size(fifo_dump_emos_struct_eNb.channel,2)));
-H_UE = complex(zeros(floor(NFrames/decimation),size(fifo_dump_emos_struct_UE.channel,1)/2,size(fifo_dump_emos_struct_UE.channel,2)));
-
-% find the indices to align the eNB and the UE data
-frames_eNB = [estimates.frame_tx]; %frame counter at eNB
-frames_UE = [estimates_UE.frame_rx]; %frame counter at UE
-frame0 = frames_UE(3);
-idx0_eNB = find(frames_eNB==frame0);
-idx0_UE = find(frames_UE==frame0);
-
-%%
-for k=1:NFrames %-max(idx0_eNB,idx0_UE)
- %disp([frame0+k-1 frames_eNB(idx0_eNB+k-1) frames_UE(idx0_UE+k-1)]);
- H_eNB(k,:,:) = double(estimates(idx0_eNB+k-1).channel(1:2:end,:)) + 1j*double(estimates(idx0_eNB+k-1).channel(2:2:end,:));
- H_UE(k,:,:) = double(estimates_UE(idx0_UE+k-1).channel(1:2:end,:)) + 1j*double(estimates_UE(idx0_UE+k-1).channel(2:2:end,:));
-end
-
-% size(H_eNB) = [NFrames,N_RB_UL_EMOS*12*N_PILOTS_UL_EMOS*N_SUBFRAMES_UL_EMOS,NB_ANTENNAS_RX_EMOS]
-% where N_RB_UL_EMOS*12 = 25*12 = 300 is the number of usefull subcarriers
-% N_PILOTS_UL_EMOS = 2 is the number of OFDM symbols per subframe that have pilots
-% N_SUBFRAMES_UL_EMOS = 3 is the number of UL subframes per frame*
-
-% size(H_UE) =
-% [NFrames,NUMBER_OF_OFDM_CARRIERS_EMOS*N_PILOTS_DL_EMOS*N_SUBFRAMES_DL_EMOS,NB_ANTENNAS_TX_EMOS]
-% where NUMBER_OF_OFDM_CARRIERS_EMOS = 512 is the number of OFDM carrier
-% (out of which only the first 300 are non-zero)
-% N_PILOTS_DL_EMOS = 4 is the number of OFDM carriers that have pilots
-% (linear interpolation in the frequency domain has already been
-% performed)
-% N_SUBFRAMES_DL_EMOS = 5 is the number of DL subframes per frame*
-
-% NB_ANTENNAS_TX_EMOS = NB_ANTENNAS_RX =2 is the number of antennas at the eNB
-% (the UE has one antenna for TX/RX)
-
-% *here we are using TDD configuration 3 which looks like this (S = special subframe)
-% [DL | S | UL | UL | UL | DL | DL | DL | DL | DL]
-
-
-%%
-figure(1)
-hold off
-plot([estimates.frame_tx])
-hold on
-plot([estimates_UE.frame_rx],'r')
-
diff --git a/openair1/EMOS/LTE/RECIPROCITY/main_part2.m b/openair1/EMOS/LTE/RECIPROCITY/main_part2.m
deleted file mode 100644
index e779b674a1..0000000000
--- a/openair1/EMOS/LTE/RECIPROCITY/main_part2.m
+++ /dev/null
@@ -1,182 +0,0 @@
-La = 5;
-M = 512;
-L = 30;
-ant = 2;
-frames = 201:210;
-%frames2 = frames;
-frames2 = 501:510;
-
-%method = 'tlsdeconv';
-method = 'tlsdeconvangles';
-
-
-%%
-%H_UE2 = reshape(permute(H_UE(frames,2049:2560,:),[2 1 3]),512,[],2);
-H_UE2 = reshape(permute(H_UE(:,2561:3072,:),[2 1 3]),512,[],2);
-H_UE3 = complex(zeros(size(H_UE2)));
-H_UE3(363:512,:,:) = H_UE2(6:155,:,:);
-H_UE3(1:151,:,:) = H_UE2(156:306,:,:);
-H_UE_t = ifft(conj(H_UE3),512,1); %the channel estimates are stored in conjugated format
-H_UE_t = circshift(H_UE_t,[-15,0,0]); %shift the peak to the desired position
-figure(2)
-hold off
-%waterfall(squeeze(20*log10(abs(H_UE_t))).')
-plot(squeeze(20*log10(abs(H_UE_t(:,frames,ant)))))
-title('PDP DL channel')
-
-%%
-H_eNB2 = reshape(permute(H_eNB(:,1501:1800,:),[2 1 3]),300,[],2);
-H_eNB3 = complex(zeros(512,NFrames,2));
-H_eNB3(363:512,:,:) = H_eNB2(1:150,:,:);
-H_eNB3(1:150,:,:) = H_eNB2(151:300,:,:);
-H_eNB_t = ifft(H_eNB3,512,1);
-H_eNB_t = circshift(H_eNB_t,[8,0,0]);
-figure(3)
-hold off
-%waterfall(squeeze(20*log10(abs(H_eNB_t))).')
-plot(squeeze(20*log10(abs(H_eNB_t(:,frames,ant)))))
-title('PDP UL channel')
-
-%% compensate the time drift
-Lanczos=@(x,a)sinc(x).*sinc(x/a);
-Lt=@(t)toeplitz([Lanczos((0:-1:-La)+t,La).'; zeros(M-1-La,1)],[Lanczos((0:1:La)+t,La) zeros(1,M-1-La)]);
-
-abs_timing_offset=double([estimates_UE(1:1000).timing_offset]);
-slope = (abs_timing_offset(1000)-abs_timing_offset(122))./(1000-122);
-rel_timing_offset=abs_timing_offset-abs_timing_offset(122)-slope*(-121:1000-122);
-
-for i=1:NFrames
- for j=1:2
- H_UE_t(:,i,j) = Lt(rel_timing_offset(i))*H_UE_t(:,i,j);
- H_eNB_t(:,i,j) = Lt(-rel_timing_offset(i))*H_eNB_t(:,i,j);
- end
-end
-
-H_UE_t = H_UE_t(1:L,:,:);
-H_eNB_t = H_eNB_t(1:L,:,:);
-
-figure(12)
-hold off
-waterfall(squeeze(20*log10(abs(H_UE_t(:,frames,ant)))).')
-title('PDP compensated DL channel')
-figure(13)
-hold off
-waterfall(squeeze(20*log10(abs(H_eNB_t(:,frames,ant)))).')
-title('PDP compensated UL channel')
-
-%%
-addpath('E:\Synchro\kaltenbe\My Documents\Matlab\reciprocity')
-clear p
-for j=1:2
- if strcmp(method,'tlsdeconvangles')
- fprintf('\ntlsdeconvangles\n')
- [p(:,j),phi_hat,costnew(j)]=tlsdeconvangles(H_UE_t(:,frames,j),H_eNB_t(:,frames,j),20);
- phi_hat_last(:,j) = phi_hat(:,end);
- elseif strcmp(method,'tlsdeconv')
- fprintf('\ntlsdeconv\n')
- [p(:,j),costnew(j)]=tlsdeconv(H_UE_t(:,frames,j),H_eNB_t(:,frames,j),20);
- phi_hat_last(:,j) = zeros(length(frames),1);
- else
- error('unknow method %s',method);
- end
-
-end
-
-%%
-colors=['b' 'g' 'r' 'c' 'm' 'y' 'k' 'b' 'g' 'r'];
-
-if strcmp(method,'tlsdeconvangles')
- figure(5)
- clf; hold on
- niter=size(phi_hat,2);
- for k=2:size(phi_hat,1);
- polar(phi_hat(k,:),1:niter,colors(k-1));
- %polar(-reference(k)/180*pi,niter,[colors(k-1) 'o']);
- end
-end
-
-figure(6)
-hold off
-plot(abs(p))
-title('p')
-
-%% test the estimated reciprocity filter p by applying it to a differnt part of the measurements
-g = H_eNB_t(:,frames2,:);
-h = H_UE_t(:,frames2,:);
-% reconstruct g from h
-for j=1:2
- g_hat(:,:,j) = filter(p(:,j),1,h(:,:,j));
- if all(frames==frames2)
- for i=1:length(frames)
- g_hat(:,i,j) = exp(-1j*phi_hat_last(i,j)).*g_hat(:,i,j);
- end
- end
-end
-G = fft(g,512,1);
-G_hat = fft(g_hat,512,1);
-H = fft(h,512,1);
-
-% normalize G and G_hat
-scale_G = sqrt(mean(mean(mean(abs(G).^2,1),2),3));
-scale_G_hat = sqrt(mean(mean(mean(abs(G_hat).^2,1),2),3));
-scale_H = sqrt(mean(mean(mean(abs(H).^2,1),2),3));
-
-G=G./scale_G;
-G_hat = G_hat./scale_G_hat;
-H=H./scale_H;
-
-%%
-addpath('E:\Synchro\kaltenbe\My Documents\Matlab\reciprocity\ICC paper');
-SNR_vec_dB = -10:10:40;
-SNR_vec = 10.^(SNR_vec_dB./10);
-C_CSIR = zeros(512,length(frames2),length(SNR_vec));
-C_CSIT_perf = zeros(512,length(frames2),length(SNR_vec));
-C_CSIT_calib = zeros(512,length(frames2),length(SNR_vec));
-C_CSIT_nocalib = zeros(512,length(frames2),length(SNR_vec));
-for i=1:512
- for j=1:length(frames2)
- [C_CSIR(i,j,:), C_CSIT_perf(i,j,:), C_CSIT_calib(i,j,:)] = cap_miso(squeeze(G(i,j,:)).', squeeze(G_hat(i,j,:)).', SNR_vec.');
- [~, ~, C_CSIT_nocalib(i,j,:)] = cap_miso(squeeze(G(i,j,:)).', squeeze(H(i,j,:)).', SNR_vec.');
- end
-end
-
-scale_C = 1/(1e-3/14) * 1/4.5e6;
-
-%%
-figure(10)
-hold off
-plot(SNR_vec_dB,scale_C*squeeze(mean(sum(C_CSIT_perf,1),2)),'ro--');
-hold on
-plot(SNR_vec_dB,scale_C*squeeze(mean(sum(C_CSIT_calib,1),2)),'mx:');
-%plot(SNR_vec_dB,scale_C*squeeze(mean(sum(C_CSIT_calib_nofreqoff,1),2)),'c+:');
-plot(SNR_vec_dB,scale_C*squeeze(mean(sum(C_CSIR,1),2)),'bs--');
-plot(SNR_vec_dB,scale_C*squeeze(mean(sum(C_CSIT_nocalib,1),2)),'kd-');
-%legend('CSIR + perfect CSIT', 'CSIR + calibrated CSIT', 'CSIR + calibrated no freq offset', ...
-% 'CSIR only', 'CSIR + uncalibrated CSIT', 'Location', 'Northwest')
-legend('CSIR + perfect CSIT', 'CSIR + calibrated CSIT', ...
- 'CSIR only', 'CSIR + uncalibrated CSIT', 'Location', 'Northwest')
-xlabel('SNR [dB]')
-ylabel('Capacity [bit/sec/Hz]')
-
-%%
-figure(7)
-p = squeeze(20*log10(abs(g(:,:,ant)))).';
-waterfall(max(p,zeros(size(p))))
-zlim([0 50])
-title('|g|^2 [dB]')
-xlabel('Delay Time [samples]')
-ylabel('Snapshots')
-
-figure(8)
-p = squeeze(20*log10(abs(g_hat(:,:,ant)))).';
-waterfall(max(p,zeros(size(p))))
-zlim([0 50])
-title('|\hat{g}|^2 [dB]')
-xlabel('Delay Time [samples]')
-ylabel('Snapshots')
-
-figure(9)
-hold off
-mse = abs(g-g_hat).^2./abs(g).^2;
-surf(squeeze(10*log10(mse(:,:,ant))).')
-title('mse [dB]')
\ No newline at end of file
diff --git a/openair1/EMOS/LTE/RECIPROCITY/some_plots.m b/openair1/EMOS/LTE/RECIPROCITY/some_plots.m
deleted file mode 100644
index a3139d7b5c..0000000000
--- a/openair1/EMOS/LTE/RECIPROCITY/some_plots.m
+++ /dev/null
@@ -1,39 +0,0 @@
-figure(14)
-hold off
-plot(real(fftshift(H_UE3(:,frame,ant))))
-hold on
-plot(imag(fftshift(H_UE3(:,frame,ant))),'r')
-
-figure(15)
-hold off
-plot(real(fftshift(H_eNB3(:,frame,ant))))
-hold on
-plot(imag(fftshift(H_eNB3(:,frame,ant))),'r')
-
-%%
-tmp = zeros(301,1);
-tmp(152:6:301) = H_UE2(6:6:155,frame,ant);
-tmp(2:6:151) = H_UE2(157:6:306,frame,ant);
-
-figure(16)
-hold off
-plot(20*log10(abs(ifft(conj(tmp)))))
-
-figure(17)
-hold off
-plot(real(tmp))
-hold on
-plot(imag(tmp),'r')
-
-%%
-figure(9)
-frame = 1;
-hold off
-plot(real(g(:,frame)))
-hold on
-plot(real(g_hat(:,frame)),'r')
-figure(10)
-hold off
-plot(imag(g(:,frame)))
-hold on
-plot(imag(g_hat(:,frame)),'r')
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/Antenna4Test.m b/openair1/EMOS/MATLAB/Antenna4Test.m
deleted file mode 100755
index 93b846995b..0000000000
--- a/openair1/EMOS/MATLAB/Antenna4Test.m
+++ /dev/null
@@ -1,33 +0,0 @@
-%% parameters
-NTx = 4; % Number of Tx antennas
-NRx = 2; % Number of Rx antennas
-NFrames = 10000;
-NFreq = 160/NTx;
-NTau = 256/NTx;
-
-%% load data
-filename_emos = 'Z:\EMOS\data\20071106_Antenna4Test\data_term1_idx0_20071106_113402.EMOS';
-[path,name] = fileparts(filename_emos);
-
-[H1,H1_fq,est,gps_data,NFrames] = load_estimates(filename_emos,NTx,NFrames);
-%[H2,H2_fq,est2,nest2] = load_estimates('data_term2_idx0_20071009_144617.EMOS',NTx,NFrames);
-% if (nest ~= nest2)
-% error('Sizes of Channel Matrices of different users don''t match');
-% end
-
-%% calculate and plot the PDP and frequency response over time
-% The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
-% but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
-H1p = permute(H1,[4 3 2 1]);
-
-for i=1:NTx
- DProf(i,:) = DProfile(H1p(:,:,i,1));
-end
-
-h_fig = figure(2);
-plot((0:(NTau-1))/7.68,10*log10(DProf.'),'Linewidth',2)
-xlabel('Delay [\mus]');
-ylabel('Receive Power Level [dB]');
-legend('1','2','3','4')
-grid on
-%saveas(h_fig, fullfile(path,[name '_Dprofile.eps']), 'psc2');
diff --git a/openair1/EMOS/MATLAB/BD.m b/openair1/EMOS/MATLAB/BD.m
deleted file mode 100755
index c4060d729a..0000000000
--- a/openair1/EMOS/MATLAB/BD.m
+++ /dev/null
@@ -1,53 +0,0 @@
-function [CAP,eff_gain] = BD(HS,n_p,wf)
-
-% size(HS) = [NRx,NTx,Nuser]
-% n_p noise power
-
-% the block diagonalization here assumes that we have NRx streams per user
-
-if nargin<3
- wf=1;
-end
-
-S = [];
-M = [];
-
-tt= size(HS);
-NRx = tt(1);
-NTx = tt(2);
-NUser = tt(3);
-
-CAP = 0;
-eff_gain = zeros(1,NUser);
-
-if (HS == zeros(tt(1),tt(2),tt(3)))
- return
-else
- H_all_users = reshape(permute(HS,[1 3 2]),NRx*NUser,NTx);
- for k = 1:tt(3)
- % form H_tilde_k
- H_tilde = H_all_users([1:(k-1)*NRx k*NRx+1:NUser*NRx],:);
- V_tilde_null = null(H_tilde);
- %[U1 S1 V1] = svd(HS(:,:,k)*V_tilde_null);
- S1 = svd(HS(:,:,k)*V_tilde_null);
- S = [S S1.'];
- %M = [M V_tilde_null * V1.*S1];
-
- % check this:
- eff_gain(k) = sum(S1.^2);
- end
-
- % we assume a total transmit power of sum(power)=1
- % this way we do not need the factor 1/NTx in the capacity formula
- if wf
- % power loading: use waterfilling
- power = IWF_4users(S.^2,1./n_p);
- else
- % no power loading
- power = repmat(1/(n_p*NUser*NRx),1,NUser*NRx);
- end
-
- CAP = sum(log2(1 + power.*S.^2));
-
- end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/DProfile.m b/openair1/EMOS/MATLAB/DProfile.m
deleted file mode 100755
index 6951c8d23a..0000000000
--- a/openair1/EMOS/MATLAB/DProfile.m
+++ /dev/null
@@ -1,66 +0,0 @@
-function [DProf,data_new] = DProfile(imp_resp)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Power delay Profile function: (Raul de Lacerda, 27/03/2007)
-% [DProf,data_new] = DProfile(imp_resp)
-%
-% DProfile is a function created to estimate the power delay profile of the
-% files generated by the EMOS TestBed.
-% - imp_resp is the input file with the Impulse Responses dim(t,tau,Tx,Rx)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-Nconv = 9; % length of the sliding window (Odd Value)
-
-%%% N_T = Number of samples
-%%% N_tau = Impulse response length
-%%% N_Tx = Number of TX antennas
-%%% N_Rx = Number of RX antennas
-[N_t,N_tau,N_Tx,N_Rx] = size(imp_resp);
-
-if isempty(imp_resp)
- data_new = imp_resp;
- DProf = 0;
-else
-
-% Channel synchronization
-data = abs(imp_resp).^2;
-data_new = zeros(size(data));
-tmp2 = zeros(1,N_tau);
-
-%data_new = [data(:,end-20:end,:,:) data(:,1:end-21,:,:)];
-for ii = 1:N_t,
- for jj = 1:N_Tx,
- for kk = 1:N_Rx,
- tmp1 = [data(ii,end-((Nconv-1)/2)+1:end,jj,kk) data(ii,:,jj,kk) data(ii,1:(Nconv-1)/2,jj,kk)];
- tmp2(1) = sum(tmp1(1:Nconv));
- for aa = 2:N_tau,
- tmp2(aa) = tmp2(aa-1)-tmp1(aa-1)+tmp1(aa-1+Nconv);
- end
- [tmp,pos] = max(tmp2);
-
- if pos == 20,
- data_new(ii,:,jj,kk) = data(ii,:,jj,kk);
- elseif pos > 20,
- data_new(ii,:,jj,kk) = [data(ii,pos-19:end,jj,kk) data(ii,1:pos-20,jj,kk)];
- else
- data_new(ii,:,jj,kk) = [data(ii,end-(20-pos)+1:end,jj,kk) data(ii,1:end-(20-pos),jj,kk)];
- end
- end
- end
-end
-
-DProf = zeros(1,N_tau);
-
-% Power Delay profile
-for aa = 1:N_tau,
- DProf(aa) = 0;
- for ii = 1:N_t,
- for jj = 1:N_Tx,
- for kk = 1:N_Rx,
- DProf(aa) = DProf(aa) + data_new(ii,aa,jj,kk);
- end
- end
- end
-end
-DProf = DProf/(N_t*N_Tx*N_Rx);
-
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/EMOS_generate_LaTex_file.m b/openair1/EMOS/MATLAB/EMOS_generate_LaTex_file.m
deleted file mode 100755
index bca054392a..0000000000
--- a/openair1/EMOS/MATLAB/EMOS_generate_LaTex_file.m
+++ /dev/null
@@ -1,242 +0,0 @@
-% Skript: EMOS_generate_Latex_file
-%
-% This script generates the Latex source code for each measurement file.
-%
-%----------------------------------------------------------------------%
-% %
-% Author: Helmut Hofstetter
-% Florian Kaltenberger
-% Created: 09/08/2006 by HH %
-% Last modification: 26/11/2007 by FK %
-% Organization: Institut Eurecom %
-% 2229 Route des Cretes %
-% B.P. 193 %
-% 06904 Sophia Antipolis Cedex, France %
-% %
-% Project: EMOS sounder %
-% Deliverable Type: This M-file is part of the EMOS sounder %
-% Source Code: MATLAB v6.5 %
-% History: %
-% Created: 1.00, 09/08/2006 by HH (Eurecom)
-% 2.00, 26/11/2007 adapted to new OFDM EMOS (FK)
-% %
-%----------------------------------------------------------------------%
-
-
-texname = sprintf('idx_%d.tex',idx); % name to write the Tex file
-fid = fopen(fullfile(filepath_tex,texname),'w');
-
-fname = filename_emos{1,idx};
-finfo = sscanf(fname,'data_term%d_idx%d_%d_%d.EMOS');
-
-for k=1:NUser
- fer(k) = sum(est(k,idx).err_ind)/length(est(k,idx).err_ind);
-end
-
-file_scenario=['Measurement: & ',num2str(idx),'\\'];
-file_date=['Date: & ',num2str(finfo(3)),'\\'];
-file_time=['Time: & ',num2str(finfo(4)),'\\'];
-% file_date=['Date: & ',num2str(fname(24:25)),'.',num2str(fname(22:23)),'.',num2str(fname(18:21)),'\\'];
-% file_time=['Time: & ',num2str(fname(27:28)),':',num2str(fname(29:30)),'\\'];
-file_freq=['Frequency: & $',num2str(1.9176,'%3.4f'),'\,$GHz\\'];
-file_bandwidth=['Bandwidth: & $',num2str(4.8,'%3.2f'),'\,$MHz\\'];
-file_numresp=['Number of frames: & $',num2str(max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1),'$\\'];
-file_fer=['Frame Error Rate: & $',num2str(fer,'%1.2f, '),'$\\'];
-%file_timebtwresp=['Time between Responses: & $',num2str(S.timestampE(3)-S.timestampE(2),'%1.3f'),'\,$sec\\'];
-file_IRlength=['IR length: & $',num2str(1),'\,$samples \\'];
-file_Txpower=['Tx power: & $30\,$dBm\\'];
-file_Txdirection=['Tx antenna & \\'];
-file_Txdirection2=['direction: & towards Garbejaire\\'];
-file_Rxheight=['Rx antenna position: & inside the car \\'];
-
-filename_rssi = fullfile(pwd,sprintf('figs/idx_%d_rx_rssi.eps',idx));
-filename_gps = fullfile(pwd,sprintf('figs/idx_%d_map_rx_rssi.eps',idx));
-filename_cap_4U_iid = fullfile(pwd,sprintf('figs/idx_%d_capacity_4U_iid.eps',idx));
-filename_cap_4U = fullfile(pwd,sprintf('figs/idx_%d_capacity_4U.eps',idx));
-filename_cap_2U = fullfile(pwd,sprintf('figs/idx_%d_capacity_2U.eps',idx));
-filename_cap_AS = fullfile(pwd,sprintf('figs/idx_%d_capacity_AS.eps',idx));
-filename_cap_2Tx = fullfile(pwd,sprintf('figs/idx_%d_capacity_NTx2.eps',idx));
-filename_pdp = fullfile(pwd,sprintf('figs/idx_%d_Dprofile.eps',idx));
-filename_align = fullfile(pwd,sprintf('figs/idx_%d_align.eps',idx));
-filename_corr = fullfile(pwd,sprintf('figs/idx_%d_corr.eps',idx));
-filename_gains = fullfile(pwd,sprintf('figs/idx_%d_MUgains.eps',idx));
-
-fprintf(fid,'%s\r\n','\setlength{\unitlength}{1cm}');
-fprintf(fid,'%s\r\n','\begin{picture}(16,21.3)');
-fprintf(fid,'%s\r\n','\scriptsize{');
-
-fprintf(fid,'%s\r\n','\put(7,21){\makebox(7,0.5)[tl]{');
-fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-fprintf(fid,'%s\r\n',file_scenario);
-fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-fprintf(fid,'%s\r\n','\put(7,20.5){\makebox(7,0.5)[tl]{');
-fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-fprintf(fid,'%s\r\n',file_date);
-fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-fprintf(fid,'%s\r\n','\put(7,20){\makebox(7,0.5)[tl]{');
-fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-fprintf(fid,'%s\r\n',file_time);
-fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-% fprintf(fid,'%s\r\n','\put(7,19.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_freq);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,19){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_bandwidth);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-fprintf(fid,'%s\r\n','\put(7,19.5){\makebox(7,0.5)[tl]{');
-fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-fprintf(fid,'%s\r\n',file_numresp);
-fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-fprintf(fid,'%s\r\n','\put(7,19){\makebox(7,0.5)[tl]{');
-fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-fprintf(fid,'%s\r\n',file_fer);
-fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-% fprintf(fid,'%s\r\n','\put(8,18.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_timebtwresp);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-% fprintf(fid,'%s\r\n','\put(7,17.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_IRlength);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-% fprintf(fid,'%s\r\n','\put(7,17){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_Txpower);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-% fprintf(fid,'%s\r\n','\put(7,16.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Measurement duration & $',num2str(1,'%3.1f'),'\,$s\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-
-% fprintf(fid,'%s\r\n','\put(7,16){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Tx antenna: & Powerwave 7760.00\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,15.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Tx polarization: & Slanted\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% %fprintf(fid,'%s\r\n','\put(8,16.5){\makebox(7,0.5)[tl]{');
-% %fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% %fprintf(fid,'%s\r\n','Tx number of active elements:& $4$\\');
-% %fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% % fprintf(fid,'%s\r\n','\put(7,15){\makebox(7,0.5)[tl]{');
-% % fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% % fprintf(fid,'%s\r\n','Tx element spacing: & xxxmm\\');
-% % fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,15){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Tx antenna height above rooftop: & $3$m\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,14,5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_Txdirection);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,14){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_Txdirection2);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,13.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Rx antenna: & TCLIP-DE3G\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,13){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Rx polarization: & vertical\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,12.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Rx number of active elements: & $2$\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,12){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','Rx element spacing: & $0.5\lambda - 75$mm\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,11.5){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n',file_Rxheight);
-% fprintf(fid,'%s\r\n','\end{tabularx}}} \\');
-%
-% fprintf(fid,'%s\r\n','\put(7,11){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','SNR for the multiuser capacity & $10\,$dB \\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}}');
-
-% fprintf(fid,'%s\r\n','\put(7,10.7){\makebox(7,0.5)[tl]{');
-% fprintf(fid,'%s\r\n','\begin{tabularx}{7cm}{Xr}');
-% fprintf(fid,'%s\r\n','\bf{Rice factor} & \bf{',num2str(kfact,'%3.1f'),'}\\');
-% fprintf(fid,'%s\r\n','\end{tabularx}}}');
-% fprintf(fid,'%s\r\n','\normalsize \\');
-
-% file_align=['\put(7.2,16.3){\makebox (7,1.5) {\epsfig{file=' filename_align ', height=1.3cm} } }'];
-% fprintf(fid,'%s\r\n',file_align);
-% fprintf(fid,'%s\r\n','\put(7.35,18){\scriptsize{Align matrix:}} \\');
-
-% file_corr=['\put(7.2,16.3){\makebox (7,2) {\epsfig{file=' filename_corr ', height=1.8cm} } }'];
-% fprintf(fid,'%s\r\n',file_corr);
-% fprintf(fid,'%s\r\n','\put(7.35,18.5){\scriptsize{Correlation matrix:}} \\');
-
-file_gps=['\put(0,16.5){\makebox (7,4.5) {\epsfig{file=' filename_gps ', width=6cm} } }'];
-fprintf(fid,'%s\r\n',file_gps);
-fprintf(fid,'%s\r\n','\put(0,21.3){\scriptsize{Plot 1: Map of the measurement run}} \\');
-
-% file_gains=['\put(7.35,11){\makebox (7,4.5) {\epsfig{file=' filename_gains ', height=5cm} } }'];
-% fprintf(fid,'%s\r\n',file_gains);
-% fprintf(fid,'%s\r\n','\put(7.35,15.8){\scriptsize{Effective User Gains:}} \\');
-
-file_pdp=['\put(0,11){\makebox (7,4.5) {\epsfig{file=' filename_pdp ', height=5cm} } }'];
-fprintf(fid,'%s\r\n',file_pdp);
-fprintf(fid,'%s\r\n','\put(0,15.8){\scriptsize{Plot 2: Power delay profile}} \\');
-
-file_rssi=['\put(7.35,11){\makebox (7,4.5) {\epsfig{file=' filename_rssi ', height=5cm} } }'];
-fprintf(fid,'%s\r\n',file_rssi);
-fprintf(fid,'%s\r\n','\put(7.35,15.8){\scriptsize{Plot 3: Receive power over time}} \\');
-
-% file_cap_4U_iid=['\put(0,5.5){\makebox (7,4.5) {\epsfig{file=' filename_cap_4U_iid ', height=5cm} } }'];
-% fprintf(fid,'%s\r\n',file_cap_4U_iid);
-% fprintf(fid,'%s\r\n','\put(0,10.3){\scriptsize{CDF of multiuser capacity (10dB SNR):}} \\');
-
-file_cap_4U=['\put(0,5.5){\makebox (7,4.5) {\epsfig{file=' filename_cap_4U ', height=5cm} } }'];
-fprintf(fid,'%s\r\n',file_cap_4U);
-fprintf(fid,'%s\r\n','\put(0,10.3){\scriptsize{Plot 4: SU vs.\ MU with max.\ multipl.\ gain}} \\');
-
-file_cap_2U=['\put(7.35,5.5){\makebox (7,4.5) {\epsfig{file=' filename_cap_2U ', height=5cm} } }'];
-fprintf(fid,'%s\r\n',file_cap_2U);
-fprintf(fid,'%s\r\n','\put(7.35,10.3){\scriptsize{Plot 5: SU vs.\ MU with equal multipl.\ gain}} \\');
-
-file_cap_2Tx=['\put(0,0){\makebox (7,4.5) {\epsfig{file=' filename_cap_2Tx ', height=5cm} } }'];
-fprintf(fid,'%s\r\n',file_cap_2Tx);
-fprintf(fid,'%s\r\n','\put(0,4.8){\scriptsize{Plot 6: Two Tx antennas vs.\ four Tx antennas}} \\');
-
-file_cap_AS=['\put(7.35,0){\makebox (7,4.5) {\epsfig{file=' filename_cap_AS ', height=5cm} } }'];
-fprintf(fid,'%s\r\n',file_cap_AS);
-fprintf(fid,'%s\r\n','\put(7.35,4.8){\scriptsize{Plot 7: No antenna selection vs.\ antenna selection}} \\');
-
-fprintf(fid,'%s\r\n','}');
-fprintf(fid,'%s\r\n','\end{picture}');
-
-err=fclose(fid);
-
diff --git a/openair1/EMOS/MATLAB/EMOS_generate_LaTex_presentation.m b/openair1/EMOS/MATLAB/EMOS_generate_LaTex_presentation.m
deleted file mode 100755
index b4ddd22f83..0000000000
--- a/openair1/EMOS/MATLAB/EMOS_generate_LaTex_presentation.m
+++ /dev/null
@@ -1,36 +0,0 @@
-filename_rssi = sprintf('figs/idx_%d_rx_rssi',idx);
-filename_gps = sprintf('figs/idx_%d_map_rx_rssi',idx);
-filename_cap = sprintf('figs/idx_%d_capacity',idx);
-filename_cap2 = sprintf('figs/idx_%d_capacity_AS',idx);
-filename_pdp = sprintf('figs/idx_%d_Dprofile',idx);
-filename_align = sprintf('figs/idx_%d_align',idx);
-filename_MUgains = sprintf('figs/idx_%d_MUgains',idx);
-
-% system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-
-fprintf(fdp,'\\frame {\n');
-fprintf(fdp,' \\frametitle{Measurement %d}\n', idx);
-fprintf(fdp,' \\includegraphics[height=8cm]{%s}\n',fullfile(pwd,filename_gps));
-fprintf(fdp,'}\n');
-
-fprintf(fdp,'\\frame {\n');
-fprintf(fdp,' \\frametitle{Measurement %d}\n', idx);
-fprintf(fdp,' \\includegraphics[height=8cm]{%s}\n',fullfile(pwd,filename_pdp));
-fprintf(fdp,'}\n');
-
-fprintf(fdp,'\\frame {\n');
-fprintf(fdp,' \\frametitle{Measurement %d}\n', idx);
-fprintf(fdp,' \\includegraphics[height=8cm]{%s}\n',fullfile(pwd,filename_cap));
-fprintf(fdp,'}\n');
-
-fprintf(fdp,'\\frame {\n');
-fprintf(fdp,' \\frametitle{Measurement %d}\n', idx);
-fprintf(fdp,' \\includegraphics[height=8cm]{%s}\n',fullfile(pwd,filename_cap2));
-fprintf(fdp,'}\n');
-
-fprintf(fdp,'\\frame {\n');
-fprintf(fdp,' \\frametitle{Measurement %d}\n', idx);
-fprintf(fdp,' \\includegraphics[height=8cm]{%s}\n',fullfile(pwd,filename_MUgains));
-fprintf(fdp,'}\n');
-
diff --git a/openair1/EMOS/MATLAB/IWF_4users.m b/openair1/EMOS/MATLAB/IWF_4users.m
deleted file mode 100755
index 00dc49c40d..0000000000
--- a/openair1/EMOS/MATLAB/IWF_4users.m
+++ /dev/null
@@ -1,25 +0,0 @@
-function power = IWF_4users(s,totalenergy)
-
-j=length(s);
-if nargin ==1
- totalenergy = 1;
-end
-
-betas = 1./s;
-[betas_sort,index] = sort(betas);
-
-mu_star = 0;
-for k=j:-1:1
- mu = (totalenergy+sum(betas_sort(1:k)))/k;
-
- if ((mu - betas_sort(k))>0)
- mu_star = mu;
- break
- end
-end
-
-
-power = max(mu_star - betas,0);
-
-
-%(sum(power)>(totalenergy+0.000000000001))
diff --git a/openair1/EMOS/MATLAB/MAC_to_BC/MAC_to_BC.m b/openair1/EMOS/MATLAB/MAC_to_BC/MAC_to_BC.m
deleted file mode 100755
index 31699efa12..0000000000
--- a/openair1/EMOS/MATLAB/MAC_to_BC/MAC_to_BC.m
+++ /dev/null
@@ -1,65 +0,0 @@
-%MAC to BC Transformation
-%Authors: Nihar Jindal, Wonjong Rhee, Sriram Vishwanath, Syed Jafar, Andrea
-%Goldsmith
-%Date: 6/20/05
-
-function Downlink = MAC_to_BC(H, Uplink);
-
-%assumes users decoded in increasing order for uplink: 1,2,...,K,
-%opposite encoding order for downlink (K, K-1,..., 1)
-
-%Function Inputs
-%H: triply indexed UPLINK channel
-% H(:,:,k) refers to the UPLINK channel of the kth receiver
-% H(:,:,k) is an (M x N) matrix
-%Uplink: triply indexed matrices containing the UPLINK covariance matrices
-% Uplink(:,:,k) is the (N x N) covariance of user k
-
-%Function Outputs
-%Downlink: triply indexed matrices containing the DOWNLINK covariance matrices
-% Downlink(:,:,k) is the (M x M) covariance of user k
-
-%Other Variables
-%M: # of transmit antennas in downlink channel
-%N: # of receive antennas in downlink channel
-%K: # of receivers
-
-%Determine # of antennas, users
-[M,N,K] = size(H);
-
-for k = 1:K
-
- %Compute A_i (equation 34)
- temp_sum = eye(M,M);
- for l = (k+1):K
- temp_sum = temp_sum + H(:,:,l) * Uplink(:,:,l) * H(:,:,l)';
- end;
- B(:,:,k) = temp_sum;
-
- %Compute B_i (equation 34)
- temp_sum = eye(N,N);
- for l = 1:(k-1)
- temp_sum = temp_sum + H(:,:,k)' * Downlink(:,:,l) * H(:,:,k);
- end;
- A(:,:,k) = temp_sum;
-
- %take SVD of effective channel
- Hk_eff = B(:,:,k)^(-0.5) * H(:,:,k) * A(:,:,k)^(-0.5);
- [r,t] = size(Hk_eff);
- if (t > r)
- [F,D,G] = svd(Hk_eff',0);
- Fk = G;
- Gk = F;
- else
- [Fk,D,Gk] = svd(Hk_eff,0);
- end;
-
- %Compute downlink covariance (equation 35)
- Downlink(:,:,k) = B(:,:,k)^(-0.5) * Fk * Gk' * A(:,:,k)^(0.5) * Uplink(:,:,k) * A(:,:,k)^(0.5) * Gk * Fk' * B(:,:,k)^(-0.5);
-
-end;
-
-
-
-
-
diff --git a/openair1/EMOS/MATLAB/MAC_to_BC/iterative_waterfill.m b/openair1/EMOS/MATLAB/MAC_to_BC/iterative_waterfill.m
deleted file mode 100755
index 63f8a712c1..0000000000
--- a/openair1/EMOS/MATLAB/MAC_to_BC/iterative_waterfill.m
+++ /dev/null
@@ -1,73 +0,0 @@
-%Sum Power Iterative Waterfilling Algorithm
-%Authors: Nihar Jindal, Wonjong Rhee, Sriram Vishwanath, Syed Jafar, Andrea
-%Goldsmith
-%Date: 6/20/05
-
-function [capacity, Covariances] = iterative_waterfill(H, P, iterations);
-
-%Function Inputs
-%H: triply indexed UPLINK channel
-% H(:,:,k) refers to the UPLINK channel of the kth receiver
-% H(:,:,k) is an (M x N) matrix
-%P: power in linear units
-%iterations: # of iterations performed
-
-%Function Outputs
-%capacity: Sum rate capacity in bps/Hz
-%Covariances: triply indexed matrices containing the capacity achieving
-% UPLINK covariance matrices
-% Covariances(:,:,k) is the (N x N) covariance of user k
-
-%Other Variables
-%M: # of transmit antennas in downlink channel
-%N: # of receive antennas in downlink channel
-%K: # of receivers
-
-%Determine # of antennas, users
-[M,N,K] = size(H);
-
-%Initialize covariances to zero
-Covariances = zeros(N,N,K);
-
-for wf_iterations = 1:iterations
-
- sum_int = eye(M);
- for k = 1:K
- sum_int = sum_int + H(:,:,k) * Covariances(:,:,k) * H(:,:,k)';
- end;
-
- %Generate effective channels of each user (using covariances from the
- %previous step)
- for k = 1:K
- H_eff(:,:,k) = (sum_int - H(:,:,k) * Covariances(:,:,k) * H(:,:,k)')^(-0.5) * H(:,:,k);
- end;
-
- %Perform waterfilling across effective channels
- [temp, Ex] = waterfill_block(H_eff, P);
-
- %Update covariances of all users
- %Use original algorithm for first 5 iterations to speed up convergence
- if (wf_iterations <= 5)
- %Updated covariances set equal to new covariances
- for k = 1:K
- Covariances(:,:,k) = Ex(:,:,k);
- end;
- else
- %Update covariances with mixture of old and new covariances
- for k = 1:K
- Covariances(:,:,k) = ((K-1)/K)*Covariances(:,:,k) + (1/K) * Ex(:,:,k);
- end;
- end;
-end;
-
-%Compute final sum rate
-sum_int = eye(M);
-for k = 1:K
- sum_int = sum_int + H(:,:,k) * Covariances(:,:,k) * H(:,:,k)';
-end;
-capacity = real(log2(det(sum_int)));
-
-
-
-
-
diff --git a/openair1/EMOS/MATLAB/MAC_to_BC/sample.m b/openair1/EMOS/MATLAB/MAC_to_BC/sample.m
deleted file mode 100755
index d8c6a1c7d1..0000000000
--- a/openair1/EMOS/MATLAB/MAC_to_BC/sample.m
+++ /dev/null
@@ -1,29 +0,0 @@
-clear;
-
-M = 2; % BS antennas
-N = 1; % UE antennas
-K = 2; % users
-
-P = 10; % total transmit power = linear SNR
- % (the noise variance is 1)
-
-NFrames = 1000;
-capacity = zeros(1,NFrames);
-
-for l = 1:NFrames
-%Choose channel for iteration
-%UPLINK CHANNEL!!!!!!
-%H(:,:,k) represents the M x N uplink channel of the kth user
-H = 1/sqrt(2) * (randn(M,N,K) + 1i * randn(M,N,K));
-
-% if Hd(:,:,k) is the N x M downlink channel of the kth user
-% H(:,:,k) = Hd(:,:,k)' is the M x N uplink channel
-
-%calculate DPC sum rate with iterative waterfilling
-[capacity(l) Covar] = iterative_waterfill(H,P,50);
-
-%compute downlink covariance matrices
-%Downlink = MAC_to_BC(H, Covar)
-end
-
-cdfplot(capacity)
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/MAC_to_BC/waterfill_block.m b/openair1/EMOS/MATLAB/MAC_to_BC/waterfill_block.m
deleted file mode 100755
index b89d76e888..0000000000
--- a/openair1/EMOS/MATLAB/MAC_to_BC/waterfill_block.m
+++ /dev/null
@@ -1,90 +0,0 @@
-%Block Diagonal Waterfilling
-%Authors: Nihar Jindal, Wonjong Rhee, Sriram Vishwanath, Syed Jafar, Andrea
-%Goldsmith
-%Date: 6/20/05
-
-function [capacity, Ex] = waterfill_block(H, P);
-%Returns optimal covariance matrix and capacity for
-%block diagonal channel H, where H(:,:,1) is first channel, H(:,:,2) is 2nd
-%etc.
-
-%Function Inputs
-%H: triply indexed channel
-% H(:,:,k) refers to the UPLINK channel of the kth receiver
-% H(:,:,k) is an (M x N) matrix
-%P: power in linear units
-
-%Function Outputs
-%capacity: Capacity in bps/Hz
-%Ex: triply indexed matrices containing the capacity achieving
-% covariance matrices
-% Ex(:,:,k) is the (N x N) covariance of user k
-
-
-%Other Variables
-%M: # of base station antennas in downlink channel
-%N: # of terminal antennas in downlink channel
-
-
-
-[M,N,K] = size(H);
-
-for index = 1:K
-
- %Perform SVD of channel
- v = svd(H(:,:,index)' * H(:,:,index));
-
- %Create vector with all singular values
- if (index == 1)
- s = v;
- else
- s = [s; v];
- end;
-end;
-
-channels = length(s);
-
-s = real(s);
-%Eliminate zeroes
-s = max(s, 1e-10);
-
-noise_vector = 1./s;
-unsortedN = noise_vector;
-%Put noise variances in increasing order
-noise_vector = sort(noise_vector);
-
-last = channels; %index of worst channel allocated non-zero power
-loop = 1;
-
-%Find channels allocated non-zero power
-while (loop)
- water = noise_vector(last); %water level
- power = sum(max(water - noise_vector, 0));
- if (power > P)
- last = last - 1;
- else
- loop = 0;
- end;
-end;
-
-%Calculate optimal water level
-water = 1/last * (P + sum(noise_vector(1:last)));
-
-capacity = 0;
-
-Ex = zeros(N,N,K);
-%Compute covariance matrix for each user
-for index = 1:K
-%Take svd of channel
-[u,v,w] = svd(H(:,:,index)' * H(:,:,index));
-s = svd(H(:,:,index)' * H(:,:,index));
-s = real(s);
-%eliminate zeroes
-s = max(s, 1e-10);
-noise_vector = 1./s;
-
-Ex(:,:,index) = u * diag(max((water- noise_vector),0)) * u';
-capacity = capacity + real(log2(det(eye(M) + H(:,:,index) *Ex(:,:,index)* H(:,:,index)')));
-end;
-
-
diff --git a/openair1/EMOS/MATLAB/MISO_MMSE.m b/openair1/EMOS/MATLAB/MISO_MMSE.m
deleted file mode 100755
index 500d3d48b6..0000000000
--- a/openair1/EMOS/MATLAB/MISO_MMSE.m
+++ /dev/null
@@ -1,34 +0,0 @@
-function [CAP,eff_gain,eigval] = MISO_MMSE(HS,n_p,mu)
-
-CAP =0;
-
-tt= size(HS);
-
-if (HS == zeros(tt(1),tt(2)))
- CAP = 0;
- eff_gain = 0;
-else
- HH = HS*HS'+mu*eye(tt(1));
-
- if nargout == 3
- eigval = eig(HH);
- end
-
- HH_inv = inv(HH);
- %eff_gain = real(1./diag(tmp)).';
- eff_gain = 1/real(trace(HH_inv));
-
- % W = inv(HS'*HS+mu*eye(t(2)))*HS'
- W = HS'*HH_inv;
-
- % normalize W such that trace(W'*W)=1
- % this way we do not need the factor 1/NTx in the capacity formula
- W = W/sqrt(trace(W'*W));
- HW = abs(HS*W).^2;
-
- for v = 1:length(HW)
- CAP = CAP + log2(1 + (HW(v,v)/(sum(HW(v,:)) - HW(v,v) + n_p)));
- end %of for loop
-
-end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/MMSE_test.m b/openair1/EMOS/MATLAB/MMSE_test.m
deleted file mode 100755
index 3d2ff962a9..0000000000
--- a/openair1/EMOS/MATLAB/MMSE_test.m
+++ /dev/null
@@ -1,88 +0,0 @@
-function megaMISO(SNRdB,Nsamples)
-
-%%% Flags
-save_mode = 0;
-
-Nfreq = 20;
-% Nsamples = 2000;
-
-% SNRdB=10;
-M_Tx=4;
-N_Rx=1;
-SNR=10^(SNRdB/10);
-%%% MMSE regularization factor
-mu = M_Tx/SNR;
-factor = 0.5*mu;
-%%% noise variance
-n_p=1/SNR;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Channel generation
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% generate iid channel matrices SU
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-% MU Capacity calculations - 2users
-Cap_2U_MMSE_iid=zeros(Nfreq,Nsamples);
-Cap_2U_MMSEfactor_iid=zeros(Nfreq,Nsamples);
-
-Users=4;
-for k=1:Users
-HH_4U_4x1=1/sqrt(2)*complex(randn(N_Rx,M_Tx,Nfreq,Nsamples,k),randn(N_Rx,M_Tx,Nfreq,Nsamples,k));
-end
-HH_2U_4x1=HH_4U_4x1(:,:,:,:,[1:2]);
-
-
-
-for k1=1:Nfreq
- for k2=1:Nsamples
- HS = HH_2U_4x1(:,:,k1,k2,[1:2]);
-% HS = squeeze(HS).';
-[gain,Cap_2U_MMSE_iid(k1,k2)] = MISO_MMSE(M_Tx,HS,n_p,mu);
-[gain_factor,Cap_2U_MMSEfactor_iid(k1,k2)] = MISO_MMSE(M_Tx,HS,n_p,factor);
-
- end
-end
-
-
-% MU Capacity calculations - 4users
-Cap_4U_MMSE_iid=zeros(Nfreq,Nsamples);
-
-for k1=1:Nfreq
- for k2=1:Nsamples
- HS = HH_4U_4x1(:,:,k1,k2,[1:Users]);
-% HS = squeeze(HS).';
-[gain,Cap_4U_MMSE_iid(k1,k2)] = MISO_MMSE(M_Tx,HS,n_p,mu);
- end
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% CDF calculation
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% MU
-[Cap_2U_MMSE_iid_f,Cap_2U_MMSE_iid_x] = ecdf(Cap_2U_MMSE_iid(:));
-[Cap_2U_MMSEfactor_iid_f,Cap_2U_MMSEfactor_iid_x] = ecdf(Cap_2U_MMSEfactor_iid(:));
-[Cap_4U_MMSE_iid_f,Cap_4U_MMSE_iid_x] = ecdf(Cap_4U_MMSE_iid(:));
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Plot results
-figure(20)
-hold off
-plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r')
-hold on
-plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'b')
-plot(Cap_2U_MMSEfactor_iid_x,Cap_2U_MMSEfactor_iid_f,'k')
-ylabel('CDF');
-xlabel('Capacity (bits/ch.use)');
-legend('MMSE 4x1 4us iid','MMSE 4x1 2 us iid ','MMSE 4x1 2 us iid factor test')
-grid on
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
diff --git a/openair1/EMOS/MATLAB/agc_sim/agc_sim.m b/openair1/EMOS/MATLAB/agc_sim/agc_sim.m
deleted file mode 100755
index 70ed44c089..0000000000
--- a/openair1/EMOS/MATLAB/agc_sim/agc_sim.m
+++ /dev/null
@@ -1,59 +0,0 @@
-% this script simulates the agc in cbmimo1 cards
-
-nFrames = 1e4;
-
-coef = 0.5; % filter coefficient
-hist = 10; % hysterisis
-step = 1; % step size of agc in dB
-
-TARGET_RX_POWER = 50; % in dB
-TX_POWER_START = 70;
-
-gain_test = 0;
-gain_agc = 0;
-direction = 0;
-
-TX_POWER = zeros(1,nFrames);
-RX_POWER = zeros(1,nFrames);
-rx_power_fil = zeros(1,nFrames);
-
-for frame = 1:nFrames
- % Transmitter
- if (mod(frame,100) == 0)
- if (gain_test >= 0)
- direction = -1;
- elseif (gain_test <=-40)
- direction = 1;
- end
- %else don't change direction
- gain_test = gain_test + direction;
- end
- TX_POWER(frame) = TX_POWER_START + gain_test + randn(1);
-
- % Receiver
- RX_POWER(frame) = TX_POWER(frame) + gain_agc;
-
- % Filter rx_power to reduce measurement noise
- if (frame == 1)
- rx_power_fil(frame) = RX_POWER(frame);
- else
- rx_power_fil(frame) = (rx_power_fil(frame-1) * coef) + (RX_POWER(frame) * (1-coef));
- end
-
- % Gain control with hysterisis
- if ( (rx_power_fil(frame) < TARGET_RX_POWER - hist/2) )
- gain_agc = gain_agc + step;
- elseif ( (rx_power_fil(frame) > TARGET_RX_POWER + hist/2) )
- gain_agc = gain_agc - step;
- end
-
- %RX_POWER(frame) = RX_POWER(frame) + gain_agc;
-end
-
-%% plot
-figure(1)
-hold off
-plot(TX_POWER)
-hold on
-plot(rx_power_fil,'g')
-plot(RX_POWER,'r')
diff --git a/openair1/EMOS/MATLAB/antenna_selection.m b/openair1/EMOS/MATLAB/antenna_selection.m
deleted file mode 100644
index b3bf912da0..0000000000
--- a/openair1/EMOS/MATLAB/antenna_selection.m
+++ /dev/null
@@ -1,27 +0,0 @@
-function [H,antenna_index] = antenna_selection(HS)
-
-t = size(HS);
-subcarr_chunk = 5; % number of subcarriers per chunk
-antenna_index = zeros(t(3)/subcarr_chunk,t(5));
-H = zeros(1,t(2),t(3),t(4),t(5));
-
-if (t(1) == 2) %%%selection
- for chunk = 1:t(3)/subcarr_chunk
- for usr =1:t(5)
- chunks = (chunk-1)*subcarr_chunk+1:chunk*subcarr_chunk;
- if (norm(squeeze(HS(1,:,chunks,:,usr)),'fro') > norm(squeeze(HS(2,:,chunks,:,usr)),'fro'))
- antenna_index(chunk,usr) = 1;
- H(:,:,chunks,:,usr) = HS(1,:,chunks,:,usr);
- else
- antenna_index(chunk,usr) = 2;
- H(:,:,chunks,:,usr) = HS(2,:,chunks,:,usr);
- end
- end
- end
-else
- %warning('[antenna selection] No antennas to select from :(');
- H = HS;
- antenna_index = [];
-end
-
-
diff --git a/openair1/EMOS/MATLAB/cap_MMSE.m b/openair1/EMOS/MATLAB/cap_MMSE.m
deleted file mode 100644
index df65fe5d6a..0000000000
--- a/openair1/EMOS/MATLAB/cap_MMSE.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function CAP = cap_MMSE(G,n_p)
-
-CAP = 0;
-
-[N_Rx, N_Tx] = size(G);
-
-if (G == zeros(N_Rx,N_Tx))
- CAP = 0;
-else
- iG = inv(1./(n_p*N_Tx)*G'*G + eye(N_Tx));
- %MF = iG * G';
- %MF = G';
-
- % HW = abs(MF*G);
-
- for v = 1:N_Tx
- % MMSE (see Paulraj 2002 Eqn. 7.49)
- CAP = CAP + log2(1/iG(v,v));
- end %of for loop
-
-end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/cap_ZF.m b/openair1/EMOS/MATLAB/cap_ZF.m
deleted file mode 100644
index 99f11d3ef6..0000000000
--- a/openair1/EMOS/MATLAB/cap_ZF.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function CAP = cap_ZF(G,n_p)
-
-CAP = 0;
-
-[N_Rx, N_Tx] = size(G);
-
-if (G == zeros(N_Rx,N_Tx))
- CAP = 0;
-else
- iG = inv(G'*G);
- %MF = iG * G';
- %MF = G';
-
- % HW = abs(MF*G);
-
- for v = 1:N_Tx
- % ZF (see Paulraj 2002 Eqn. 7.43)
- CAP = CAP + log2(1 + 1/(N_Tx*n_p*iG(v,v)));
- end %of for loop
-
-end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/cap_gui.m b/openair1/EMOS/MATLAB/cap_gui.m
deleted file mode 100644
index 2a86dccec0..0000000000
--- a/openair1/EMOS/MATLAB/cap_gui.m
+++ /dev/null
@@ -1,165 +0,0 @@
-function varargout = cap_gui(varargin)
-% CAP_GUI M-file for cap_gui.fig
-% CAP_GUI, by itself, creates a new CAP_GUI or raises the existing
-% singleton*.
-%
-% H = CAP_GUI returns the handle to a new CAP_GUI or the handle to
-% the existing singleton*.
-%
-% CAP_GUI('CALLBACK',hObject,eventData,handles,...) calls the local
-% function named CALLBACK in CAP_GUI.M with the given input arguments.
-%
-% CAP_GUI('Property','Value',...) creates a new CAP_GUI or raises the
-% existing singleton*. Starting from the left, property value pairs are
-% applied to the GUI before cap_gui_OpeningFcn gets called. An
-% unrecognized property name or invalid value makes property application
-% stop. All inputs are passed to cap_gui_OpeningFcn via varargin.
-%
-% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
-% instance to run (singleton)".
-%
-% See also: GUIDE, GUIDATA, GUIHANDLES
-
-% Edit the above text to modify the response to help cap_gui
-
-% Last Modified by GUIDE v2.5 29-Nov-2007 16:51:22
-
-% Begin initialization code - DO NOT EDIT
-gui_Singleton = 1;
-gui_State = struct('gui_Name', mfilename, ...
- 'gui_Singleton', gui_Singleton, ...
- 'gui_OpeningFcn', @cap_gui_OpeningFcn, ...
- 'gui_OutputFcn', @cap_gui_OutputFcn, ...
- 'gui_LayoutFcn', [] , ...
- 'gui_Callback', []);
-if nargin && ischar(varargin{1})
- gui_State.gui_Callback = str2func(varargin{1});
-end
-
-if nargout
- [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
-else
- gui_mainfcn(gui_State, varargin{:});
-end
-% End initialization code - DO NOT EDIT
-
-% --- Executes just before cap_gui is made visible.
-function cap_gui_OpeningFcn(hObject, eventdata, handles, varargin)
-% This function has no output args, see OutputFcn.
-% hObject handle to figure
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-% varargin command line arguments to cap_gui (see VARARGIN)
-
-% Choose default command line output for cap_gui
-handles.output = hObject;
-
-% Update handles structure
-guidata(hObject, handles);
-
-% This sets up the initial plot - only do when we are invisible
-% so window can get raised using cap_gui.
-if strcmp(get(hObject,'Visible'),'off')
- plot(rand(5));
-end
-
-% UIWAIT makes cap_gui wait for user response (see UIRESUME)
-% uiwait(handles.figure1);
-
-
-% --- Outputs from this function are returned to the command line.
-function varargout = cap_gui_OutputFcn(hObject, eventdata, handles)
-% varargout cell array for returning output args (see VARARGOUT);
-% hObject handle to figure
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-
-% Get default command line output from handles structure
-varargout{1} = handles.output;
-
-% --- Executes on button press in pushbutton1.
-function pushbutton1_Callback(hObject, eventdata, handles)
-% hObject handle to pushbutton1 (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-axes(handles.axes1);
-cla;
-
-popup_sel_index = get(handles.popupmenu1, 'Value');
-switch popup_sel_index
- case 1
- plot(rand(5));
- case 2
- plot(sin(1:0.01:25.99));
- case 3
- bar(1:.5:10);
- case 4
- plot(membrane);
- case 5
- surf(peaks);
-end
-
-
-% --------------------------------------------------------------------
-function FileMenu_Callback(hObject, eventdata, handles)
-% hObject handle to FileMenu (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-
-
-% --------------------------------------------------------------------
-function OpenMenuItem_Callback(hObject, eventdata, handles)
-% hObject handle to OpenMenuItem (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-file = uigetfile('*.fig');
-if ~isequal(file, 0)
- open(file);
-end
-
-% --------------------------------------------------------------------
-function PrintMenuItem_Callback(hObject, eventdata, handles)
-% hObject handle to PrintMenuItem (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-printdlg(handles.figure1)
-
-% --------------------------------------------------------------------
-function CloseMenuItem_Callback(hObject, eventdata, handles)
-% hObject handle to CloseMenuItem (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],...
- ['Close ' get(handles.figure1,'Name') '...'],...
- 'Yes','No','Yes');
-if strcmp(selection,'No')
- return;
-end
-
-delete(handles.figure1)
-
-
-% --- Executes on selection change in popupmenu1.
-function popupmenu1_Callback(hObject, eventdata, handles)
-% hObject handle to popupmenu1 (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles structure with handles and user data (see GUIDATA)
-
-% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array
-% contents{get(hObject,'Value')} returns selected item from popupmenu1
-
-
-% --- Executes during object creation, after setting all properties.
-function popupmenu1_CreateFcn(hObject, eventdata, handles)
-% hObject handle to popupmenu1 (see GCBO)
-% eventdata reserved - to be defined in a future version of MATLAB
-% handles empty - handles not created until after all CreateFcns called
-
-% Hint: popupmenu controls usually have a white background on Windows.
-% See ISPC and COMPUTER.
-if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
- set(hObject,'BackgroundColor','white');
-end
-
-set(hObject, 'String', {'plot(rand(5))', 'plot(sin(1:0.01:25))', 'bar(1:.5:10)', 'plot(membrane)', 'surf(peaks)'});
-
diff --git a/openair1/EMOS/MATLAB/cap_iid.m b/openair1/EMOS/MATLAB/cap_iid.m
deleted file mode 100755
index 8b1c24b779..0000000000
--- a/openair1/EMOS/MATLAB/cap_iid.m
+++ /dev/null
@@ -1,85 +0,0 @@
-n2=1;
-
-%% generate iid channel matrices
-HH1=randn(1,4,n2,10000)/sqrt(2)+j*randn(1,4,n2,10000)/sqrt(2);
-HH2=randn(2,4,n2,10000)/sqrt(2)+j*randn(2,4,n2,10000)/sqrt(2);
-%HH2=randn(2,2,n2,10000)/sqrt(2)+j*randn(2,2,n2,10000)/sqrt(2);
-HH4=randn(4,4,n2,10000)/sqrt(2)+j*randn(4,4,n2,10000)/sqrt(2);
-
-HMU=randn(4,4,1,10000,4)/sqrt(2)+j*randn(4,4,1,10000,4)/sqrt(2);
-
-M_Tx=4;
-M_Rx=2;
-SNR=10;
-
-% fk: We do not need this normalization, since E(|h_{i,j}|^2) = 1!
-% PP=squeeze(mean(mean(mean(abs(HH).^2,1),2),3));
-% PP_mean=PP;
-% PP=squeeze(mean(mean(mean(abs(HH2).^2,1),2),3));
-% PP2_mean=PP;
-% PP=squeeze(mean(mean(mean(abs(HH1).^2,1),2),3));
-% PP1_mean=PP;
-
-%% calcualte capacity
-%Cap4x2_iid=zeros(size(HH,3),size(HH,4));
-Cap1x4_iid=zeros(size(HH1,3),size(HH1,4));
-Cap2x4_iid=zeros(size(HH1,3),size(HH1,4));
-Cap4x4_iid=zeros(size(HH1,3),size(HH1,4));
-for k1=1:size(HH1,3)
- for k2=1:size(HH1,4)
- %Cap4x2_iid(k1,k2)=abs(log2(det(diag(ones(2,1))+SNR/4*HH(:,:,k1,k2)*HH(:,:,k1,k2)')));
- Cap1x4_iid(k1,k2)=abs(log2(det(diag(ones(1))+SNR/4*HH1(:,:,k1,k2)*HH1(:,:,k1,k2)')));
- Cap2x4_iid(k1,k2)=abs(log2(det(diag(ones(2,1))+SNR/4*HH2(:,:,k1,k2)*HH2(:,:,k1,k2)')));
- Cap4x4_iid(k1,k2)=abs(log2(det(diag(ones(4,1))+SNR/4*HH4(:,:,k1,k2)*HH4(:,:,k1,k2)')));
- end
-end
-
-CAP_SU1x1_TDMA_ML_iid = capacity_SU_TDMA_ML(HMU(1,1,:,:,:),SNR,0);
-CAP_SU2x1_TDMA_ML_iid = capacity_SU_TDMA_ML(HMU(1:2,1,:,:,:),SNR,0);
-CAP_SU2x2_TDMA_ML_iid = capacity_SU_TDMA_ML(HMU(1:2,1:2,:,:,:),SNR,0);
-CAP_SU_TDMA_ML_iid = capacity_SU_TDMA_ML(HMU(1:2,:,:,:,:),SNR,0);
-CAP_SU_TDMA_DSTTD_iid = capacity_SU_TDMA_DSTTD(HMU(1:2,:,:,:,:),SNR,0);
-CAP_SU2x2_TDMA_DSTTD_iid = capacity_SU_TDMA_DSTTD(HMU(1,1:2,:,:,:),SNR,0);
-CAP_SU1x4_TDMA_CL_ML_iid = capacity_SU_TDMA_CL_ML(HMU(1,:,:,:,:),SNR,0);
-CAP_SU2x4_TDMA_CL_ML_iid = capacity_SU_TDMA_CL_ML(HMU(1:2,:,:,:,:),SNR,0);
-CAP_SU4x4_TDMA_CL_ML_iid = capacity_SU_TDMA_CL_ML(HMU(1:4,:,:,:,:),SNR,0);
-
-
-%% plot results
-%[Cap4x2_iid_f,Cap4x2_iid_x] = ecdf(Cap4x2_iid(:));
-[Cap1x4_iid_f,Cap1x4_iid_x] = ecdf(Cap1x4_iid(:));
-[Cap2x4_iid_f,Cap2x4_iid_x] = ecdf(Cap2x4_iid(:));
-[Cap4x4_iid_f,Cap4x4_iid_x] = ecdf(Cap4x4_iid(:));
-
-[Cap_SU_TDMA_ML_iid_f,Cap_SU_TDMA_ML_iid_x] = ecdf(CAP_SU_TDMA_ML_iid(:));
-[Cap_SU1x1_TDMA_ML_iid_f,Cap_SU1x1_TDMA_ML_iid_x] = ecdf(CAP_SU1x1_TDMA_ML_iid(:));
-[Cap_SU2x1_TDMA_ML_iid_f,Cap_SU2x1_TDMA_ML_iid_x] = ecdf(CAP_SU2x1_TDMA_ML_iid(:));
-[Cap_SU2x2_TDMA_ML_iid_f,Cap_SU2x2_TDMA_ML_iid_x] = ecdf(CAP_SU2x2_TDMA_ML_iid(:));
-[Cap_SU_TDMA_DSTTD_iid_f,Cap_SU_TDMA_DSTTD_iid_x] = ecdf(CAP_SU_TDMA_DSTTD_iid(:));
-[Cap_SU2x2_TDMA_DSTTD_iid_f,Cap_SU2x2_TDMA_DSTTD_iid_x] = ecdf(CAP_SU2x2_TDMA_DSTTD_iid(:));
-[Cap_SU1x4_TDMA_CL_ML_iid_f,Cap_SU1x4_TDMA_CL_ML_iid_x] = ecdf(CAP_SU1x4_TDMA_CL_ML_iid(:));
-[Cap_SU2x4_TDMA_CL_ML_iid_f,Cap_SU2x4_TDMA_CL_ML_iid_x] = ecdf(CAP_SU2x4_TDMA_CL_ML_iid(:));
-[Cap_SU4x4_TDMA_CL_ML_iid_f,Cap_SU4x4_TDMA_CL_ML_iid_x] = ecdf(CAP_SU4x4_TDMA_CL_ML_iid(:));
-
-%%
-figure(78)
-hold off
-%plot(Cap1x1_iid_x,Cap1x1_iid_f,'g')
-plot(Cap1x4_iid_x,Cap1x4_iid_f)
-hold on
-plot(Cap2x4_iid_x,Cap2x4_iid_f,'r')
-plot(Cap4x4_iid_x,Cap4x4_iid_f,'k')
-plot(Cap_SU2x2_TDMA_ML_iid_x,Cap_SU2x2_TDMA_ML_iid_f,'c')
-plot(Cap_SU_TDMA_DSTTD_iid_x,Cap_SU_TDMA_DSTTD_iid_f,'m')
-%plot(Cap_SU2x2_TDMA_DSTTD_iid_x,Cap_SU2x2_TDMA_DSTTD_iid_f,'k')
-%plot(Cap_SU1x4_TDMA_CL_ML_iid_x,Cap_SU1x4_TDMA_CL_ML_iid_f,'b--')
-%plot(Cap_SU2x4_TDMA_CL_ML_iid_x,Cap_SU2x4_TDMA_CL_ML_iid_f,'r--')
-%plot(Cap_SU4x4_TDMA_CL_ML_iid_x,Cap_SU4x4_TDMA_CL_ML_iid_f,'k--')
-xlabel('bits/sec/Hz')
-ylabel('CDF')
-title('Capacity')
-legend('SU 4x1 iid','SU 4x2 iid','SU 4x4 iid','SU TDMA 2x2 iid ML','SU DSTTD TDMA 4x2 iid'); %,'SU CL TDMA 4x1 iid','SU CL TDMA 4x2 iid','SU CL TDMA 4x4 iid')
-grid on
-
-%% store results
-% save('cap_iid.mat','-V7','Cap*x','Cap*f');
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/cap_iid_measured.m b/openair1/EMOS/MATLAB/cap_iid_measured.m
deleted file mode 100755
index 62e06b7ad2..0000000000
--- a/openair1/EMOS/MATLAB/cap_iid_measured.m
+++ /dev/null
@@ -1,68 +0,0 @@
-%% generate iid channel matrices
-M_Tx=4;
-M_Rx=2;
-NFreq=40;
-NFrames=20000;
-SNRdB=10;
-SNR=10^(SNRdB/10);
-K_rice = 2;
-
-%% iid channel
-H_iid = randn(M_Rx,M_Tx,NFreq,NFrames)/sqrt(2)+j*randn(M_Rx,M_Tx,NFreq,NFrames)/sqrt(2);
-Cap4x2_iid = capacityEMOS(H_iid,SNR);
-Cap2x2_iid = capacityEMOS(H_iid(:,1:2,:,:),SNR);
-Cap1x1_iid = capacityEMOS(H_iid(1,1,:,:),SNR);
-[Cap4x2_iid_f,Cap4x2_iid_x] = ecdf(Cap4x2_iid(:));
-[Cap2x2_iid_f,Cap2x2_iid_x] = ecdf(Cap2x2_iid(:));
-[Cap1x1_iid_f,Cap1x1_iid_x] = ecdf(Cap1x1_iid(:));
-
-%% correlated channel
-H_corr = repmat(H_iid(1,:,:,:),[2,1,1,1]);
-Cap4x2_corr = capacityEMOS(H_corr,SNR);
-[Cap4x2_corr_f,Cap4x2_corr_x] = ecdf(Cap4x2_corr(:));
-
-%% rician channel
-% H_LOS = repmat(randn(M_Rx,M_Tx,NFreq)/sqrt(2)+j*randn(M_Rx,M_Tx,NFreq)/sqrt(2),[1,1,1,NFrames]);
-H_LOS = ones(M_Rx,M_Tx,NFreq,NFrames);
-H_Rice = sqrt(K_rice/(1+K_rice)) * H_LOS + sqrt(1/(1+K_rice)) * H_iid;
-Cap4x2_rice = capacityEMOS(H_Rice,SNR);
-%Cap2x2_iid = capacityEMOS(H_iid(:,1:2,:,:),SNR);
-%Cap1x1_iid = capacityEMOS(H_iid(1,1,:,:),SNR);
-[Cap4x2_rice_f,Cap4x2_rice_x] = ecdf(Cap4x2_rice(:));
-%[Cap2x2_iid_f,Cap2x2_iid_x] = ecdf(Cap2x2_iid(:));
-%[Cap1x1_iid_f,Cap1x1_iid_x] = ecdf(Cap1x1_iid(:));
-
-%% load the real channel
-%filename_emos = 'data_term1_idx0_20071128_190156.EMOS';
-%[H1,H1_fq,est,gps_data,NFrames] = load_estimates(filename_emos);
-%Cap4x2_meas = capacityEMOS(H1_fq,SNR);
-%load data_term1_idx0_20071128_190156.mat
-%[Cap4x2_meas_f,Cap4x2_meas_x] = ecdf(CAP1(:));
-
-%% real channel 2
-%filename_emos = 'data_term1_idx1_20071128_190238.EMOS';
-%[H2,H2_fq,est2,gps_data2,NFrames2] = load_estimates(filename_emos);
-%Cap4x2_meas2 = capacityEMOS(H2_fq,SNR);
-%load data_term1_idx1_20071128_190238.mat
-%[Cap4x2_meas2_f,Cap4x2_meas2_x] = ecdf(CAP1(:));
-
-
-%% plot results
-figure(78)
-hold off
-semilogy(Cap4x2_iid_x,Cap4x2_iid_f)
-hold on
-semilogy(Cap2x2_iid_x,Cap2x2_iid_f,'r')
-semilogy(Cap1x1_iid_x,Cap1x1_iid_f,'g')
-semilogy(Cap4x2_corr_x,Cap4x2_corr_f,'m')
-semilogy(Cap4x2_rice_x,Cap4x2_rice_f,'k')
-%plot(Cap4x2_meas_x,Cap4x2_meas_f,'k','Linewidth',2)
-%plot(Cap4x2_meas2_x,Cap4x2_meas2_f,'--k','Linewidth',2)
-xlabel('bits/sec/Hz')
-ylabel('CDF')
-title('Capacity')
-legend('SU 4x2 iid','SU 2x2 iid','SU 1x1 iid','SU 4x2 fully correlated','SU 4x2 meas small Rx spacing','SU 4x2 meas large Rx spacing')
-grid on
-
-%% store results
-save('cap_iid_rice.mat','-V7','Cap4x2_iid_f','Cap4x2_iid_x','Cap2x2_iid_f','Cap2x2_iid_x','Cap1x1_iid_f','Cap1x1_iid_x','Cap4x2_meas_f','Cap4x2_meas_x','Cap4x2_meas2_f','Cap4x2_meas2_x','Cap4x2_rice_f','Cap4x2_rice_x');
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/capacityEMOS.m b/openair1/EMOS/MATLAB/capacityEMOS.m
deleted file mode 100755
index 7d4a27efe0..0000000000
--- a/openair1/EMOS/MATLAB/capacityEMOS.m
+++ /dev/null
@@ -1,79 +0,0 @@
-function [CAP] = capacityEMOS(HH,SNR,normalize)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% [CAP] = capacityEMOS(HH,SNR) %%
-% %%
-% This function was build to calculate the capacity %%
-% of the estimated EMOS channels. It first normalizes %%
-% the channel gains, such that E(|h_{i,j}|^2) = 1, %%
-% where the avaraging is done over all snapshots and %%
-% all frequencies. %%
-% - [CAP] is the capacity values; %%
-% - HH is the input channel (M_Rx,M_Tx,fq,Channels) %%
-% - SNR is the considered SNR (Linear) %%
-% %%
-% Created: 25/04/2007 by delacerd@eurecom.fr %%
-% Modified last: 10/10/2007 by florian.kaltenberger@eurecom.fr
-%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%
-[M_Rx,M_Tx,N_fq,N_channel] = size(HH);
-
-% fk: I don't think this code is correct.
-% tmp = zeros(N_fq,N_channel);
-% for kk = 1:N_channel,
-% tmp1 = 0;
-% for ii = 1:N_fq,
-% var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
-% tmp1 = tmp1 + norm(var1(:,:,ii,kk),'fro');
-% end
-% PP = tmp1/N_fq;
-% var1 = (M_Rx/PP) * var1;
-% for ii = 1:N_fq,
-% tmp(ii,kk) = abs(log2(det(diag(ones(M_Rx,1)) + SNR * var1(:,:,ii,kk))));
-% ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
-% end
-% end
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- var1 = complex(zeros(M_Rx,M_Rx,N_fq,N_channel));
- tmp = 0;
- for ii = 1:N_fq,
- for kk = 1:N_channel,
- % this is the frobenious norm of HH
- var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
- tmp = tmp + trace(var1(:,:,ii,kk));
- end
- end
- PP = tmp/(N_fq*N_channel);
-else
- PP = 1;
-end
-
-% HH = HH*sqrt(M_Rx*M_Tx/PP);
-% now E(|h_{i,j}|^2) = 1!
-
-% Capacity estimation
-tmp = zeros(N_fq,N_channel);
-% ForPDF = zeros(N_fq,N_channel);
-for ii = 1:N_fq,
- for kk = 1:N_channel,
- % the following two lines are the same, the second one should be
- % more efficient
- tmp(ii,kk)=abs(log2(det(diag(ones(M_Rx,1)) + (SNR/M_Tx) * HH(:,:,ii,kk) * HH(:,:,ii,kk)')));
- % tmp(ii,kk)=abs(log2(det(diag(ones(M_Rx,1)) + (M_Rx*SNR/PP) *
- % var1(:,:,ii,kk))));
- % ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
- end
-end
-
-% ForPDF = reshape(ForPDF,1,N_fq*N_channel);
-
-if N_channel == 1, % if we are analyzing one single frame the output is a value
- CAP = mean(tmp);
-% CAP = (tmp);
-else % if we are analyzing a sequence of frames, the output is a vector with all capacity values
- CAP = reshape(tmp,1,N_fq*N_channel);
-end
-
diff --git a/openair1/EMOS/MATLAB/capacity_MU_SUTS.m b/openair1/EMOS/MATLAB/capacity_MU_SUTS.m
deleted file mode 100755
index 62eeb50032..0000000000
--- a/openair1/EMOS/MATLAB/capacity_MU_SUTS.m
+++ /dev/null
@@ -1,57 +0,0 @@
-function [CAP] = capacity_MU_SUTS(H,SNR,normalize)
-%
-% [CAP] = capacity_MU_SUTS(H,SNR)
-%
-% This function calculate the multiuser (MU) capacity of the estimated
-% EMOS channels assuming a time-shared single user (SU) MIMO tranmission.
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1 hold for
-% each user. The avaraging is done over all snapshots and all frequencies.
-%
-% PARAMATERS
-% - H is the input channel (NRx,NTx,Nfreq,NFrames,NUser)
-% - SNR is the considered SNR (Linear)
-%
-% RETURNS
-% - CAP is the capacity values
-
-% Authors: florian.kaltenberger@eurecom.fr
-% Copyright: Eurecom Sophia Antipolis
-% Created: 17/10/2007
-% Modified last: 17/10/2007 by florian.kaltenberger@eurecom.fr
-
-[NRx,NTx,NFreq,Nframes,NUser] = size(H);
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- disp('[capacity_MU_SUTS] Normalization of H')
- HH = complex(zeros(NRx,NRx,NFreq,Nframes,NUser));
- mean_pow = zeros(1,NUser);
- for kk = 1:NUser ,
- for ii = 1:NFreq,
- for jj = 1:Nframes,
- % this is the frobenious norm of H
- HH(:,:,ii,jj,kk) = H(:,:,ii,jj,kk)*H(:,:,ii,jj,kk)';
- mean_pow(kk) = mean_pow(kk) + trace(HH(:,:,ii,jj,kk));
- end
- end
- mean_pow(kk) = mean_pow(kk)/(NFreq*Nframes);
- H(:,:,:,:,kk) = H(:,:,:,:,kk) .* sqrt(NRx*NTx/real(mean_pow(kk))); %*
- end
- disp(sqrt(NRx*NTx./real(mean_pow)))
-end
-
-% * make sure the power is real (due to numerical inaccuracies, there might
-% be a small imaginary part)
-% mean_pow = real(mean_pow);
-
-disp('[capacity_MU_SUTS] Capacity calculation')
-
-CAP_SU = zeros(Nframes*NFreq,NUser);
-
-for k=1:NUser
- CAP_SU(:,k) = capacityEMOS(H(:,:,:,:,k),SNR,normalize);
-end
-CAP = mean(CAP_SU,2);
diff --git a/openair1/EMOS/MATLAB/capacity_MU_ZF.m b/openair1/EMOS/MATLAB/capacity_MU_ZF.m
deleted file mode 100755
index 95bcd208bd..0000000000
--- a/openair1/EMOS/MATLAB/capacity_MU_ZF.m
+++ /dev/null
@@ -1,93 +0,0 @@
-function [CAP] = capacity_MU_ZF(H,SNR,normalize)
-%
-% [CAP] = capacity_MU_ZF(H,SNR)
-%
-% This function calculate the multiuser (MU) capacity of the estimated
-% EMOS channels assuming a zero forcing (ZF) precoder and one stream per
-% user. This requires that NTx >= NUser. At the receiver antenna
-% selection is assumed.
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1 hold for
-% each user. The averaging is done over all snapshots and all frequencies.
-%
-% PARAMATERS
-% - H is the input channel (NRx,NTx,Nfreq,NFrames,NUser)
-% - SNR is the considered SNR (Linear)
-%
-% RETURNS
-% - [CAP] is the capacity values
-
-% Authors: florian.kaltenberger@eurecom.fr
-% Copyright: Eurecom Sophia Antipolis
-% Created: 17/10/2007
-% Modified last: 17/10/2007 by florian.kaltenberger@eurecom.fr
-
-[NRx,NTx,NFreq,Nframes,NUser] = size(H);
-if NRx~=2
- warning('[capacity_MU_ZF] The antenna selection in this script might not work properly for more than 2 Rx antennas');
-end
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- disp('[capacity_MU_ZF] Normalization of H')
- HH = complex(zeros(NRx,NRx,NFreq,Nframes,NUser));
- mean_pow = zeros(1,NUser);
- for kk = 1:NUser ,
- for ii = 1:NFreq,
- for jj = 1:Nframes,
- % this is the frobenious norm of H
- HH(:,:,ii,jj,kk) = H(:,:,ii,jj,kk)*H(:,:,ii,jj,kk)';
- mean_pow(kk) = mean_pow(kk) + trace(HH(:,:,ii,jj,kk));
- end
- end
- mean_pow(kk) = mean_pow(kk)/(NFreq*Nframes);
- H(:,:,:,:,kk) = H(:,:,:,:,kk) .* sqrt(NRx*NTx/real(mean_pow(kk))); %*
- end
- disp(sqrt(NRx*NTx./real(mean_pow)))
-end
-
-% * make sure the power is real (due to numerical inaccuracies, there might
-% be a small imaginary part)
-% mean_pow = real(mean_pow);
-
-% Capacity calculation
-disp('[capacity_MU_ZF] Capacity calculation')
-
-% H_MISO = complex(zeros(NUser,NTx));
-lambda = zeros(Nframes,NFreq);
-
-for ii = 1:NFreq,
- for jj = 1:Nframes,
- % Select the antenna with the higher channel weight (the
- % received power at Rx antenna m is already computed in
- % HH(m,m,ii,jj,kk)) and form the MU channel matrix.
-
- % Warning: This antenna selection does not really work
- % For now we take antenna 1
-
- % if HH(1,1,ii,jj,kk) < HH(2,2,ii,jj,kk)
- % % take antenna 2
- % H_MISO = squeeze(H(2,:,ii,jj,:)).';
- % else
- % take antenna 1
- H_MISO = squeeze(H(1,:,ii,jj,:)).';
- % end
- % The precoder matrix W is given by
- % W = pinv(H_MISO)/norm(pinv(H_MISO))
- % However, we only need the denominator of this expression for
- % the capacity calculations.
- if all(all(H_MISO==0))
- lambda(jj,ii) = Inf;
- else
- lambda(jj,ii) = norm(pinv(H_MISO),'fro');
- end
- end
-end
-
-CAP = zeros(Nframes,NFreq);
-for kk = 1:NUser
- CAP = CAP + log2(1+ SNR ./ lambda.^2);
-end
-
diff --git a/openair1/EMOS/MATLAB/capacity_SU_CL_ML.m b/openair1/EMOS/MATLAB/capacity_SU_CL_ML.m
deleted file mode 100755
index 320e9c46fb..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_CL_ML.m
+++ /dev/null
@@ -1,78 +0,0 @@
-function [CAP] = capacity_SU_CL_ML(HH,SNR,normalize)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% [CAP] = capacity_SU_CL_ML(HH,SNR)
-%
-% This function calculate the capacity of a SU MIMO channels assuming
-% CSIT and a ML detector.
-% The channel gains are normalized such that E(|h_{i,j}|^2) = 1,
-% where the avaraging is done over all snapshots and all frequencies. %%
-%
-% PARAMETERS
-% - [CAP] is the capacity values;
-% - HH is the input channel (M_Rx,M_Tx,fq,Channels)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% Created: 25/04/2007 by delacerd@eurecom.fr
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-[M_Rx,M_Tx,N_fq,N_channel] = size(HH);
-N_SNR = length(SNR);
-
-% fk: I don't think this code is correct.
-% tmp = zeros(N_fq,N_channel);
-% for kk = 1:N_channel,
-% tmp1 = 0;
-% for ii = 1:N_fq,
-% var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
-% tmp1 = tmp1 + norm(var1(:,:,ii,kk),'fro');
-% end
-% PP = tmp1/N_fq;
-% var1 = (M_Rx/PP) * var1;
-% for ii = 1:N_fq,
-% tmp(ii,kk) = abs(log2(det(diag(ones(M_Rx,1)) + SNR * var1(:,:,ii,kk))));
-% ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
-% end
-% end
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- var1 = complex(zeros(M_Rx,M_Rx,N_fq,N_channel));
- tmp = 0;
- for ii = 1:N_fq,
- for kk = 1:N_channel,
- % this is the squared frobenious norm of HH
- var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
- tmp = tmp + trace(var1(:,:,ii,kk));
- end
- end
- PP = real(tmp/(N_fq*N_channel*M_Rx*M_Tx))
-else
- PP = 1;
-end
-
-% HH = HH*sqrt(M_Rx*M_Tx/PP);
-% now E(|h_{i,j}|^2) = 1!
-
-% Capacity estimation
-CAP = zeros(N_fq,N_channel,N_SNR);
-% ForPDF = zeros(N_fq,N_channel);
-for ii = 1:N_fq,
- for kk = 1:N_channel,
- lambda = svd(HH(:,:,ii,kk)).^2;
- for jj=1:N_SNR
- gamma = IWF_4users(SNR(jj).*lambda,M_Tx);
- CAP(ii,kk,jj)=sum(log2(1 + (SNR(jj)/(M_Tx*PP)) .* lambda .* gamma));
- end
- end
-end
-
-% ForPDF = reshape(ForPDF,1,N_fq*N_channel);
-
-CAP = reshape(CAP,1,N_fq*N_channel,N_SNR);
-
-
diff --git a/openair1/EMOS/MATLAB/capacity_SU_DSTTD.m b/openair1/EMOS/MATLAB/capacity_SU_DSTTD.m
deleted file mode 100755
index c9b7937f17..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_DSTTD.m
+++ /dev/null
@@ -1,112 +0,0 @@
-function [CAP] = capacity_SU_DSTTD(HH,SNR,normalize)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% [CAP] = capacity_SU_MMSE(HH,SNR)
-%
-% This function calculates the capacity of the channel assuming DSTTD
-% coding at the transmitter and a ML receiver [1].
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1,
-% where the avaraging is done over all snapshots and all frequencies.
-%
-% PARAMETERS
-% - CAP is the capacity values;
-% - HH is the input channel (M_Rx,M_Tx,fq,Channels)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% Created: 25/04/2007 by delacerd@eurecom.fr
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-%
-% [1] C. Mehlfuhrer, M. Rupp, C. F. Mecklenbrauker, Signals, Systems and Computers,
-% 2005. Conference Record of the Thirty-Ninth Asilomar Conference on (2005),
-% pp. 1258-1262.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-[M_Rx,M_Tx,N_fq,N_channel] = size(HH);
-
-% fk: I don't think this code is correct.
-% tmp = zeros(N_fq,N_channel);
-% for kk = 1:N_channel,
-% tmp1 = 0;
-% for ii = 1:N_fq,
-% var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
-% tmp1 = tmp1 + norm(var1(:,:,ii,kk),'fro');
-% end
-% PP = tmp1/N_fq;
-% var1 = (M_Rx/PP) * var1;
-% for ii = 1:N_fq,
-% tmp(ii,kk) = abs(log2(det(diag(ones(M_Rx,1)) + SNR * var1(:,:,ii,kk))));
-% ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
-% end
-% end
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- var1 = complex(zeros(M_Rx,M_Rx,N_fq,N_channel));
- tmp = 0;
- for ii = 1:N_fq,
- for kk = 1:N_channel,
- % this is the squared frobenious norm of HH
- var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
- tmp = tmp + trace(var1(:,:,ii,kk));
- end
- end
- PP = real(tmp/(N_fq*N_channel*M_Rx*M_Tx))
-else
- PP = 1;
-end
-
-HH = HH./sqrt(PP);
-% now E(|h_{i,j}|^2) = 1!
-
-% Capacity estimation
-tmp = zeros(N_fq,N_channel);
-% ForPDF = zeros(N_fq,N_channel);
-
-n_p=1/SNR;
-
-if M_Tx == 4
-
-for ii = 1:N_fq,
- for kk = 1:N_channel,
- % conctruct the virtual channel matrix for DSTTD
- G = [HH(:,1,ii,kk) -HH(:,2,ii,kk) HH(:,3,ii,kk) -HH(:,4,ii,kk);
- conj(HH(:,2,ii,kk)) conj(HH(:,1,ii,kk)) conj(HH(:,4,ii,kk)) conj(HH(:,3,ii,kk))];
- % now we calculate the capacity using G, but dividing by 2 because
- % we have two channel uses per symbol
- tmp(ii,kk) = abs(log2(det(diag(ones(M_Tx,1)) + SNR/M_Tx * G * G')))./2;
- %tmp(ii,kk) = cap_MMSE(G,n_p)./2;
- end
-end
-
-elseif M_Tx == 2
-
-for ii = 1:N_fq,
- for kk = 1:N_channel,
- % conctruct the virtual channel matrix for DSTTD
- G = [HH(:,1,ii,kk) -HH(:,2,ii,kk);
- conj(HH(:,2,ii,kk)) conj(HH(:,1,ii,kk))];
- % now we calculate the capacity using G, but dividing by 2 because
- % we have two channel uses per symbol
- tmp(ii,kk) = abs(log2(det(diag(ones(M_Tx,1)) + SNR/M_Tx * G' * G)))./2;
- %tmp(ii,kk) = cap_MMSE(G,n_p)./2;
- end
-end
-
-else
- error('DSTTD only works with 4 Tx antennas');
-end
-
-
-% ForPDF = reshape(ForPDF,1,N_fq*N_channel);
-
-if N_channel == 1, % if we are analyzing one single frame the output is a value
- CAP = mean(tmp);
-% CAP = (tmp);
-else % if we are analyzing a sequence of frames, the output is a vector with all capacity values
- CAP = reshape(tmp,1,N_fq*N_channel);
-end
-
-
diff --git a/openair1/EMOS/MATLAB/capacity_SU_ML.m b/openair1/EMOS/MATLAB/capacity_SU_ML.m
deleted file mode 100755
index 091aee7207..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_ML.m
+++ /dev/null
@@ -1,82 +0,0 @@
-function [CAP] = capacity_SU_ML(HH,SNR,normalize)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% [CAP] = capacity_SU_ML(HH,SNR)
-%
-% This function calculate the capacity of a SU MIMO channels assuming no
-% CSIT and a ML detector.
-% The channel gains are normalized such that E(|h_{i,j}|^2) = 1,
-% where the avaraging is done over all snapshots and all frequencies. %%
-%
-% PARAMETERS
-% - [CAP] is the capacity values;
-% - HH is the input channel (M_Rx,M_Tx,fq,Channels)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% Created: 25/04/2007 by delacerd@eurecom.fr
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-[M_Rx,M_Tx,N_fq,N_channel] = size(HH);
-
-% fk: I don't think this code is correct.
-% tmp = zeros(N_fq,N_channel);
-% for kk = 1:N_channel,
-% tmp1 = 0;
-% for ii = 1:N_fq,
-% var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
-% tmp1 = tmp1 + norm(var1(:,:,ii,kk),'fro');
-% end
-% PP = tmp1/N_fq;
-% var1 = (M_Rx/PP) * var1;
-% for ii = 1:N_fq,
-% tmp(ii,kk) = abs(log2(det(diag(ones(M_Rx,1)) + SNR * var1(:,:,ii,kk))));
-% ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
-% end
-% end
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- var1 = complex(zeros(M_Rx,M_Rx,N_fq,N_channel));
- tmp = 0;
- for ii = 1:N_fq,
- for kk = 1:N_channel,
- % this is the squared frobenious norm of HH
- var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
- tmp = tmp + trace(var1(:,:,ii,kk));
- end
- end
- PP = real(tmp/(N_fq*N_channel*M_Rx*M_Tx))
-else
- PP = 1;
-end
-
-% HH = HH*sqrt(M_Rx*M_Tx/PP);
-% now E(|h_{i,j}|^2) = 1!
-
-% Capacity estimation
-tmp = zeros(N_fq,N_channel);
-% ForPDF = zeros(N_fq,N_channel);
-for ii = 1:N_fq,
- for kk = 1:N_channel,
- % the following two lines are the same, the second one should be
- % more efficient
- tmp(ii,kk)=abs(log2(det(diag(ones(M_Rx,1)) + (SNR/(M_Tx*PP)) * HH(:,:,ii,kk) * HH(:,:,ii,kk)')));
- % tmp(ii,kk)=abs(log2(det(diag(ones(M_Rx,1)) + (M_Rx*SNR/PP) *
- % var1(:,:,ii,kk))));
- % ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
- end
-end
-
-% ForPDF = reshape(ForPDF,1,N_fq*N_channel);
-
-if N_channel == 1, % if we are analyzing one single frame the output is a value
- CAP = mean(tmp);
-% CAP = (tmp);
-else % if we are analyzing a sequence of frames, the output is a vector with all capacity values
- CAP = reshape(tmp,1,N_fq*N_channel);
-end
-
diff --git a/openair1/EMOS/MATLAB/capacity_SU_MMSE.m b/openair1/EMOS/MATLAB/capacity_SU_MMSE.m
deleted file mode 100644
index c5a1734323..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_MMSE.m
+++ /dev/null
@@ -1,88 +0,0 @@
-function [CAP] = capacity_SU_MMSE(HH,SNR,normalize)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% [CAP] = capacity_SU_MMSE(HH,SNR)
-%
-% This function calculates the capacity of the channel assuming spatial
-% multiplexing at the transmitter and a MMSE receiver. At the moment, we
-% use as mant Tx antennas as there are Rx antenns. In the future, this
-% function will use Alamouti coding if the number of Tx antenna exceeds
-% the number of Rx antennas.
-%
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1,
-% where the avaraging is done over all snapshots and all frequencies.
-%
-% PARAMETERS
-% - CAP is the capacity values;
-% - HH is the input channel (M_Rx,M_Tx,fq,Channels)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% Created: 25/04/2007 by delacerd@eurecom.fr
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-[M_Rx,M_Tx,N_fq,N_channel] = size(HH);
-
-% fk: I don't think this code is correct.
-% tmp = zeros(N_fq,N_channel);
-% for kk = 1:N_channel,
-% tmp1 = 0;
-% for ii = 1:N_fq,
-% var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
-% tmp1 = tmp1 + norm(var1(:,:,ii,kk),'fro');
-% end
-% PP = tmp1/N_fq;
-% var1 = (M_Rx/PP) * var1;
-% for ii = 1:N_fq,
-% tmp(ii,kk) = abs(log2(det(diag(ones(M_Rx,1)) + SNR * var1(:,:,ii,kk))));
-% ForPDF(ii,kk) = trace(M_Tx*var1(:,:,ii,kk));
-% end
-% end
-
-if nargin<3
- normalize = 1;
-end
-if normalize
- % Normalization of H, such that E(|h_{i,j}|^2) = 1!
- var1 = complex(zeros(M_Rx,M_Rx,N_fq,N_channel));
- tmp = 0;
- for ii = 1:N_fq,
- for kk = 1:N_channel,
- % this is the squared frobenious norm of HH
- var1(:,:,ii,kk) = HH(:,:,ii,kk)*HH(:,:,ii,kk)';
- tmp = tmp + trace(var1(:,:,ii,kk));
- end
- end
- PP = real(tmp/(N_fq*N_channel*M_Rx*M_Tx))
-else
- PP = 1;
-end
-
-% HH = HH*sqrt(M_Rx*M_Tx/PP);
-% now E(|h_{i,j}|^2) = 1!
-
-% Capacity estimation
-tmp = zeros(N_fq,N_channel);
-% ForPDF = zeros(N_fq,N_channel);
-
-% antenna selection:
-% selecet the two tranmit antennas with the highest gains
-HH = HH(:,1:M_Rx,:,:);
-
-n_p=1/SNR;
-
-for ii = 1:N_fq,
- for kk = 1:N_channel,
- tmp(ii,kk) = MISO_MMSE(HH(:,:,ii,kk)./PP,n_p,n_p);
- end
-end
-
-% ForPDF = reshape(ForPDF,1,N_fq*N_channel);
-
-if N_channel == 1, % if we are analyzing one single frame the output is a value
- CAP = mean(tmp);
-% CAP = (tmp);
-else % if we are analyzing a sequence of frames, the output is a vector with all capacity values
- CAP = reshape(tmp,1,N_fq*N_channel);
-end
-
diff --git a/openair1/EMOS/MATLAB/capacity_SU_TDMA_CL_ML.m b/openair1/EMOS/MATLAB/capacity_SU_TDMA_CL_ML.m
deleted file mode 100644
index 3cb39f7e0f..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_TDMA_CL_ML.m
+++ /dev/null
@@ -1,36 +0,0 @@
-function [CAP] = capacity_SU_TDMA_CL_ML(H,SNR,normalize)
-%
-% [CAP] = capacity_SU_TDMA_ML(H,SNR,normalize)
-%
-% This function calculates the multiuser (MU) capacity of the channel
-% assuming a time-shared single user (SU) MIMO tranmission and a ML receiver.
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1 hold for
-% each user. The avaraging is done over all snapshots and all frequencies.
-%
-% PARAMETERS
-% - H is the input channel (NRx,NTx,Nfreq,NFrames,NUser)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% RETURNS
-% - CAP is the capacity values
-
-% Authors: florian.kaltenberger@eurecom.fr
-% Copyright: Eurecom Sophia Antipolis
-% Created: 17/10/2007
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-
-[NRx,NTx,NFreq,Nframes,NUser] = size(H);
-N_SNR = length(SNR);
-
-if nargin<3
- normalize = 1;
-end
-
-CAP_SU = zeros(NUser,Nframes*NFreq,N_SNR);
-
-for k=1:NUser
- CAP_SU(k,:,:) = capacity_SU_CL_ML(H(:,:,:,:,k),SNR,normalize);
-end
-%CAP = mean(CAP_SU,2);
-CAP = reshape(CAP_SU,NUser*Nframes*NFreq,N_SNR);
diff --git a/openair1/EMOS/MATLAB/capacity_SU_TDMA_DSTTD.m b/openair1/EMOS/MATLAB/capacity_SU_TDMA_DSTTD.m
deleted file mode 100755
index 963b7feeb3..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_TDMA_DSTTD.m
+++ /dev/null
@@ -1,36 +0,0 @@
-function [CAP] = capacity_SU_TDMA_DSTTD(H,SNR,normalize)
-%
-% [CAP] = capacity_SU_TDMA_MMSE(H,SNR,normalize)
-%
-% This function calculate the multiuser (MU) capacity of the estimated
-% EMOS channels assuming a time-shared single user (SU) MIMO tranmission
-% and an MMSE receiver (see capacity_SU_MMSE for details).
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1 hold for
-% each user. The avaraging is done over all snapshots and all frequencies.
-%
-% PARAMATERS
-% - H is the input channel (NRx,NTx,Nfreq,NFrames,NUser)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% RETURNS
-% - CAP is the capacity values
-
-% Authors: florian.kaltenberger@eurecom.fr
-% Copyright: Eurecom Sophia Antipolis
-% Created: 17/10/2007
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-
-[NRx,NTx,NFreq,Nframes,NUser] = size(H);
-
-if nargin<3
- normalize = 1;
-end
-
-CAP_SU = zeros(NUser,Nframes*NFreq);
-
-for k=1:NUser
- CAP_SU(k,:) = capacity_SU_DSTTD(H(:,:,:,:,k),SNR,normalize);
-end
-%CAP = mean(CAP_SU,2);
-CAP = CAP_SU(:);
diff --git a/openair1/EMOS/MATLAB/capacity_SU_TDMA_ML.m b/openair1/EMOS/MATLAB/capacity_SU_TDMA_ML.m
deleted file mode 100755
index 69ec4657dd..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_TDMA_ML.m
+++ /dev/null
@@ -1,35 +0,0 @@
-function [CAP] = capacity_SU_TDMA_ML(H,SNR,normalize)
-%
-% [CAP] = capacity_SU_TDMA_ML(H,SNR,normalize)
-%
-% This function calculates the multiuser (MU) capacity of the channel
-% assuming a time-shared single user (SU) MIMO tranmission and a ML receiver.
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1 hold for
-% each user. The avaraging is done over all snapshots and all frequencies.
-%
-% PARAMETERS
-% - H is the input channel (NRx,NTx,Nfreq,NFrames,NUser)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% RETURNS
-% - CAP is the capacity values
-
-% Authors: florian.kaltenberger@eurecom.fr
-% Copyright: Eurecom Sophia Antipolis
-% Created: 17/10/2007
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-
-[NRx,NTx,NFreq,Nframes,NUser] = size(H);
-
-if nargin<3
- normalize = 1;
-end
-
-CAP_SU = zeros(NUser,Nframes*NFreq);
-
-for k=1:NUser
- CAP_SU(k,:) = capacity_SU_ML(H(:,:,:,:,k),SNR,normalize);
-end
-%CAP = mean(CAP_SU,2);
-CAP = CAP_SU(:);
diff --git a/openair1/EMOS/MATLAB/capacity_SU_TDMA_MMSE.m b/openair1/EMOS/MATLAB/capacity_SU_TDMA_MMSE.m
deleted file mode 100644
index 4bb79af70e..0000000000
--- a/openair1/EMOS/MATLAB/capacity_SU_TDMA_MMSE.m
+++ /dev/null
@@ -1,36 +0,0 @@
-function [CAP] = capacity_SU_TDMA_MMSE(H,SNR,normalize)
-%
-% [CAP] = capacity_SU_TDMA_MMSE(H,SNR,normalize)
-%
-% This function calculate the multiuser (MU) capacity of the estimated
-% EMOS channels assuming a time-shared single user (SU) MIMO tranmission
-% and an MMSE receiver (see capacity_SU_MMSE for details).
-% The channel gains are normalized, such that E(|h_{i,j}|^2) = 1 hold for
-% each user. The avaraging is done over all snapshots and all frequencies.
-%
-% PARAMATERS
-% - H is the input channel (NRx,NTx,Nfreq,NFrames,NUser)
-% - SNR is the considered SNR (Linear)
-% - normalize is a flag that indicates if the channel should be normalized
-%
-% RETURNS
-% - CAP is the capacity values
-
-% Authors: florian.kaltenberger@eurecom.fr
-% Copyright: Eurecom Sophia Antipolis
-% Created: 17/10/2007
-% Modified last: 12/12/2007 by florian.kaltenberger@eurecom.fr
-
-[NRx,NTx,NFreq,Nframes,NUser] = size(H);
-
-if nargin<3
- normalize = 1;
-end
-
-CAP_SU = zeros(NUser,Nframes*NFreq);
-
-for k=1:NUser
- CAP_SU(k,:) = capacity_SU_MMSE(H(:,:,:,:,k),SNR,normalize);
-end
-%CAP = mean(CAP_SU,2);
-CAP = CAP_SU(:);
diff --git a/openair1/EMOS/MATLAB/cat_files.m b/openair1/EMOS/MATLAB/cat_files.m
deleted file mode 100644
index a61927cc7c..0000000000
--- a/openair1/EMOS/MATLAB/cat_files.m
+++ /dev/null
@@ -1,15 +0,0 @@
-function out = cat_files(filenames)
-
-s(1) = load(filenames{1});
-for i=2:length(filenames)
- s(i) = orderfields(load(filenames{i}),s(1));
-end
-
-out.CAP_4U_ZF_RVQ = cat(3,s.CAP_4U_ZF_RVQ);
-out.CAP_4U_MMSE_RVQ = cat(3,s.CAP_4U_MMSE_RVQ);
-out.CAP_4U_ZF_CVQ = cat(3,s.CAP_4U_ZF_CVQ);
-out.CAP_4U_MMSE_CVQ = cat(3,s.CAP_4U_MMSE_CVQ);
-out.bit_vec = cat(2,s.bit_vec);
-out.Codebook_ind = cat(3,s.Codebook_ind);
-
-
diff --git a/openair1/EMOS/MATLAB/check_latex.m b/openair1/EMOS/MATLAB/check_latex.m
deleted file mode 100755
index b896a2c15e..0000000000
--- a/openair1/EMOS/MATLAB/check_latex.m
+++ /dev/null
@@ -1,11 +0,0 @@
-function a=check_latex(a);
-
-% Check for reserved Latex chars
-%
-% (c) Helmut Hofstetter, ftw
-% 23.03.2003
-
-b=findstr(a,'_');
-for k=1:length(b)
- a=[a(1:b(k)-2+k),'\_',a(b(k)+k:end)];
-end
diff --git a/openair1/EMOS/MATLAB/ecap_iid_snr.m b/openair1/EMOS/MATLAB/ecap_iid_snr.m
deleted file mode 100644
index d4877faf18..0000000000
--- a/openair1/EMOS/MATLAB/ecap_iid_snr.m
+++ /dev/null
@@ -1,97 +0,0 @@
-clear all
-close all
-
-M_Tx=4;
-N_Rx=1;
-Nfreq = 20;
-Nsamples = 1000;
-NUsers = 2;
-bits = 8;
-
-SNRdB = -20:10:30;
-
-HDl = 1/sqrt(2)*complex(randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers),randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers));
-%HUl = conj(permute(HDl,[2 1 3 4 5]));
-
-%ECap_SU_TDMA_CL_ML_iid=zeros(1,length(SNRdB));
-ECap_MU_MMSE_iid=zeros(1,length(SNRdB));
-ECap_MU_ZF_iid=zeros(1,length(SNRdB));
-%ECap_MU_DPC_iid=zeros(1,length(SNRdB));
-%ECap_MU_BD_WF_iid=zeros(1,length(SNRdB));
-%ECap_MU_CVQ_iid=zeros(1,length(SNRdB));
-
-Cap_SU_TDMA_CL_ML_iid = capacity_SU_TDMA_CL_ML(HDl,10.^(SNRdB./10),0);
-ECap_SU_TDMA_CL_ML_iid = mean(Cap_SU_TDMA_CL_ML_iid,1);
-
-for s = 1:length(SNRdB)
-
- disp(sprintf('SNR = %d (%d of %d)',SNRdB(s),s,length(SNRdB)))
-
- % SNRdB=10;
- SNR=10^(SNRdB(s)/10);
- %%% MMSE regularization factor
- mu = M_Tx/SNR;
- %%% noise variance
- n_p=1/SNR;
-
- %Cap_MU_CVQ_iid = zeros(Nfreq,Nsamples);
- Cap_MU_MMSE_iid = zeros(Nfreq,Nsamples);
- Cap_MU_ZF_iid = zeros(Nfreq,Nsamples);
- %Cap_MU_DPC_iid = zeros(Nfreq,Nsamples);
- %Cap_MU_BD_WF_iid=zeros(Nfreq,Nsamples);
-
-
- for k2=1:Nsamples
- for k1=1:Nfreq
- HS = HDl(1,:,k1,k2,:);
- HS = squeeze(HS).';
- [Cap_MU_MMSE_iid(k1,k2),gain] = MISO_MMSE(HS,n_p,mu);
- [Cap_MU_ZF_iid(k1,k2),gain2] = MISO_MMSE(HS,n_p,0);
- %Cap_MU_CVQ_iid(k1,k2) = MISO_CVQ(HS,n_p,0,bits);
- %eff_gain_MMSE(k2) = gain;
- %eff_gain_ZF(k2) = gain2;
- end
- end
-
-
-% for k2=1:Nsamples
-% for k1=1:Nfreq
-% HS = reshape(HDl(:,:,k1,k2,:),[N_Rx, M_Tx, NUsers]);
-% [Cap_MU_BD_WF_iid(k1,k2),gain] = BD(HS,n_p,1);
-% %eff_gain_BD(:,k2) = gain;
-% end
-% end
-
-
-% for k2=1:Nsamples
-% for k1=1:Nfreq
-% HS = HUl(:,:,k1,k2,:);
-% HS = reshape(HS,[M_Tx,N_Rx,NUsers]);
-% Cap_MU_DPC_iid(k1,k2) = iterative_waterfill(HS,SNR,50);
-% end
-% end
-
- ECap_MU_MMSE_iid(s)=mean(Cap_MU_MMSE_iid(:));
- ECap_MU_ZF_iid(s)=mean(Cap_MU_ZF_iid(:));
- %ECap_MU_DPC_iid(s)=mean(Cap_MU_DPC_iid(:));
- %ECap_MU_BD_WF_iid(s)=mean(Cap_MU_BD_WF_iid(:));
- %ECap_4U_CVQ_iid(s)=mean(Cap_4U_CVQ_iid(:));
-
-%%
- figure(1)
- plot(SNRdB(1:s),ECap_SU_TDMA_CL_ML_iid(1:s),'b');
- hold on
- plot(SNRdB(1:s),ECap_MU_MMSE_iid(1:s),'r');
- plot(SNRdB(1:s),ECap_MU_ZF_iid(1:s),'g');
- %plot(SNRdB(1:s),ECap_4U_CVQ_iid(1:s),'k');
- %plot(SNRdB(1:s),ECap_MU_DPC_iid(1:s),'k');
- %plot(SNRdB(1:s),ECap_MU_BD_WF_iid(1:s),'m');
- legend('SU TDMA','MMSE','ZF')
- xlabel('SNR [dB]')
- ylabel('Sum rate')
- drawnow
-
-%%
- save(sprintf('cap_iid_NTx%d_NRx%d_NUser%d.mat',M_Tx,N_Rx,NUsers));
-
-end
diff --git a/openair1/EMOS/MATLAB/eval_data.m b/openair1/EMOS/MATLAB/eval_data.m
deleted file mode 100755
index e507b6bd53..0000000000
--- a/openair1/EMOS/MATLAB/eval_data.m
+++ /dev/null
@@ -1,118 +0,0 @@
-%% parameters
-load_channel = 1;
-plot_figs = 1;
-
-NTx = 4; % Number of Tx antennas
-NRx = 2; % Number of Rx antennas
-% NFrames = 10000;
-NFreq = 160/NTx;
-NTau = 256/NTx;
-
-%% load data
-%filename_emos = 'data_term1_idx4_20071011_103645.EMOS';
-%filename_emos = 'data_term1_idx30_20071119_153735.EMOS';
-%filename_emos = 'data_term3_idx30_20071126_153448.EMOS';
-[path,name] = fileparts(filename_emos);
-
-if load_channel
- [H1,H1_fq,est,gps_data,NFrames] = load_estimates(filename_emos,NTx);
-else
- [est,gps_data,NFrames] = load_estimates_no_channel(filename_emos,NTx,Inf,0.2);
-end
-%[H2,H2_fq,est2,nest2] = load_estimates('data_term2_idx0_20071009_144617.EMOS',NTx,NFrames);
-% if (nest ~= nest2)
-% error('Sizes of Channel Matrices of different users don''t match');
-% end
-est.timestamp = est.timestamp - est.timestamp(1);
-
-if load_channel
-%% calculate and plot the PDP and frequency response over time
-% The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
-% but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
-DProf = DProfile(permute(H1,[4 3 2 1]));
-
-if plot_figs
-h_fig = figure(1);
-[X,Y] = meshgrid(est.timestamp,(-NFreq/2):(NFreq/2-1));
-surf(X,Y,10*log10(abs(squeeze(H1_fq(1,1,:,:)).^2)));
-shading interp
-xlabel('Time [s]','Fontsize',14);
-ylabel('Subcarrier index','Fontsize',14);
-zlabel('Receive power [dB]','Fontsize',14);
-grid on
-saveas(h_fig, fullfile(path,[name '_freq_time.eps']), 'psc2');
-
-%%
-h_fig = figure(2);
-plot((0:(NTau-1))/7.68,10*log10(DProf),'Linewidth',2)
-xlabel('Delay [\mus]');
-ylabel('Receive Power Level [dB]');
-grid on
-saveas(h_fig, fullfile(path,[name '_Dprofile.eps']), 'psc2');
-end
-
-%% calculate and plot single user capacity
-% SNR is avaraged over all Rx antennas and all time
-%SNR1 = 10^(mean(mean((est.rx_power(1:100)-est.n0_power(1:100))))/10);
-%SNR2 = 10^(mean(mean((est2.rx_power(1:100)-est2.n0_power(1:100))))/10);
-SNR1 = 10;
-%SNR2 = 10;
-CAP1 = capacity_SU_ML(H1_fq,SNR1);
-%CAP2 = capacity_SU_ML(H2_fq(:,:,:,1:100),SNR2);
-[Cap1_f,Cap1_x] = ecdf(CAP1);
-%[Cap2_f,Cap2_x] = ecdf(CAP2);
-
-if plot_figs
-h_fig = figure(4);
-load cap_iid.mat
-hold off
-plot(Cap2x4_iid_x,Cap2x4_iid_f)
-hold on
-%plot(Cap2x2_iid_x,Cap2x2_iid_f,'r')
-%plot(Cap1x1_iid_x,Cap1x1_iid_f,'g')
-plot(Cap1_x,Cap1_f,'k','Linewidth',2)
-%plot(Cap2_x,Cap2_f,'k--','Linewidth',2)
-legend('4x2 iid','4x2 measured')
-xlabel('bits/sec/Hz')
-xlim([0 18])
-ylabel('CDF')
-grid on
-saveas(h_fig, fullfile(path,[name '_capacity.eps']), 'psc2');
-end
-
-%% calculate the RX correlation factor
-RRx = zeros(NRx);
-for k1=1:size(H1_fq,3)
- for k2=1:size(H1_fq,4)
- RRx = RRx + squeeze(H1_fq(:,:,k1,k2)) * squeeze(H1_fq(:,:,k1,k2))';
- end
-end
-RRx = RRx / (size(H1_fq,3)*size(H1_fq,4))
-
-%% save calcualted data
-filename_mat = fullfile(path,name);
-save(filename_mat,'CAP1','DProf','RRx');
-end
-
-%% plot the received power over time
-if plot_figs
-h_fig = figure(3);
-% err_ind = [0 diff(est.pdu_errors)];
-% err_ind(err_ind<0) = 0;
-% err_ind = logical(err_ind);
-hold off
-plot(est.timestamp,mean(est.rx_rssi_dBm,1),'b.')
-hold on
-plot(est.timestamp,mean(est.rx_power-est.n0_power,1),'g.')
-plot(est.timestamp(est.err_ind),mean(est.rx_rssi_dBm(:,est.err_ind),1),'rx')
-plot(est.timestamp(est.err_ind),mean(est.rx_power(:,est.err_ind)-est.n0_power(:,est.err_ind),1),'rx')
-legend('RSSI','SNR')
-xlabel('Time [s]','Fontsize',14);
-ylabel('Power [dB]','Fontsize',14);
-saveas(h_fig, fullfile(path,[name '_power_snr.eps']), 'psc2');
-
-% %% plot GPS data
-% h_fig = figure(5);
-% plot_gps_coordinates_sophia(mm,gps_data.longitude,gps_data.latitude);
-% saveas(h_fig, fullfile(path,[name '_gps']), 'jpg');
-end
diff --git a/openair1/EMOS/MATLAB/eval_data_MU.m b/openair1/EMOS/MATLAB/eval_data_MU.m
deleted file mode 100755
index ad6b41f6a6..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU.m
+++ /dev/null
@@ -1,249 +0,0 @@
-load_channel = 1;
-
-SNR=10^(SNRdB/10);
-% MMSE regularization factor
-mu = NTx/SNR;
-% noise variance
-n_p=1/SNR;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{avail_users(k),idx},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filename_emos{avail_users(k),idx});
- end
-end
-
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = ~est(avail_users(u),idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-CAP_SU_TDMA_ML = [];
-CAP_SU1x1_TDMA_ML = [];
-CAP_SU1x2_TDMA_ML = [];
-CAP_SU2x2_TDMA_ML = [];
-%CAP_SU_TDMA_DSTTD = [];
-%CAP_SU_TDMA_CL_ML = [];
-
-%CAP_4U_DPC = zeros(NFreq,NFrames_pos);
-
-% CAP_4U_ZF = zeros(NFreq,NFrames_pos);
-% CAP_4U_MMSE = zeros(NFreq,NFrames_pos);
-% CAP_4U_AS_ZF = zeros(NFreq,NFrames_pos);
-% CAP_4U_AS_MMSE = zeros(NFreq,NFrames_pos);
-CAP_2U_ZF = zeros(NFreq,NFrames_pos);
-CAP_2U_MMSE = zeros(NFreq,NFrames_pos);
-CAP_2U_AS_ZF = zeros(NFreq,NFrames_pos);
-CAP_2U_AS_MMSE = zeros(NFreq,NFrames_pos);
-% CAP_2U_BD = zeros(NFreq,NFrames_pos);
-% CAP_2U2Tx_ZF = zeros(NFreq,NFrames_pos);
-% CAP_2U2Tx_MMSE = zeros(NFreq,NFrames_pos);
-
-% Eigval_4U_ZF = zeros(NFreq,NFrames_pos,NUser);
-
-% gain_4U_ZF = zeros(NFrames_pos,1);
-% gain_4U_MMSE = zeros(NFrames_pos,1);
-% gain_4U_AS_ZF = zeros(NFrames_pos,1);
-% gain_4U_AS_MMSE = zeros(NFrames_pos,1);
-gain_2U_ZF = zeros(NFrames_pos,1);
-gain_2U_MMSE = zeros(NFrames_pos,1);
-gain_2U_AS_ZF = zeros(NFrames_pos,1);
-gain_2U_AS_MMSE = zeros(NFrames_pos,1);
-% gain_2U_BD = zeros(NFrames_pos,2);
-
-DProf = zeros(NUser, 256/NTx);
-
-R = zeros(NUser*NTx*NRx);
-R_Tx = zeros(NTx);
-R_Tx_AS = zeros(NTx);
-
-%% main loop
-%while any(NFrames_read < NFrames(:,idx).')
-%fk 30.1.2008: changed the following two line since it produced an endless loop
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- if IFversion>=2
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates2_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- else
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- end
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(avail_users(k),idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(avail_users(k),idx).Hnorm));
- end
-
- %H_fq_MU = cat(4,H_fq_MU,H_fq);
- %H_MU = cat(4,H_MU,H);
-
- %% calculate different capacities
- disp('[eval_data_MU] Calculating TDMA capacities');
- % CAP_MU_ZF = cat(1,CAP_MU_ZF,capacity_MU_ZF(H_fq,SNR,0));
- CAP_SU_TDMA_ML = cat(1,CAP_SU_TDMA_ML,capacity_SU_TDMA_ML(H_fq,SNR,0));
- CAP_SU1x1_TDMA_ML = cat(1,CAP_SU1x1_TDMA_ML,capacity_SU_TDMA_ML(H_fq(1,1,:,:,:),SNR,0));
- CAP_SU1x2_TDMA_ML = cat(1,CAP_SU1x2_TDMA_ML,capacity_SU_TDMA_ML(H_fq(:,1,:,:,:),SNR,0));
- CAP_SU2x2_TDMA_ML = cat(1,CAP_SU2x2_TDMA_ML,capacity_SU_TDMA_ML(H_fq(:,1:2,:,:,:),SNR,0));
- % CAP_SU_TDMA_DSTTD = cat(1,CAP_SU_TDMA_DSTTD,capacity_SU_TDMA_DSTTD(H_fq,SNR,0));
- % CAP_SU_TDMA_CL_ML = cat(1,CAP_SU_TDMA_CL_ML,capacity_SU_TDMA_CL_ML(H_fq,SNR,0));
-
-
- disp('[eval_data_MU] Calculating SDMA capacities');
- for k2=1:size(H_fq,4)
- [HSf,antenna_index] = antenna_selection(H_fq(:,:,:,k2,:));
- for k1=1:size(H_fq,3)
-% % 4 Users, DPC
-% HS = conj(permute(squeeze(H_fq(:,:,k1,k2,:)),[2 1 3]));
-% CAP_4U_DPC(k1,NFrames_Tx_proc + k2) = iterative_waterfill(HS,SNR,50);
-
-% % 4 Users, Antenna selection
-% HS = squeeze(HSf(:,:,k1,:,:)).';
-% [CAP_4U_AS_MMSE(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,mu);
-% gain_4U_AS_MMSE(NFrames_Tx_proc + k2,:) = gain_4U_AS_MMSE(NFrames_Tx_proc + k2,:) + gain;
-% [CAP_4U_AS_ZF(k1,NFrames_Tx_proc + k2),gain] = MISO_MMSE(HS,n_p,0);
-% gain_4U_AS_ZF(NFrames_Tx_proc + k2,:) = gain_4U_AS_ZF(NFrames_Tx_proc + k2,:) + gain;
-
- % 2 Users, Antenna selection
- HS = squeeze(HSf(:,:,k1,:,sched_users)).';
- [CAP_2U_AS_MMSE(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,mu);
- gain_2U_AS_MMSE(NFrames_Tx_proc + k2,:) = gain_2U_AS_MMSE(NFrames_Tx_proc + k2,:) + gain;
- [CAP_2U_AS_ZF(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,0);
- gain_2U_AS_ZF(NFrames_Tx_proc + k2,:) = gain_2U_AS_ZF(NFrames_Tx_proc + k2,:) + gain;
- R_Tx_AS = R_Tx+HS'*HS;
-
-% % 4 Users, No Antenna selection
-% HS = squeeze(H_fq(1,:,k1,k2,:)).';
-% [CAP_4U_MMSE(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,mu);
-% gain_4U_MMSE(NFrames_Tx_proc + k2,:) = gain_4U_MMSE(NFrames_Tx_proc + k2,:) + gain;
-% [CAP_4U_ZF(k1,NFrames_Tx_proc + k2), gain, eigval] = MISO_MMSE(HS,n_p,0);
-% gain_4U_ZF(NFrames_Tx_proc + k2,:) = gain_4U_ZF(NFrames_Tx_proc + k2,:) + gain;
-% Eigval_4U_ZF(k1,k2,:) = eigval;
-
- % 2 Users, No Antenna selection
- HS = squeeze(H_fq(1,:,k1,k2,sched_users)).';
- [CAP_2U_MMSE(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,mu);
- gain_2U_MMSE(NFrames_Tx_proc + k2,:) = gain_2U_MMSE(NFrames_Tx_proc + k2,:) + gain;
- [CAP_2U_ZF(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,0);
- gain_2U_ZF(NFrames_Tx_proc + k2,:) = gain_2U_ZF(NFrames_Tx_proc + k2,:) + gain;
- R_Tx = R_Tx+HS'*HS;
-
-% % 2 Users, 2 Antennas, block diagonalization
-% HS = squeeze(H_fq(:,:,k1,k2,sched_users));
-% [CAP_2U_BD(k1,NFrames_Tx_proc + k2), gain] = BD(HS,n_p);
-% gain_2U_BD(NFrames_Tx_proc + k2,:) = gain_2U_BD(NFrames_Tx_proc + k2,:) + gain;
-
-% % 2 Users, 2 Transmit Antennas (cross polarized), Antenna selection
-% %HS = reshape(permute(H_fq(:,:,k1,k2,sched_users),[2 1 3 4 5]),NTx,NRx*length(sched_users));
-% HS = squeeze(HSf(:,1:2,k1,:,sched_users));
-% [CAP_2U2Tx_ZF(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,0);
-% [CAP_2U2Tx_MMSE(k1,NFrames_Tx_proc + k2), gain] = MISO_MMSE(HS,n_p,mu);
-
- % calculate the full correlation matrix
- % R(k+n*NUser+m*NUser*NTx,k'+n'*NUser+m'*NUser*NTx)
- % k .. User, n .. tx antenna, m .. Rx antenna
- HS = reshape(permute(H_fq(:,:,k1,k2,:),[5 2 3 4 1]),NTx*NRx*NUser,1);
- R = R+HS*HS';
- end
-
-% gain_4U_AS_MMSE(NFrames_Tx_proc + k2,:) = gain_4U_AS_MMSE(NFrames_Tx_proc + k2,:) / NFreq;
-% gain_4U_AS_ZF(NFrames_Tx_proc + k2,:) = gain_4U_AS_ZF(NFrames_Tx_proc + k2,:) / NFreq;
- gain_2U_AS_MMSE(NFrames_Tx_proc + k2,:) = gain_2U_AS_MMSE(NFrames_Tx_proc + k2,:) / NFreq;
- gain_2U_AS_ZF(NFrames_Tx_proc + k2,:) = gain_2U_AS_ZF(NFrames_Tx_proc + k2,:) / NFreq;
-% gain_4U_MMSE(NFrames_Tx_proc + k2,:) = gain_4U_MMSE(NFrames_Tx_proc + k2,:) / NFreq;
-% gain_4U_ZF(NFrames_Tx_proc + k2,:) = gain_4U_ZF(NFrames_Tx_proc + k2,:) / NFreq;
- gain_2U_MMSE(NFrames_Tx_proc + k2,:) = gain_2U_MMSE(NFrames_Tx_proc + k2,:) / NFreq;
- gain_2U_ZF(NFrames_Tx_proc + k2,:) = gain_2U_ZF(NFrames_Tx_proc + k2,:) / NFreq;
-% gain_2U_BD(NFrames_Tx_proc + k2,:) = gain_2U_BD(NFrames_Tx_proc + k2,:) / NFreq;
-
- end
-
-
- %% calculate and plot the PDP and frequency response over time
- % The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
- % but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
- disp('[eval_data_MU] PDP Calculation');
- for k=1:NUser
- DProf(k,:) = DProf(k,:) + DProfile(permute(squeeze(H(:,:,:,:,k)),[4 3 2 1]));
- end
-% if any(any(isnan(DProf)))
-% keyboard
-% end
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-% if NFrames_Tx_read < NFrames_Tx
-% CAP_4U_ZF(:,NFrames_Tx_read+1:end) = [];
-% CAP_4U_MMSE(:,NFrames_Tx_read+1:end) = [];
-% CAP_2U_ZF(:,NFrames_Tx_read+1:end) = [];
-% CAP_2U_MMSE(:,NFrames_Tx_read+1:end) = [];
-% end
-
-% % post processing
-% [Cap_4U_SUTS_f,Cap_4U_SUTS_x] = ecdf(CAP_MU_SUTS(:));
-% [Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(CAP_4U_ZF(:));
-% [Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(CAP_4U_MMSE(:));
-% [Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(CAP_2U_ZF(:));
-% [Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(CAP_2U_MMSE(:));
-
-DProf = DProf ./ chunks;
-R = R ./ (NFrames_Tx_proc*NFreq);
-R_Tx = R_Tx ./ (NFrames_Tx_proc*NFreq);
-R_Tx_AS = R_Tx_AS ./ (NFrames_Tx_proc*NFreq);
-
-%% save calcualted data
-filename_mat = fullfile(filepath,sprintf('results_v2_idx_%d.mat',idx));
-if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*',...
- 'gain*',...
- 'DProf','R*');
-else
- save(filename_mat,'CAP*',...
- 'gain*',...
- 'DProf','R*');
-end
-
-
diff --git a/openair1/EMOS/MATLAB/eval_data_MU_CVQ.m b/openair1/EMOS/MATLAB/eval_data_MU_CVQ.m
deleted file mode 100644
index 784e1cafe4..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU_CVQ.m
+++ /dev/null
@@ -1,150 +0,0 @@
-timestamp = datestr(now);
-timestamp = strrep(timestamp,' ','_');
-
-SNR=10^(SNRdB/10);
-% MMSE regularization factor
-mu = NTx/SNR;
-% noise variance
-n_p=1/SNR;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{avail_users(k),idx},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filename_emos{avail_users(k),idx});
- end
-end
-
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = ~est(avail_users(u),idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-%DProf = zeros(NUser, NTx, 64);
-
-bit_vec = [4 6 8];
-
-CAP_4U_ZF_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-CAP_4U_MMSE_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-% CAP_4U_ZF_RVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-% CAP_4U_MMSE_RVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-
-Codebook_ind = zeros(NFreq,NFrames_pos,length(bit_vec),NUser);
-
-%while any(NFrames_read < NFrames(:,idx).')
-%fk 30.1.2008: changed the following two line since it produced an endless loop
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- if IFversion>=2
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates2_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- else
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- end
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(avail_users(k),idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(avail_users(k),idx).Hnorm));
- end
-
- disp('[eval_data_MU] Calculating SDMA capacities');
- for k2=1:size(H_fq,4)
- %[HSf,antenna_index] = antenna_selection(H_fq(:,:,:,k2,:));
- for k1=1:size(H_fq,3)
- HS = squeeze(H_fq(1,:,k1,k2,:)).';
-% Codebook_ind(k1,NFrames_Tx_proc + k2,:,:) = get_codebook_idx(HS.',Codebook(:,1:pow2(max(bit_vec)),5),bit_vec);
- for b = 1:length(bit_vec)
-
- [Hq, Codebook_ind(k1,NFrames_Tx_proc + k2,b,:)] = quantize_H(HS.',bit_vec(b));
- Hq = Hq.';
-
- [CAP_4U_MMSE_CVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_CVQ(HS,Hq,n_p,mu);
- [CAP_4U_ZF_CVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_CVQ(HS,Hq,n_p,0);
-
-% Hq = Codebook(:,Codebook_ind(k1,NFrames_Tx_proc + k2,b,:),5);
-%
-% % Hq has to have the same amplitude as H
-% for k=1:NUser
-% Hq(:,k) = Hq(:,k).*norm(H(:,k));
-% end
-% Hq = Hq.';
-% [CAP_4U_MMSE_RVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_RVQ(HS,Hq,n_p,mu);
-% [CAP_4U_ZF_RVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_RVQ(HS,Hq,n_p,0);
- end
- end
- end
-
-% %% calculate and plot the PDP and frequency response over time
-% % The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
-% % but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
-% disp('[eval_data_MU] PDP Calculation');
-% for k=1:NUser
-% for l=1:NTx
-% DProf(k,l,:) = DProf(k,l,:) + reshape(DProfile(squeeze(permute(H(:,l,:,:,k),[4 3 2 1 5]))),1,1,[]);
-% end
-% end
-
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-% sendmail('kaltenbe@eurecom.fr',['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ],'');
-
- %% save calcualted data
- filename_mat = fullfile(filepath,sprintf('results_CVQ_SNR_%d_idx_%d_%s.mat',SNRdB,idx,timestamp));
- if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*','bit_vec','Codebook_ind');
- else
- save(filename_mat,'CAP*','bit_vec','Codebook_ind');
- end
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-%DProf = DProf ./ chunks;
-
-% %% save calcualted data
-% filename_mat = fullfile(filepath,sprintf('results_RVQ_corr_SNR_%d_idx_%d.mat',SNRdB,idx));
-% if strfind(version,'7.3')
-% save(filename_mat,'-V7','CAP*','bit_vec','Codebook_ind');
-% else
-% save(filename_mat,'CAP*','bit_vec','Codebook_ind');
-% end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/eval_data_MU_DPC.m b/openair1/EMOS/MATLAB/eval_data_MU_DPC.m
deleted file mode 100755
index c8c28896c4..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU_DPC.m
+++ /dev/null
@@ -1,203 +0,0 @@
-% this script with DPC, MMSE and SU MIMO takes about 10h for one SNR on the
-% cluster.
-
-load_channel = 1;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{avail_users(k),idx},'r');
-end
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = ~est(avail_users(u),idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-NSNR = length(SNRdB);
-
-% CAP_SU_TDMA_ML = [];
-% CAP_SU_TDMA_MMSE = [];
-CAP_SU_TDMA_CL_ML = [];
-
-% CAP_4U_4x2_DPC = zeros(NFreq,NFrames_Tx);
-CAP_4U_4x1_DPC = zeros(NFreq,NFrames_pos,NSNR);
-% CAP_4U_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_4U_MMSE = zeros(NFreq,NFrames_Tx,NSNR);
-% CAP_4U_AS_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_4U_AS_MMSE = zeros(NFreq,NFrames_Tx);
-% CAP_2U_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_2U_MMSE = zeros(NFreq,NFrames_Tx);
-% CAP_2U_AS_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_2U_AS_MMSE = zeros(NFreq,NFrames_Tx);
-% CAP_2U_BD_WF = zeros(NFreq,NFrames_Tx);
-% CAP_2U_BD_EP = zeros(NFreq,NFrames_Tx);
-
-% Eigval_4U_ZF = zeros(NFreq,NFrames_Tx,NTx);
-
-% gain_4U_ZF = zeros(NFrames_Tx,1);
-% gain_4U_MMSE = zeros(NFrames_Tx,1);
-% gain_4U_AS_ZF = zeros(NFrames_Tx,1);
-% gain_4U_AS_MMSE = zeros(NFrames_Tx,1);
-% gain_2U_ZF = zeros(NFrames_Tx,1);
-% gain_2U_MMSE = zeros(NFrames_Tx,1);
-% gain_2U_AS_ZF = zeros(NFrames_Tx,1);
-% gain_2U_AS_MMSE = zeros(NFrames_Tx,1);
-% gain_2U_BD_WF = zeros(NFrames_Tx,2);
-% gain_2U_BD_EP = zeros(NFrames_Tx,2);
-
-
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- if IFversion>=2
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates2_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- else
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- end
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(avail_users(k),idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(avail_users(k),idx).Hnorm));
- end
-
- %H_fq_MU = cat(4,H_fq_MU,H_fq);
- %H_MU = cat(4,H_MU,H);
-
- % %% calculate different capacities
- % CAP_MU_ZF = cat(1,CAP_MU_ZF,capacity_MU_ZF(H_fq,SNR,0));
- % CAP_4U_SUTS = cat(1,CAP_4U_SUTS,capacity_MU_SUTS(H_fq,SNR,0));
- CAP_SU_TDMA_CL_ML = cat(1,CAP_SU_TDMA_CL_ML,capacity_SU_TDMA_CL_ML(H_fq(1,:,:,:,:),10.^(SNRdB./10),0));
-
- for k2=1:size(H_fq,4)
- % [HSf,antenna_index] = antenna_selection(H_fq(:,:,:,k2,:));
- for k1=1:size(H_fq,3)
- HSUl = conj(permute(squeeze(H_fq(:,:,k1,k2,:)),[2 1 3]));
- HS = squeeze(H_fq(1,:,k1,k2,:)).';
- for k0=1:length(SNRdB)
-
- SNR=10^(SNRdB(k0)/10);
- % MMSE regularization factor
- mu = NTx/SNR;
- % noise variance
- n_p=1/SNR;
-
- % 4 Users, DPC
- % CAP_4U_4x2_DPC(k1,NFrames_Tx_read + k2) = iterative_waterfill(HSUl,SNR,50);
- CAP_4U_4x1_DPC(k1,NFrames_Tx_proc + k2,k0) = iterative_waterfill(HSUl(:,1,:),SNR,50);
-
- % 4 Users, Antenna selection
- % HS = squeeze(HSf(:,:,k1,:,:)).';
- % [CAP_4U_AS_MMSE(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_4U_AS_ZF(k1,NFrames_Tx_read + k2),gain] = MISO_MMSE(HS,n_p,0);
- % gain_4U_AS_ZF(NFrames_Tx_read + k2,:) = gain_4U_AS_ZF(NFrames_Tx_read + k2,:) + gain;
-
- % 2 Users, Antenna selection
- % HS = squeeze(HSf(:,:,k1,:,sched_users)).';
- % [CAP_2U_AS_MMSE(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_2U_AS_ZF(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,0);
- % gain_2U_AS_ZF(NFrames_Tx_read + k2,:) = gain_2U_AS_ZF(NFrames_Tx_read + k2,:) + gain;
-
- % 4 Users, No Antenna selection
- % HS = squeeze(H_fq(1,:,k1,k2,:)).';
- % [CAP_4U_MMSE(k1,NFrames_Tx_read + k2,k0), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_4U_MMSE(NFrames_Tx_read + k2,:) = gain_4U_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_4U_ZF(k1,NFrames_Tx_read + k2), gain,eigval] = MISO_MMSE(HS,n_p,0);
- % gain_4U_ZF(NFrames_Tx_read + k2,:) = gain_4U_ZF(NFrames_Tx_read + k2,:) + gain;
- % Eigval_4U_ZF(k1,NFrames_Tx_read + k2,:) = eigval;
-
- % 2 Users, No Antenna selection
- % HS = squeeze(H_fq(1,:,k1,k2,sched_users)).';
- % [CAP_2U_MMSE(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_2U_MMSE(NFrames_Tx_read + k2,:) = gain_2U_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_2U_ZF(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,0);
- % gain_2U_ZF(NFrames_Tx_read + k2,:) = gain_2U_ZF(NFrames_Tx_read + k2,:) + gain;
-
- % 2 Users, block diagonalization
- % HS = squeeze(H_fq(:,:,k1,k2,sched_users));
- % [CAP_2U_BD_EP(k1,NFrames_Tx_read + k2), gain] = BD(HS,n_p,0);
- % gain_2U_BD_EP(NFrames_Tx_read + k2,:) = gain_2U_BD_EP(NFrames_Tx_read + k2,:) + gain;
- % [CAP_2U_BD_WF(k1,NFrames_Tx_read + k2), gain] = BD(HS,n_p,1);
- % gain_2U_BD_WF(NFrames_Tx_read + k2,:) = gain_2U_BD_EP(NFrames_Tx_read + k2,:) + gain;
-
- end
- end
-
- % gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_4U_AS_ZF(NFrames_Tx_read + k2,:) = gain_4U_AS_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_AS_ZF(NFrames_Tx_read + k2,:) = gain_2U_AS_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_4U_MMSE(NFrames_Tx_read + k2,:) = gain_4U_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_4U_ZF(NFrames_Tx_read + k2,:) = gain_4U_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_MMSE(NFrames_Tx_read + k2,:) = gain_2U_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_ZF(NFrames_Tx_read + k2,:) = gain_2U_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_BD_WF(NFrames_Tx_read + k2,:) = gain_2U_BD_WF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_BD_EP(NFrames_Tx_read + k2,:) = gain_2U_BD_EP(NFrames_Tx_read + k2,:) / NFreq;
-
- end
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-
- % %% calculate and plot the PDP and frequency response over time
- % % The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
- % % but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
- % disp('[eval_data_MU] PDP Calculation');
- % for k=1:NUser
- % DProf(k,:) = DProf(k,:) + DProfile(permute(squeeze(H(:,:,:,:,k)),[4 3 2 1]));
- % end
-
- %% save calcualted data
- filename_mat = fullfile(filepath,sprintf('results_DPC_%dx1_idx_%d.mat',NTx,idx));
- if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*');
- %'gain*');
- else
- save(filename_mat,'CAP*');
- %'gain*');
- end
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-
-
diff --git a/openair1/EMOS/MATLAB/eval_data_MU_RVQ.m b/openair1/EMOS/MATLAB/eval_data_MU_RVQ.m
deleted file mode 100644
index 3c9c9ec115..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU_RVQ.m
+++ /dev/null
@@ -1,170 +0,0 @@
-bit_vec = [4 6 12]
-
-% filename_codebook = 'Codebook.mat'; %random codebook
-% load(fullfile('~/Devel/openair1/EMOS/MATLAB/lim_feedback',filename_codebook));
-% filestr = 'RVQ'
-
-filename_codebook = sprintf('Codebook_idx_new%d.mat',idx); %random correlated codebook
-if ~exist(filename_codebook,'file')
- disp('[eval_data_MU] Generating Codebook')
- generate_corr_codebook
-else
- load(filename_codebook);
-end
-filestr = 'RVQ_corr'
-
-% % grassmanian codebook
-% filename_codebook = sprintf('codebook_%d_%dvec.mat',NTx,pow2(bit_vec));
-% load(fullfile('~/Devel/openair1/EMOS/MATLAB/lim_feedback',filename_codebook));
-% Codebook = repmat(eval(sprintf('codebook_%d_%dvec',NTx,pow2(bit_vec))),[1,1,4]);
-% filestr = 'Grassmanian'
-
-timestamp = datestr(now);
-timestamp = strrep(timestamp,' ','_');
-
-SNR=10^(SNRdB/10);
-% MMSE regularization factor
-mu = NTx/SNR;
-% noise variance
-n_p=1/SNR;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{avail_users(k),idx},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filename_emos{avail_users(k),idx});
- end
-end
-
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(avail_users(u),idx).framestamp_tx - min(framestamp_min(avail_users,idx)) + 1) = ~est(avail_users(u),idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-%DProf = zeros(NUser, NTx, 64);
-
-%CAP_4U_ZF_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-%CAP_4U_MMSE_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-CAP_4U_ZF_RVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-CAP_4U_MMSE_RVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-CAP_SU_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec),NUser);
-
-Codebook_ind = zeros(NFreq,NFrames_pos,length(bit_vec),NUser);
-
-%while any(NFrames_read < NFrames(:,idx).')
-%fk 30.1.2008: changed the following two line since it produced an endless loop
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- if IFversion>=2
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates2_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- else
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- end
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(sched_users(k),idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(sched_users(k),idx).Hnorm));
- end
-
- disp('[eval_data_MU] Calculating SDMA capacities');
- for k2=1:size(H_fq,4)
- %[HSf,antenna_index] = antenna_selection(H_fq(:,:,:,k2,:));
- for k1=1:size(H_fq,3)
- HS = squeeze(H_fq(1,:,k1,k2,:));
- Codebook_ind(k1,NFrames_Tx_proc + k2,:,:) = get_codebook_idx(HS,Codebook(:,1:pow2(max(bit_vec)),1:NUser),bit_vec);
- for b = 1:length(bit_vec)
-
-% [Hq, Codebook_ind(k1,NFrames_Tx_proc + k2,b,:)] = quantize_H(HS,bit_vec(b));
-%
-% [CAP_4U_MMSE_CVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_CVQ(HS.',Hq.',n_p,mu);
-% [CAP_4U_ZF_CVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_CVQ(HS.',Hq.',n_p,0);
-
- Hq = zeros(NTx,NUser);
- for k=1:NUser
- Hq(:,k) = Codebook(:,Codebook_ind(k1,NFrames_Tx_proc + k2,b,k),k);
- % Hq has to have the same amplitude as H
- Hq(:,k) = Hq(:,k).*norm(HS(:,k));
- CAP_SU_CVQ(k1,NFrames_Tx_proc + k2,b,k) = log2(1+SNR^2*abs(Hq(:,k)'*HS(:,k))^2);
- end
-
- [CAP_4U_MMSE_RVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_RVQ(HS.',Hq.',n_p,mu);
- [CAP_4U_ZF_RVQ(k1,NFrames_Tx_proc + k2,b)] = MISO_RVQ(HS.',Hq.',n_p,0);
- end
- end
- end
-
-% %% calculate and plot the PDP and frequency response over time
-% % The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
-% % but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
-% disp('[eval_data_MU] PDP Calculation');
-% for k=1:NUser
-% for l=1:NTx
-% DProf(k,l,:) = DProf(k,l,:) + reshape(DProfile(squeeze(permute(H(:,l,:,:,k),[4 3 2 1 5]))),1,1,[]);
-% end
-% end
-
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-% sendmail('kaltenbe@eurecom.fr',['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ],'');
-
- %% save calcualted data
- filename_mat = fullfile(filepath,sprintf('results_%s_%dbit_SNR_%d_idx_%d_%s.mat',filestr,bit_vec(1),SNRdB,idx,timestamp));
- if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*','bit_vec','Codebook_ind');
- else
- save(filename_mat,'CAP*','bit_vec','Codebook_ind');
- end
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-%DProf = DProf ./ chunks;
-
-% %% save calcualted data
-% filename_mat = fullfile(filepath,sprintf('results_RVQ_corr_SNR_%d_idx_%d.mat',SNRdB,idx));
-% if strfind(version,'7.3')
-% save(filename_mat,'-V7','CAP*','bit_vec','Codebook_ind');
-% else
-% save(filename_mat,'CAP*','bit_vec','Codebook_ind');
-% end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/eval_data_MU_multiSNR.m b/openair1/EMOS/MATLAB/eval_data_MU_multiSNR.m
deleted file mode 100644
index c72f1e2b63..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU_multiSNR.m
+++ /dev/null
@@ -1,199 +0,0 @@
-% this script with DPC, MMSE and SU MIMO takes about 10h for one SNR on the
-% cluster.
-
-load_channel = 1;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{k,idx},'r');
-end
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = ~est(u,idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-NSNR = length(SNRdB);
-
-% CAP_SU_TDMA_ML = [];
-% CAP_SU_TDMA_MMSE = [];
-% CAP_SU_TDMA_CL_ML = [];
-
-% CAP_4U_4x2_DPC = zeros(NFreq,NFrames_Tx);
-% CAP_4U_4x1_DPC = zeros(NFreq,NFrames_pos,NSNR);
-% CAP_4U_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_4U_MMSE = zeros(NFreq,NFrames_Tx,NSNR);
-% CAP_4U_AS_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_4U_AS_MMSE = zeros(NFreq,NFrames_Tx);
-CAP_2U_ZF = zeros(NFreq,NFrames_Tx,NSNR);
-CAP_2U_MMSE = zeros(NFreq,NFrames_Tx,NSNR);
-% CAP_2U_AS_ZF = zeros(NFreq,NFrames_Tx);
-% CAP_2U_AS_MMSE = zeros(NFreq,NFrames_Tx);
-% CAP_2U_BD_WF = zeros(NFreq,NFrames_Tx);
-% CAP_2U_BD_EP = zeros(NFreq,NFrames_Tx);
-
-% Eigval_4U_ZF = zeros(NFreq,NFrames_Tx,NTx);
-
-% gain_4U_ZF = zeros(NFrames_Tx,1);
-% gain_4U_MMSE = zeros(NFrames_Tx,1);
-% gain_4U_AS_ZF = zeros(NFrames_Tx,1);
-% gain_4U_AS_MMSE = zeros(NFrames_Tx,1);
-% gain_2U_ZF = zeros(NFrames_Tx,1);
-% gain_2U_MMSE = zeros(NFrames_Tx,1);
-% gain_2U_AS_ZF = zeros(NFrames_Tx,1);
-% gain_2U_AS_MMSE = zeros(NFrames_Tx,1);
-% gain_2U_BD_WF = zeros(NFrames_Tx,2);
-% gain_2U_BD_EP = zeros(NFrames_Tx,2);
-
-
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(k,idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(k,idx).Hnorm));
- end
-
- %H_fq_MU = cat(4,H_fq_MU,H_fq);
- %H_MU = cat(4,H_MU,H);
-
- % %% calculate different capacities
- % CAP_MU_ZF = cat(1,CAP_MU_ZF,capacity_MU_ZF(H_fq,SNR,0));
- % CAP_4U_SUTS = cat(1,CAP_4U_SUTS,capacity_MU_SUTS(H_fq,SNR,0));
- % CAP_SU_TDMA_CL_ML = cat(1,CAP_SU_TDMA_CL_ML,capacity_SU_TDMA_CL_ML(H_fq(1,:,:,:,:),10.^(SNRdB./10),0));
-
- for k2=1:size(H_fq,4)
- % [HSf,antenna_index] = antenna_selection(H_fq(:,:,:,k2,:));
- for k1=1:size(H_fq,3)
- %HSUl = conj(permute(squeeze(H_fq(:,:,k1,k2,:)),[2 1 3]));
- HS = squeeze(H_fq(1,:,k1,k2,:)).';
- for k0=1:length(SNRdB)
-
- SNR=10^(SNRdB(k0)/10);
- % MMSE regularization factor
- mu = NTx/SNR;
- % noise variance
- n_p=1/SNR;
-
- % 4 Users, DPC
- % CAP_4U_4x2_DPC(k1,NFrames_Tx_read + k2) = iterative_waterfill(HSUl,SNR,50);
- % CAP_4U_4x1_DPC(k1,NFrames_Tx_proc + k2,k0) = iterative_waterfill(HSUl(:,1,:),SNR,50);
-
- % 4 Users, Antenna selection
- % HS = squeeze(HSf(:,:,k1,:,:)).';
- % [CAP_4U_AS_MMSE(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_4U_AS_ZF(k1,NFrames_Tx_read + k2),gain] = MISO_MMSE(HS,n_p,0);
- % gain_4U_AS_ZF(NFrames_Tx_read + k2,:) = gain_4U_AS_ZF(NFrames_Tx_read + k2,:) + gain;
-
- % 2 Users, Antenna selection
- % HS = squeeze(HSf(:,:,k1,:,sched_users)).';
- % [CAP_2U_AS_MMSE(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_2U_AS_ZF(k1,NFrames_Tx_read + k2), gain] = MISO_MMSE(HS,n_p,0);
- % gain_2U_AS_ZF(NFrames_Tx_read + k2,:) = gain_2U_AS_ZF(NFrames_Tx_read + k2,:) + gain;
-
- % 4 Users, No Antenna selection
- % HS = squeeze(H_fq(1,:,k1,k2,:)).';
- % [CAP_4U_MMSE(k1,NFrames_Tx_read + k2,k0), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_4U_MMSE(NFrames_Tx_read + k2,:) = gain_4U_MMSE(NFrames_Tx_read + k2,:) + gain;
- % [CAP_4U_ZF(k1,NFrames_Tx_read + k2), gain,eigval] = MISO_MMSE(HS,n_p,0);
- % gain_4U_ZF(NFrames_Tx_read + k2,:) = gain_4U_ZF(NFrames_Tx_read + k2,:) + gain;
- % Eigval_4U_ZF(k1,NFrames_Tx_read + k2,:) = eigval;
-
- % 2 Users, No Antenna selection
- HS = squeeze(H_fq(1,:,k1,k2,sched_users)).';
- [CAP_2U_MMSE(k1,NFrames_Tx_read + k2, k0), gain] = MISO_MMSE(HS,n_p,mu);
- % gain_2U_MMSE(NFrames_Tx_read + k2,:) = gain_2U_MMSE(NFrames_Tx_read + k2,:) + gain;
- [CAP_2U_ZF(k1,NFrames_Tx_read + k2, k0), gain] = MISO_MMSE(HS,n_p,0);
- % gain_2U_ZF(NFrames_Tx_read + k2,:) = gain_2U_ZF(NFrames_Tx_read + k2,:) + gain;
-
- % 2 Users, block diagonalization
- % HS = squeeze(H_fq(:,:,k1,k2,sched_users));
- % [CAP_2U_BD_EP(k1,NFrames_Tx_read + k2), gain] = BD(HS,n_p,0);
- % gain_2U_BD_EP(NFrames_Tx_read + k2,:) = gain_2U_BD_EP(NFrames_Tx_read + k2,:) + gain;
- % [CAP_2U_BD_WF(k1,NFrames_Tx_read + k2), gain] = BD(HS,n_p,1);
- % gain_2U_BD_WF(NFrames_Tx_read + k2,:) = gain_2U_BD_EP(NFrames_Tx_read + k2,:) + gain;
-
- end
- end
-
- % gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_4U_AS_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_4U_AS_ZF(NFrames_Tx_read + k2,:) = gain_4U_AS_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) = gain_2U_AS_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_AS_ZF(NFrames_Tx_read + k2,:) = gain_2U_AS_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_4U_MMSE(NFrames_Tx_read + k2,:) = gain_4U_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_4U_ZF(NFrames_Tx_read + k2,:) = gain_4U_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_MMSE(NFrames_Tx_read + k2,:) = gain_2U_MMSE(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_ZF(NFrames_Tx_read + k2,:) = gain_2U_ZF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_BD_WF(NFrames_Tx_read + k2,:) = gain_2U_BD_WF(NFrames_Tx_read + k2,:) / NFreq;
- % gain_2U_BD_EP(NFrames_Tx_read + k2,:) = gain_2U_BD_EP(NFrames_Tx_read + k2,:) / NFreq;
-
- end
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-
- % %% calculate and plot the PDP and frequency response over time
- % % The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
- % % but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
- % disp('[eval_data_MU] PDP Calculation');
- % for k=1:NUser
- % DProf(k,:) = DProf(k,:) + DProfile(permute(squeeze(H(:,:,:,:,k)),[4 3 2 1]));
- % end
-
- %% save calcualted data
- filename_mat = fullfile(filepath,sprintf('results_multiSNR_4x1_idx_%d.mat',idx));
- if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*','SNRdB');
- %'gain*');
- else
- save(filename_mat,'CAP*','SNRdB');
- %'gain*');
- end
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-
-
diff --git a/openair1/EMOS/MATLAB/eval_data_MU_plot.m b/openair1/EMOS/MATLAB/eval_data_MU_plot.m
deleted file mode 100755
index fc5937bd18..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU_plot.m
+++ /dev/null
@@ -1,382 +0,0 @@
-filename_mat = sprintf('results_idx_%d.mat',idx);
-
-filepath = 'figs_spawc';
-logscale = 1;
-
-if 0
- %%
- h_fig = figure(1);
- plot_style = {'r.','m.','b.','k.'};
- for k = 1:NUser
- plot(est(k,idx).framestamp_tx(~est(k,idx).err_ind),mean(est(k,idx).rx_rssi_dBm(~est(k,idx).err_ind),1),plot_style{k});
- %plot(round(est(k,idx).timestamp*3000/8)+offset_frames(k),mean(est(k,idx).rx_rssi_dBm,1),plot_style{k});
- hold on
- %plot(est(k,idx).framestamp_tx(est(k,idx).err_ind),mean(est(k,idx).rx_rssi_dBm(est(k,idx).err_ind),1),'rx');
- %plot(round(est(k,idx).timestamp(logical(est(k,idx).err_ind))*3000/8)+offset_frames(k),mean(est(k,idx).rx_rssi_dBm(logical(est(k,idx).err_ind)),1),'rx');
- end
- hold off
- xlabel('Frame')
- ylabel('RSSI [dBm]')
- legend('User 1','User 2','User 3','User 4')
- filename_rssi = fullfile(filepath,sprintf('idx_%d_rx_rssi.eps',idx));
- saveas(h_fig, filename_rssi, 'epsc2');
-
- %%
- h_fig = figure(2);
- colors = {'red','magenta','blue','white'};
- if exist('mm','var')
- image(mm);
- hold on;
- end
- for k = 1:NUser
- plot_gps_coordinates_sophia([], gps_data(k,idx).longitude, gps_data(k,idx).latitude, est(k,idx).rx_rssi_dBm(1:100:end), sprintf('User %d',k),colors{k});
- hold on;
- end
- hold off
- axis([3264 5819 2610 4556])
- filename_gps = fullfile(filepath,sprintf('idx_%d_map_rx_rssi.eps',idx));
- saveas(h_fig, filename_gps, 'epsc2');
- filename_gps_pdf = fullfile(filepath,sprintf('idx_%d_map_rx_rssi.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_gps_pdf,filename_gps));
-
- %%
- h_fig = figure(3);
- align_matrix = repmat(-1,4,max(framestamp_max(:,idx)) - min(framestamp_min(:,idx)) + 1);
- for u = 1:4
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = est(u,idx).err_ind;
- end
-
- map = [1 1 1; ...
- 0 1 0; ...
- 1 0 0];
-
- image(align_matrix+2); % image values have to be in range 1:m
- colormap(map);
- set(gca,'YTickLabel',{'','User 1','','User 2','','User 3','','User 4'},...
- 'YTick',[0.5 1 1.5 2 2.5 3 3.5 4],...
- 'XTick',zeros(1,0));
- %pos = get(h_fig,'Position');
- set(h_fig,'Position',[360 504 560 104])
- %pos = get(h_fig,'PaperPosition');
- set(h_fig,'PaperPosition',[0.25 2.5 8 1.5])
- filename_align = fullfile(filepath,sprintf('idx_%d_align.eps',idx));
- saveas(h_fig, filename_align, 'epsc2');
-end
-
-if exist(filename_mat,'file')
- load(filename_mat)
-
-%%
- % post processing
- [Cap_SU_TDMA_CL_ML_f,Cap_SU_TDMA_CL_ML_x] = ecdf(CAP_SU_TDMA_CL_ML(:));
- [Cap_SU_TDMA_ML_f,Cap_SU_TDMA_ML_x] = ecdf(CAP_SU_TDMA_ML(:));
- [Cap_SU_TDMA_MMSE_f,Cap_SU_TDMA_MMSE_x] = ecdf(CAP_SU_TDMA_MMSE(:));
- [Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(CAP_4U_ZF(:));
- [Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(CAP_4U_MMSE(:));
- [Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(CAP_2U_ZF(:));
- [Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(CAP_2U_MMSE(:));
- [Cap_4U_AS_ZF_f,Cap_4U_AS_ZF_x] = ecdf(CAP_4U_AS_ZF(:));
- [Cap_4U_AS_MMSE_f,Cap_4U_AS_MMSE_x] = ecdf(CAP_4U_AS_MMSE(:));
- [Cap_2U_AS_ZF_f,Cap_2U_AS_ZF_x] = ecdf(CAP_2U_AS_ZF(:));
- [Cap_2U_AS_MMSE_f,Cap_2U_AS_MMSE_x] = ecdf(CAP_2U_AS_MMSE(:));
- [Cap_2U_BD_WF_f,Cap_2U_BD_WF_x] = ecdf(CAP_2U_BD_WF(:));
- [Cap_2U_BD_EP_f,Cap_2U_BD_EP_x] = ecdf(CAP_2U_BD_EP(:));
- [Cap_2U2_ZF_f,Cap_2U2_ZF_x] = ecdf(CAP_2U2_ZF(:));
- [Cap_2U2_MMSE_f,Cap_2U2_MMSE_x] = ecdf(CAP_2U2_MMSE(:));
-
- % use the following color coding
- % ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
- % 4U = '-', 2U = '--'
- % measured = 2pt, iid = 1pt
-
-%% SU-MIMO TDMA vs 2U MU-MIMO ZF and 2U MU-MIMO MMSE (measured only)
- h_fig = figure(4);
- %load('cap_iid.mat')
- hold off
- %plot(Cap_MU_SUTS_iid_x,Cap_MU_SUTS_iid_f,'k','Linewidth',1)
- %hold on
-
- %load('Cap_iid_N_Rx=1.mat')
- %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b','Linewidth',1)
- %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
- %plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,'k','Linewidth',2)
- plot(Cap_SU_TDMA_MMSE_x,Cap_SU_TDMA_MMSE_f,'k','Linewidth',2)
- hold on
-
- %plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b','Linewidth',2)
- %plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
- plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
- plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
- legend('SU-MIMO TDMA MMSE measured','MU-MIMO ZF 2U measured','MU-MIMO MMSE 2U measured',...
- 'Location','SouthEast')
- title('SU-MIMO vs. MU-MIMO with equal multiplexing gain','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('CDF')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_2U.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_2U.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO TDMA vs 4U MU-MIMO ZF and 4U MU-MIMO MMSE (measured only)
- h_fig = figure(5);
- %load('cap_iid.mat')
- hold off
- %plot(Cap_MU_SUTS_iid_x,Cap_MU_SUTS_iid_f,'k','Linewidth',1)
- %hold on
-
- %load('Cap_iid_N_Rx=1.mat')
- %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b','Linewidth',1)
- %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
- %plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,'k','Linewidth',2)
- %plot(Cap_SU_TDMA_MMSE_x,Cap_SU_TDMA_MMSE_f,'k','Linewidth',2)
- plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,'k','Linewidth',2)
- hold on
-
- plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
- %plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
- %plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
- legend('SU-MIMO TDMA CL measured','MU-MIMO ZF 4U measured','MU-MIMO MMSE 4U measured',...
- 'Location','SouthEast')
- title('SU-MIMO vs. MU-MIMO with max. multipexing gain','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('CDF')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_4U.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_4U.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO TDMA vs 4U MU-MIMO ZF and 4U MU-MIMO MMSE (measured+iid)
- h_fig = figure(6);
- load('cap_iid.mat')
- hold off
- plot(Cap_SU_TDMA_ML_iid_x,Cap_SU_TDMA_ML_iid_f,'k-.','Linewidth',1)
- hold on
-
- load('Cap_iid_N_Rx=1.mat')
- plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
- hold on
- plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
- plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,'k-.','Linewidth',2)
-
- plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b--','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
- %plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
- %plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
- legend('SU-MIMO TDMA iid','MU-MIMO ZF 4U iid','MU-MIMO MMSE 4U iid',...
- 'SU-MIMO TDMA measured','MU-MIMO ZF 4U measured','MU-MIMO MMSE 4U measured',...
- 'Location','SouthEast')
- title('Theoretical ideal models vs. measured channels','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('CDF')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_4U_iid.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_4U_iid.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% AS vs. no AS for 2 and 4 Users
- h_fig = figure(7);
- % AS = load('Cap_iid_N_Rx=2.mat');
- hold off
- %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b','Linewidth',1)
- %hold on
- %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
- %hold on
- %plot(AS.Cap_4U_MMSE_iid_x,AS.Cap_4U_MMSE_iid_f,'m','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
- %plot(AS.Cap_2U_MMSE_iid_x,AS.Cap_2U_MMSE_iid_f,'m--','Linewidth',1)
-
- %plot(Cap_4U_AS_ZF_x,Cap_4U_AS_ZF_f,'b','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
- hold on
- plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'m','Linewidth',2)
-
- %plot(Cap_2U_AS_ZF_x,Cap_2U_AS_ZF_f,'b--','Linewidth',2)
- plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
- plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,'m--','Linewidth',2)
-
- legend('MU-MIMO MMSE 4U measured','MU-MIMO MMSE AS 4U measured','MU-MIMO MMSE 2U measured','MU-MIMO MMSE AS 2U measured',...
- 'Location','SouthEast')
- title('No antenna selection vs. antenna selection','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('CDF')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_AS.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_AS.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% BD vs. MMSE maximum multiplexing gain
- h_fig = figure(8);
- AS = load('Cap_iid_N_Rx=2.mat');
- hold off
- plot(AS.Cap_2U_BD_WF_iid_x,AS.Cap_2U_BD_WF_iid_f,'k--','Linewidth',1)
- hold on
-
- plot(AS.Cap_4U_MMSE_iid_x,AS.Cap_4U_MMSE_iid_f,'r','Linewidth',1)
- %plot(AS.Cap_2U_MMSE_iid_x,AS.Cap_2U_MMSE_iid_f,'m--','Linewidth',1)
-
- plot(Cap_2U_BD_WF_x,Cap_2U_BD_WF_f,'k--','Linewidth',2)
-
- plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'r','Linewidth',2)
- %plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,'m--','Linewidth',2)
-
- %plot(Cap_2U2_MMSE_x,Cap_2U2_MMSE_f,'r--','Linewidth',2);
- %plot(Cap_2U2_ZF_x,Cap_2U2_ZF_f,'b--','Linewidth',2);
-
- legend('MU-MIMO BD 2U iid ',...
- 'MU-MIMO MMSE AS 4U iid',...
- 'MU-MIMO BD 2U measured ',...
- 'MU-MIMO MMSE AS 4U measured',...
- 'Location','SouthEast')
- title('MMSE vs. BD with maximum multiplexing gain','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('CDF')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_BD.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_BD.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% BD vs. MMSE vs. DPC maximum multiplexing gain
- h_fig = figure(8);
- load results_DPC_idx_32.mat
- [Cap_4U_DPC_f,Cap_4U_DPC_x] = ecdf(CAP_4U_DPC(:));
-
- AS = load('Cap_iid_N_Rx=2.mat');
- hold off
- plot(AS.Cap_2U_BD_WF_iid_x,AS.Cap_2U_BD_WF_iid_f,'k--','Linewidth',1)
- hold on
-
- plot(AS.Cap_4U_MMSE_iid_x,AS.Cap_4U_MMSE_iid_f,'r','Linewidth',1)
- %plot(AS.Cap_2U_MMSE_iid_x,AS.Cap_2U_MMSE_iid_f,'m--','Linewidth',1)
-
- plot(AS.Cap_4U_DPC_iid_x,AS.Cap_4U_MMSE_iid_f,'b-.','Linewidth',1);
-
- plot(Cap_2U_BD_WF_x,Cap_2U_BD_WF_f,'k--','Linewidth',2)
-
- plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'r','Linewidth',2)
- %plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,'m--','Linewidth',2)
-
- %plot(Cap_2U2_MMSE_x,Cap_2U2_MMSE_f,'r--','Linewidth',2);
- %plot(Cap_2U2_ZF_x,Cap_2U2_ZF_f,'b--','Linewidth',2);
-
- plot(Cap_4U_DPC_x,Cap_4U_MMSE_f,'b-.','Linewidth',2);
-
- legend('MU-MIMO BD 2U iid ',...
- 'MU-MIMO MMSE AS 4U iid',...
- 'MU-MIMO DPC 4U iid', ...
- 'MU-MIMO BD 2U measured ',...
- 'MU-MIMO MMSE AS 4U measured',...
- 'MU-MIMO DPC 4U measured',...
- 'Location','SouthEast')
- title('MMSE vs. BD vs. DPC with maximum multiplexing gain','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('CDF')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_DPC.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_DPC.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-
-
-%%
- h_fig = figure(9);
- colors = {'red','magenta','blue','black'};
- for k = 1:NUser
- plot((0:63)/7.68,10*log10(DProf(k,:)),'Linewidth',2,'Color',colors{k});
- hold on
- end
- hold off
- xlabel('Delay [\mus]');
- ylabel('Receive Power Level [dB]');
- legend('User 1','User 2','User 3','User 4')
- grid on
- filename_pdp = fullfile(filepath,sprintf('idx_%d_Dprofile.eps',idx));
- saveas(h_fig, filename_pdp, 'epsc2');
- filename_pdp_pdf = fullfile(filepath,sprintf('idx_%d_Dprofile.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_pdp_pdf,filename_pdp));
-
-%%
- h_fig = figure(10);
- colors = {'red','magenta','blue','black'};
- for k = 1:2
- plot(min(framestamp_min(:,idx)):max(framestamp_max(:,idx)),filter(ones(1,50)/50,1,gain_2U_BD(:,k)),'Linewidth',1,'Color',colors{k});
- hold on
- end
- hold off
- xlabel('Frame');
- ylabel('Gain');
- legend('User 1','User 2','User 3','User 4')
- grid on
- filename_MUgains = fullfile(filepath,sprintf('idx_%d_MUgains.eps',idx));
- saveas(h_fig, filename_MUgains, 'epsc2');
-
-%%
-end
diff --git a/openair1/EMOS/MATLAB/eval_data_MU_test.m b/openair1/EMOS/MATLAB/eval_data_MU_test.m
deleted file mode 100644
index 4264f6ee96..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_MU_test.m
+++ /dev/null
@@ -1,119 +0,0 @@
-load_channel = 1;
-
-SNR=10^(SNRdB/10);
-% MMSE regularization factor
-mu = NTx/SNR;
-% noise variance
-n_p=1/SNR;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{sched_users(k),idx},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filename_emos{sched_users(k),idx});
- end
-end
-
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = ~est(u,idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-DProf = zeros(NUser, NTx, 64);
-
-bit_vec = [4 8 12 16];
-
-CAP_4U_ZF_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-CAP_4U_MMSE_CVQ = zeros(NFreq,NFrames_pos,length(bit_vec));
-
-%while any(NFrames_read < NFrames(:,idx).')
-%fk 30.1.2008: changed the following two line since it produced an endless loop
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(sched_users(k),idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(sched_users(k),idx).Hnorm));
- end
-
- disp('[eval_data_MU] Calculating SDMA capacities');
- for k2=1:size(H_fq,4)
- %[HSf,antenna_index] = antenna_selection(H_fq(:,:,:,k2,:));
- for k1=1:size(H_fq,3)
- HS = squeeze(H_fq(1,:,k1,k2,:)).';
- for b = 1:length(bit_vec)
- [CAP_4U_MMSE_CVQ(k1,NFrames_Tx_proc + k2,b), Hq] = MISO_CVQ(HS,n_p,mu,bit_vec(b));
- [CAP_4U_ZF_CVQ(k1,NFrames_Tx_proc + k2,b), Hq] = MISO_CVQ(HS,n_p,0,bit_vec(b));
- end
- end
- end
-
- %% calculate and plot the PDP and frequency response over time
- % The function Dprofile requires that size(H)=[N_t,N_tau,N_Tx,N_Rx]
- % but load estimates returns size(H1) = [NRx,NTx,NTau,NFrames]
- disp('[eval_data_MU] PDP Calculation');
- for k=1:NUser
- for l=1:NTx
- DProf(k,l,:) = DProf(k,l,:) + reshape(DProfile(squeeze(permute(H(:,l,:,:,k),[4 3 2 1 5]))),1,1,[]);
- end
- end
-
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-DProf = DProf ./ chunks;
-
-%% save calcualted data
-filename_mat = fullfile(filepath,sprintf('results_CVQ_idx_%d.mat',idx));
-if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*','DProf');
-else
- save(filename_mat,'DProf','CAP*');
-end
-
-
diff --git a/openair1/EMOS/MATLAB/eval_data_SU_TDMA.m b/openair1/EMOS/MATLAB/eval_data_SU_TDMA.m
deleted file mode 100644
index 4eeb42b4f8..0000000000
--- a/openair1/EMOS/MATLAB/eval_data_SU_TDMA.m
+++ /dev/null
@@ -1,102 +0,0 @@
-load_channel = 1;
-
-SNR=10^(SNRdB/10);
-% MMSE regularization factor
-mu = NTx/SNR;
-% noise variance
-n_p=1/SNR;
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filename_emos{k,idx},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filename_emos{k,idx});
- end
-end
-
-
-% read the data in chunks of 1000 Frames
-NFrames_max = 1000;
-NFrames_read = zeros(1,NUser);
-NFrames_Tx = max(framestamp_max(:,idx))-min(framestamp_min(:,idx))+1;
-NFreq = 40;
-
-chunks = 0;
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-
-align_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = true;
-end
-
-crc_matrix = false(NUser,NFrames_Tx);
-for u = 1:NUser
- crc_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = ~est(u,idx).err_ind;
-end
-
-NFrames_pos = sum(all(crc_matrix));
-
-CAP_SU4x1_TDMA_ML = [];
-CAP_SU_TDMA_DSTTD = [];
-CAP_SU4x1_TDMA_CL_ML = [];
-
-%while any(NFrames_read < NFrames(:,idx).')
-%fk 30.1.2008: changed the following two line since it produced an endless loop
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(k,idx).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(est(k,idx).Hnorm));
- end
-
- %H_fq_MU = cat(4,H_fq_MU,H_fq);
- %H_MU = cat(4,H_MU,H);
-
- %% calculate different capacities
- disp('[eval_data_MU] Calculating TDMA capacities');
- % CAP_MU_ZF = cat(1,CAP_MU_ZF,capacity_MU_ZF(H_fq,SNR,0));
- CAP_SU4x1_TDMA_ML = cat(1,CAP_SU4x1_TDMA_ML,capacity_SU_TDMA_ML(H_fq(1,:,:,:,:),SNR,0));
- CAP_SU_TDMA_DSTTD = cat(1,CAP_SU_TDMA_DSTTD,capacity_SU_TDMA_DSTTD(H_fq,SNR,0));
- CAP_SU4x1_TDMA_CL_ML = cat(1,CAP_SU4x1_TDMA_CL_ML,capacity_SU_TDMA_CL_ML(H_fq(1,:,:,:,:),SNR,0));
-
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
-%% save calcualted data
-filename_mat = fullfile(filepath,sprintf('results_SU_TDMA_SNR_%d_idx_%d.mat',SNRdB,idx));
-if strfind(version,'7.3')
- save(filename_mat,'-V7','CAP*')
-else
- save(filename_mat,'CAP*')
-end
-
-
diff --git a/openair1/EMOS/MATLAB/gen_align_matrix.m b/openair1/EMOS/MATLAB/gen_align_matrix.m
deleted file mode 100755
index 8c9ac8cc76..0000000000
--- a/openair1/EMOS/MATLAB/gen_align_matrix.m
+++ /dev/null
@@ -1,29 +0,0 @@
-load metadata_MU
-
-%%
-framestamp_max_all = max(max(framestamp_max));
-framestamp_min_all = min(min(framestamp_min(framestamp_min>0)));
-
-align_matrix = repmat(-1,4,framestamp_max_all-framestamp_min_all);
-for idx = 1:size(est,2)
- for u = 1:size(est,1)
- align_matrix(u,est(u,idx).framestamp_tx - framestamp_min_all + 1) = est(u,idx).err_ind;
- end
-end
-
-map = [1 1 1; ...
- 0 1 0; ...
- 1 0 0];
-
-h_fig = figure;
-image(framestamp_min_all:framestamp_max_all,1:4,align_matrix+2);
-colormap(map);
-
-xtick = floor(framestamp_min_all/22500)*22500:22500:floor(framestamp_max_all/22500)*22500;
-set(gca,'xtick',xtick)
-set(gca,'xticklabel',mod(floor(xtick/22500),100))
-xlabel('file index');
-set(gca,'YTick',[0.5 1 1.5 2 2.5 3 3.5 4]);
-set(gca,'YTickLabel',{'','User 1','','User 2','','User 3','','User 4'});
-
-saveas(h_fig, 'rx_crc_time.eps', 'psc2');
diff --git a/openair1/EMOS/MATLAB/import_filter/eval_data2_MU.m b/openair1/EMOS/MATLAB/import_filter/eval_data2_MU.m
deleted file mode 100644
index da73c1018a..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/eval_data2_MU.m
+++ /dev/null
@@ -1,79 +0,0 @@
-%% parameters and initialization
-close all
-clear all
-
-%addpath('import_filter')
-
-filenames = {'/extras/kaltenbe/EMOS/data/20081023_CHORIST_BARCELONA/Campus2/data_term1_idx9_20081024_092541.EMOS', ...
- '/extras/kaltenbe/EMOS/data/20081023_CHORIST_BARCELONA/Campus2/data_term3_idx9_20081024_092543.EMOS'};
-
-IFversion = 2.0;
-NUser = 2;
-NTx = 2;
-NRx = 2;
-
-NFrames_read = zeros(1,NUser);
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-NFrames_max = 200; %Size of a chunk
-chunks = 0;
-
-% load the metadata
-[estimates, gps_data, NFrames, align_matrix, crc_matrix] = load_estimates2_MU_no_channel(filenames, NTx, Inf, IFversion);
-
-%%
-NFrames_pos = sum(all(crc_matrix));
-NChunks = ceil(NFrames_pos/NFrames_max);
-
-% DProf = zeros(NChunks, NRx, NTx, NUser, 256/NTx);
-% R = zeros(NChunks, NUser*NTx*NRx, NUser*NTx*NRx);
-% Rice = zeros(NChunks,NUser);
-
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filenames{k},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filenames{k});
- end
-end
-
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates2_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(estimates(k).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(estimates(k).Hnorm));
- end
-
- % do whatever you like with H or H_fq
- keyboard
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
diff --git a/openair1/EMOS/MATLAB/import_filter/eval_data_MU.m b/openair1/EMOS/MATLAB/import_filter/eval_data_MU.m
deleted file mode 100644
index ba44d94aea..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/eval_data_MU.m
+++ /dev/null
@@ -1,98 +0,0 @@
-%% parameters and initialization
-close all
-clear all
-
-addpath('import_filter')
-
-% uncomment this for measurement 1
-% filenames = {'meas1/data_term1_idx31_20071126_153610.EMOS',...
-% 'meas1/data_term2_idx31_20071126_153327.EMOS',...
-% 'meas1/data_term3_idx31_20071126_153548.EMOS',...
-% 'meas1/data_term4_idx31_20071126_153535.EMOS'};
-% IFversion = 0.3;
-% NUser = 4;
-% NTx = 4;
-% NRx = 2;
-
-% uncomment this for measurement 2
-filenames = {'meas2/data_term1_idx51_20080213_153009.EMOS',...
- 'meas2/data_term2_idx51_20080213_105524.EMOS',...
- 'meas2/data_term3_idx51_20080213_155013.EMOS',...
- 'meas2/data_term4_idx51_20080213_105607.EMOS'};
-IFversion = 0.4;
-NUser = 4;
-NTx = 4;
-NRx = 2;
-
-% uncomment this for measurement 4
-% filenames = {'meas4/data_term1_idx4_20080618_150244.EMOS',...
-% 'meas4/data_term2_idx4_20080618_145746.EMOS'};
-% IFversion = 0.4;
-% NUser = 2;
-% NTx = 2;
-% NRx = 2;
-
-NFrames_read = zeros(1,NUser);
-NFrames_Tx_read = 0; %Number of Tx frames read from file
-NFrames_Tx_proc = 0; %Number of Tx frames processed (with all crc's positive)
-NFrames_max = 200; %Size of a chunk
-chunks = 0;
-
-% load the metadata
-[estimates, gps_data, NFrames, align_matrix, crc_matrix] = load_estimates_MU_no_channel(filenames, NTx);
-
-NFrames_pos = sum(all(crc_matrix));
-NChunks = ceil(NFrames_pos/NFrames_max);
-DProf = zeros(NChunks, NRx, NTx, NUser, 256/NTx);
-
-R = zeros(NChunks, NUser*NTx*NRx, NUser*NTx*NRx);
-Rice = zeros(NChunks,NUser);
-
-
-% open all files
-for k=1:NUser
- fid(k) = fopen(filenames{k},'r');
- if (fid(k)==-1)
- error('[eval_data_MU] Error opening file %s', filenames{k});
- end
-end
-
-while any(NFrames_read < sum(align_matrix,2).')
-
- %Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max, NFrames_Tx);
- Tx_frames = (NFrames_Tx_read+1) : min(NFrames_Tx_read + NFrames_max,size(align_matrix,2));
- [H, H_fq, dummy_est, dummy_gps, NFrames_read] = load_estimates_MU_lm_new(fid, NTx, length(Tx_frames), NFrames_read, align_matrix(:,Tx_frames), IFversion);
- if isempty(H_fq)
- warning('[eval_data_MU] No data read! Terminating loop.');
- break
- end
- NFrames_Tx_read = NFrames_Tx_read + size(H_fq,4);
-
- %use only measurements where all users have positive CRC
- H = H(:,:,:,all(crc_matrix(:,Tx_frames)),:);
- H_fq = H_fq(:,:,:,all(crc_matrix(:,Tx_frames)),:);
-
- chunks = chunks + 1;
- disp(['[eval_data_MU] Chunk = ' num2str(chunks) ', NFrames_read = ' num2str(NFrames_read) ', NFrames_Tx_read = ' num2str(NFrames_Tx_read) ]);
-
- % normalize H per user
- % the mean squared Frobenius norm has been precomputed in est(k,idx).Hnorm
- % in order to get E(|h_{i,j,k}|^2) = 1, we need
- % size(H_fq) = [NRx,NTx,NFreq,NFrames,Nuser]
- for k=1:NUser
- H(:,:,:,:,k) = H(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(estimates(k).Hnorm));
- H_fq(:,:,:,:,k) = H_fq(:,:,:,:,k)*sqrt(NTx*NRx)/sqrt(mean(estimates(k).Hnorm));
- end
-
- % do whatever you like with H or H_fq
- keyboard
-
- NFrames_Tx_proc = NFrames_Tx_proc + size(H_fq,4);
- disp(['[eval_data_MU] Chunk = ' num2str(chunks), ', NFrames_Tx_proc = ' num2str(NFrames_Tx_proc) ]);
-end
-
-% close all files
-for k=1:NUser
- fclose(fid(k));
-end
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates.m b/openair1/EMOS/MATLAB/import_filter/load_estimates.m
deleted file mode 100755
index bb4b3948bd..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates.m
+++ /dev/null
@@ -1,261 +0,0 @@
-function [H, H_fq, estimates, gps_data, NFrames] = load_estimates(filename, NTx, NFrames_max, version)
-%
-% EMOS Single User Import Filter
-%
-% [H, H_fq, estimates, gps_data, NFrames] =
-% load_estimates(filename, NTx, NFrames_max, version)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NTx - Number of Tx Antenns
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Leonardo Cardoso and Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20070917 0.1 Created
-% 20071116 0.2 Added fields framestamp_tx and crc_status in the
-% dumpfile. However, the crc_status is not working
-% yet, so we still use the pdu_errors field to
-% calculate the err_ind.
-% Also more than one file can be read now at the same
-% time.
-% 20071121 0.3 crc_status is now giving right values, so we can
-% use it. However, the framestamp_tx is now buggy.
-% Therefore we recalculate it here.
-% 20071127 0.4 Removed prevoius bugs in dumpfile.
-
-if nargin < 4
- version = Inf; % We assume the latest version
-end
-if nargin < 3
- NFrames_max = Inf;
-end
-if nargin < 2
- NTx = 4;
-end
-NRx = 2;
-NFreq = 256;
-NZFreq = 160;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-TIMESTAMP_SIZE = 8;
-FRAMESTAMP_TX_SIZE = 4;
-PDU_ERRORS_SIZE = 4;
-RX_POWER_SIZE = 2;
-N0_POWER_SIZE = 2;
-RX_RSSI_SIZE = 2;
-NB_OF_OFDM_CARRIERS = 256;
-NB_ANTENNAS = 2;
-COMPLEX16_SIZE = 4;
-MAC_PDU_SIZE = 140;
-CRC_STATUS_SIZE = 4;
-NO_ESTIMATES_DISK = 100;
-
-if version >= 0.2
- FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- FRAMESTAMP_TX_SIZE + ...
- PDU_ERRORS_SIZE + ...
- RX_POWER_SIZE * NB_ANTENNAS + ...
- N0_POWER_SIZE * NB_ANTENNAS + ...
- RX_RSSI_SIZE * NB_ANTENNAS + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- MAC_PDU_SIZE + ...
- CRC_STATUS_SIZE;
-else
- FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- PDU_ERRORS_SIZE + ...
- RX_POWER_SIZE * NB_ANTENNAS + ...
- N0_POWER_SIZE * NB_ANTENNAS + ...
- RX_RSSI_SIZE * NB_ANTENNAS + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- MAC_PDU_SIZE;
-end
-
-
-DOUBLE_SIZE = 8;
-INT_SIZE = 4;
-GPS_FIX_T_SIZE = INT_SIZE + 16 * DOUBLE_SIZE;
-
-CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * FIFO_DUMP_EMOS_SIZE + GPS_FIX_T_SIZE;
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-% Preallocate data vectors
-chan0 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-chan1 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-% estimates.sch_symbol0 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-% estimates.sch_symbol1 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-estimates.timestamp = zeros(1,NFrames);
-estimates.timestamp_tx = zeros(1,NFrames);
-estimates.framestamp_tx = zeros(1,NFrames);
-estimates.pdu_errors = zeros(1,NFrames);
-estimates.err_ind = false(1,NFrames);
-estimates.rx_power = zeros(NB_ANTENNAS,NFrames);
-estimates.n0_power = zeros(NB_ANTENNAS,NFrames);
-estimates.rx_rssi_dBm = zeros(NB_ANTENNAS,NFrames);
-estimates.mac_pdu = char(zeros(MAC_PDU_SIZE,NFrames));
-estimates.flag = char(zeros(1,NFrames));
-estimates.Hnorm = zeros(1,NFrames);
-
-gps_data.timestamp = zeros(1,NFrames/100);
-gps_data.mode = zeros(1,NFrames/100);
-gps_data.ept = zeros(1,NFrames/100);
-gps_data.latitude = zeros(1,NFrames/100);
-gps_data.longitude = zeros(1,NFrames/100);
-gps_data.rest = zeros(12,NFrames/100);
-
-
-k = 1;
-l = 1;
-
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while ~feof(fid) && k <= min(sum(NFrames_file(1:n)),NFrames_max)
-
- % temp = fread(fid,TIMESTAMP_SIZE,'uchar'); % Header variable
- %
- % if(strcmp(char(temp), HEADER))
- % break
- % end
-
- % Read Timestamp Data
- temp = fread(fid,TIMESTAMP_SIZE,'uchar'); % Timestamp variable
- tt=0;
- temp=temp/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp(k)=tt/1e9; % to get the timestamp in sec
-
- if version>=0.2
- % Read tx frame no
- estimates.framestamp_tx(k) = fread(fid,1,'uint');
- end
-
- % Read PDU Errors
- estimates.pdu_errors(k) = fread(fid,1,'uint');
-
- % Read RX Power
- estimates.rx_power(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read Noise Power
- estimates.n0_power(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read Noise Power
- estimates.rx_rssi_dBm(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read channel estimates
- [data,count] = fread(fid,NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2,'short'); % read
- if (count ~= NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- chan0(:,k) = data(1:2:(NB_OF_OFDM_CARRIERS*2)) + j * data(2:2:(NB_OF_OFDM_CARRIERS*2));
- chan1(:,k) = data(((NB_OF_OFDM_CARRIERS*2)+1):2:(4*NB_OF_OFDM_CARRIERS)) + j * data(((NB_OF_OFDM_CARRIERS*2)+2):2:(4*NB_OF_OFDM_CARRIERS)) ;
-
- % calculate the mean squared Frobenius norm of H
- estimates.Hnorm(k) = (sum(abs(chan0(:,k)).^2) + sum(abs(chan1(:,k)).^2))/(NZFreq/NTx);
-
- % Read extra OFDM symbol
- [data,count] = fread(fid,NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2,'short'); % read
- if (count ~= NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- %estimates.sch_symbol0(:,k) = data(1:2:(NB_OF_OFDM_CARRIERS*2)) + j * data(2:2:(NB_OF_OFDM_CARRIERS*2));
- %estimates.sch_symbol1(:,k) = data(((NB_OF_OFDM_CARRIERS*2)+1):2:(4*NB_OF_OFDM_CARRIERS)) + j * data(((NB_OF_OFDM_CARRIERS*2)+2):2:(4*NB_OF_OFDM_CARRIERS)) ;
-
- % Read MAC PDU
- estimates.mac_pdu(:,k) = fread(fid,MAC_PDU_SIZE,'uchar');
- tt=0;
- temp=estimates.mac_pdu(1:8,k)/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp_tx(k)=tt/1e9; % to get the timestamp in sec
-
-
- if version>=0.3
- estimates.err_ind(k) = (fread(fid,1,'int') == -1);
- else
- if version>=0.2
- dummy = fread(fid,1,'int');
- end
- if k > 1
- estimates.err_ind(k) = (((estimates.pdu_errors(k) - estimates.pdu_errors(k-1)) > 0));
- end
- end
-
- if version<0.2
- estimates.framestamp_tx(k)=round(tt*3e-6/8);
- elseif version<0.4 && estimates.err_ind(k) && k>1
- estimates.framestamp_tx(k) = estimates.framestamp_tx(k-1)+1;
- end
-
-
- estimates.flag(k) = estimates.mac_pdu(17,k);
-
- %read GPS data
- if (mod(k,NO_ESTIMATES_DISK)==0)
- gps_data.timestamp(l) = fread(fid,1,'double');
- gps_data.mode(l) = fread(fid,1,'int');
- gps_data.ept(l) = fread(fid,1,'double');
- gps_data.latitude(l) = fread(fid,1,'double');
- gps_data.longitude(l) = fread(fid,1,'double');
- gps_data.rest(:,l) = fread(fid,12,'double');
-
- l=l+1;
- %estimates.gps_data(k) = gps_data;
- end
-
- k=k+1;
- end
-
- fclose(fid);
-end
-
-H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames));
-H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames);
-H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames);
-
-H = ifft(H_fq,[],3);
-
-% remove zero carriers from Frequency response
-NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
-H_fq = H_fq(:,:,NZFreq_ind,:);
-
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_lm_new.m b/openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_lm_new.m
deleted file mode 100644
index 0526fd39c9..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_lm_new.m
+++ /dev/null
@@ -1,48 +0,0 @@
-function [H_MU, H_fq_MU, estimates, gps_data, NFrames] = load_estimates2_MU_lm_new(fid, NTx, NFrames_max, NFrames, align_matrix, version)
-%
-% EMOS Multi User Import Filter with low memory usage
-%
-% [H_MU, H_fq_MU, estimates, gps_data, NFrames] =
-% load_estimates_MU_new(fid, NTx, NFrames_max, NFrames_read, version)
-%
-% Parameters:
-% fid - vector with file ids
-% N_Tx - Number of Tx antennas
-% NFrames_max - Maximum number of frames to read
-% (Use Inf to get up to the maximum file contents)
-% Nframes - Number of frames already read from the file
-% (Use return value of previous call)
-% version - see load_estimates for details
-%
-% Returns:
-% H - Time domain channel matrix of size [NRx,NTx,NDelay,NFrames,Nuser,NCH]
-% The estimates of different users are aligned in time
-% H_fq - Frequency domain channel matrix of size [NRx,NTx,NFreq,NFrames,Nuser,NCH]
-% estimates - A [1 x Nuser] structure array containing timestamp, etc
-% gps_data - A [1 x Nuser] structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-% Created: 20071016
-% Last modified: 20071128
-
-NRx = 2;
-NFreq = 160/NTx;
-NDelay = 256/NTx;
-Nuser = length(fid);
-NCH = 2;
-
-H_MU = complex(zeros(NRx,NTx,NDelay,NFrames_max,Nuser,NCH));
-H_fq_MU = complex(zeros(NRx,NTx,NFreq,NFrames_max,Nuser,NCH));
-
-for u=1:Nuser
- if (sum(align_matrix(u,:))>0)
- [H_MU(:,:,:,align_matrix(u,:),u,:), ...
- H_fq_MU(:,:,:,align_matrix(u,:),u,:), ...
- estimates(u), gps_data(u), NFrames(u)] = ...
- load_estimates2_lm(fid(u), NTx, ...
- sum(align_matrix(u,:)), ...
- NFrames(u), version);
- end
-end
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_no_channel.m b/openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_no_channel.m
deleted file mode 100644
index 3bd1a5f8f5..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates2_MU_no_channel.m
+++ /dev/null
@@ -1,74 +0,0 @@
-function [estimates, gps_data, NFrames, align_matrix, crc_matrix] = load_estimates2_MU_no_channel(filenames, NTx, NFrames_max, IFversion)
-%
-% EMOS Multi User Import Filter without channel estimates
-%
-% [estimates, gps_data, NFrames, align_matrix, crc_matrix] = load_estimates2_MU_no_channel(filename, NTx, NFrames_max)
-%
-% Parameters:
-% filenames - cell of strings with the filenames of the EMOS data
-% files of all users for one measurement
-% NTx - Number of Tx antennas
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-%
-% Returns:
-% estimates - A [1 x Nuser] structure array containing timestamp, etc
-% gps_data - A [1 x Nuser] structure array containing gps data
-% NFrames - A [1 x NUser] matrix with the number of read estimates
-% align_matrix - A [NUser x NFrames] logical matrix used for aligning
-% data from different users
-% crc_matrix - A [NUser x NFrames] logical matrix with CRCs
-
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-% Created: 20071016
-% Last modified: 20080612
-
-if nargin < 4
- IFversion = Inf;
-end
-if nargin < 3
- NFrames_max = Inf;
-end
-if nargin < 2
- NTx = 4;
-end
-
-Nuser = length(filenames);
-NFrames = zeros(1,Nuser);
-
-framestamp_min = Inf;
-framestamp_max = 0;
-
-for i=1:Nuser
- if isempty(filenames{i})
- disp(sprintf('[load_estimates_MU] Skipping user %i of %i (no data)',i,Nuser));
- else
- disp(sprintf('[load_estimates_MU] Loading data from user %i of %i',i,Nuser));
- [estimates(i), gps_data(i), NFrames(i)] = load_estimates2_no_channel(filenames{i}, NTx, NFrames_max, IFversion);
-
- % ignore the faulty packets (the timestamp is not reliable)
- % framestamp_clean = estimates(i).framestamp_tx(estimates(i).crc_status==0);
- %if isempty(framestamp_clean)
- % framestamp_min = framestamp_max;
- %else
- framestamp_min = min(framestamp_min,estimates(i).framestamp_tx(1,1));
- framestamp_max = max(framestamp_max,estimates(i).framestamp_tx(1,end));
- %end
- end
-end
-
-NFrames_Tx = framestamp_max-framestamp_min+1;
-
-align_matrix = false(Nuser,NFrames_Tx);
-for u = 1:Nuser
- align_matrix(u,estimates(u).framestamp_tx(1,:) - framestamp_min(1,:) + 1) = true;
-end
-
-crc_matrix = false(Nuser,NFrames_Tx);
-for u = 1:Nuser
- crc_matrix(u,estimates(u).framestamp_tx(1,:) - framestamp_min(1,:) + 1) = (estimates(u).crc_status(1,:)==0);
-end
-
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates2_lm.m b/openair1/EMOS/MATLAB/import_filter/load_estimates2_lm.m
deleted file mode 100644
index 795f335680..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates2_lm.m
+++ /dev/null
@@ -1,287 +0,0 @@
-function [H, H_fq, estimates, gps_data, NFrames] = load_estimates2_lm(fid, NTx, NFrames_max, NFrames, version)
-%
-% EMOS Single User Import Filter read data in chunks (low memory usage)
-%
-% [H, H_fq, estimates, gps_data, NFrames] = load_estimates2_lm(fid, NTx, NFrames_max, NFrames, version)
-%
-% Parameters:
-% fid - file descriptor of EMOS data file. Must be opened in
-% read mode: fid = fopen('....EMOS','r');
-% NTx - Number of Tx Antenns
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% Nframes - Number of frames already read from the file
-% (Use return value of previous call)
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% H - Time domain channel matrix of size [NRx,NTx,NDelay,NFrames]
-% The estimates of different users are aligned in time
-% H_fq - Frequency domain channel matrix of size [NRx,NTx,NFreq,NFrames]
-% estimates - A structure array containing timestamp, etc
-% - perror [48 x NR x NCluster x NFrames] contains
-% the measured phase drif of the pilot symbols
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20070917 0.1 Created
-% 20071116 0.2 Added fields framestamp_tx and crc_status in the
-% dumpfile. However, the crc_status is not working
-% yet, so we still use the pdu_errors field to
-% calculate the err_ind.
-% Also more than one file can be read now at the same
-% time.
-% 20071121 0.3 crc_status is now giving right values, so we can
-% use it. However, the framestamp_tx is now buggy.
-% Therefore we recalculate it here.
-% 20071127 0.4 Removed prevoius bugs in dumpfile.
-% 20081030 2.0 Adapted for the new two-CH, two-way EMOS structure,
-% older versions not supported anymore
-% 20090727 2.1 now also reads channel measurements from 2nd CH
-
-if ((nargin == 5) && (version < 2.0))
- error('This function only works for EMOS version 2.0');
-end
-
-NRx = 2;
-NFreq = 256;
-NZFreq = 160;
-NCH = 2;
-
-NUMBER_OF_CHSCH_SYMBOLS_MAX = 4;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-TIMESTAMP_SIZE = 8;
-PHY_MEASUREMENTS_SIZE = NRx * NUMBER_OF_CHSCH_SYMBOLS_MAX * 2 * 3 + ...
- NUMBER_OF_CHSCH_SYMBOLS_MAX * 2 + ...
- NRx * NUMBER_OF_CHSCH_SYMBOLS_MAX * 4 * 2 + ...
- 9*4;
-if (version>=2.1)
- PHY_MEASUREMENTS_SIZE = PHY_MEASUREMENTS_SIZE + 2*4;
-end
-MAC_PDU_SIZE = 144*2;
-if (version>=2.1)
- PDU_ERRORS_SIZE = 8;
-else
- PDU_ERRORS_SIZE = 4;
-end
-OFFSET_SIZE = 4;
-RX_TOTAL_GAIN_SIZE = 4;
-RX_MODE_SIZE = 4;
-CHANNEL_SIZE = 2 * NRx * NFreq * 4;
-PERROR_SIZE = 2 * NRx * 48 * 4;
-NO_ESTIMATES_DISK = 100;
-
-FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- PHY_MEASUREMENTS_SIZE + ...
- MAC_PDU_SIZE + ...
- PDU_ERRORS_SIZE + ...
- OFFSET_SIZE + ...
- RX_TOTAL_GAIN_SIZE + ...
- CHANNEL_SIZE + ...
- PERROR_SIZE;
-
-if (version>=2.1)
- FIFO_DUMP_EMOS_SIZE = FIFO_DUMP_EMOS_SIZE + RX_MODE_SIZE;
-end
-
-DOUBLE_SIZE = 8;
-INT_SIZE = 4;
-GPS_FIX_T_SIZE = INT_SIZE + 13 * DOUBLE_SIZE;
-
-CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * FIFO_DUMP_EMOS_SIZE + GPS_FIX_T_SIZE;
-
-% Preallocate data vectors
-chan0 = zeros(NFreq,NFrames_max);
-chan1 = zeros(NFreq,NFrames_max);
-chan2 = zeros(NFreq,NFrames_max);
-chan3 = zeros(NFreq,NFrames_max);
-
-estimates.timestamp = zeros(1,NFrames_max);
-
-estimates.rx_power_dB = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames_max);
-estimates.rx_avg_power_dB = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NFrames_max);
-estimates.n0_power_dB = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames_max);
-estimates.rx_rssi_dBm = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames_max);
-estimates.rx_power = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames_max);
-estimates.n0_power = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames_max);
-if (version >= 2.1)
- estimates.framestamp_tx = zeros(2,NFrames);
-else
- estimates.framestamp_tx = zeros(1,NFrames);
-end
-if (version >= 2.1)
- estimates.crc_status = zeros(2,NFrames);
-else
- estimates.crc_status = zeros(1,NFrames);
-end
-
-estimates.mac_pdu = char(zeros(MAC_PDU_SIZE,NFrames_max));
-estimates.timestamp_tx = zeros(1,NFrames_max);
-if (version >= 2.1)
- estimates.pdu_errors = zeros(2,NFrames);
-else
- estimates.pdu_errors = zeros(1,NFrames);
-end
-estimates.offset = zeros(1,NFrames_max);
-estimates.total_gain_dB = zeros(NRx,NFrames_max);
-estimates.Hnorm = zeros(2,NFrames_max);
-estimates.perror = zeros(48,NRx,2,NFrames_max);
-if (version >= 2.1)
- estimates.rx_mode = zeros(1,NFrames);
-end
-
-% estimates.sch_symbol0 = zeros(NRx,NFrames_max);
-% estimates.sch_symbol1 = zeros(NRx,NFrames_max);
-
-gps_data.timestamp = zeros(1,floor(NFrames_max/100));
-gps_data.mode = zeros(1,floor(NFrames_max/100));
-gps_data.ept = zeros(1,floor(NFrames_max/100));
-gps_data.latitude = zeros(1,floor(NFrames_max/100));
-gps_data.longitude = zeros(1,floor(NFrames_max/100));
-gps_data.rest = zeros(1,floor(NFrames_max/100));
-gps_data.eph = zeros(1,floor(NFrames_max/100));
-gps_data.altitude = zeros(1,floor(NFrames_max/100));
-gps_data.epv = zeros(1,floor(NFrames_max/100));
-gps_data.track = zeros(1,floor(NFrames_max/100));
-gps_data.epd = zeros(1,floor(NFrames_max/100));
-gps_data.speed = zeros(1,floor(NFrames_max/100));
-gps_data.eps = zeros(1,floor(NFrames_max/100));
-gps_data.climb = zeros(1,floor(NFrames_max/100));
-gps_data.epc = zeros(1,floor(NFrames_max/100));
-
-NFrames_start = NFrames;
-
-k = 1;
-l = 1;
-
- while ~feof(fid) && k <= NFrames_max
-
- count = 0;
-
- % Read Timestamp Data
- [temp,c] = fread(fid,TIMESTAMP_SIZE,'uchar'); % Timestamp variable
- count = count+c;
- tt=0;
- temp=temp/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp(k)=tt/1e9; % to get the timestamp in sec
-
- % read PHY_measurements
- %[dummy_phy_measurements,c] = fread(fid,PHY_MEASUREMENTS_SIZE,'uchar');
- %count = count+c;
-
- estimates.rx_power_dB(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'ushort'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.rx_avg_power_dB(:,k) = fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX,'short');
- estimates.n0_power_dB(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'ushort'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.rx_rssi_dBm(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'short'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.rx_power(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'int'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.n0_power(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'int'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- dummy = fread(fid,7,'int');
- % unsigned int chbch_search_count;
- % unsigned int chbch_detection_count[4];
- % unsigned int mrbch_search_count;
- % unsigned int mrbch_detection_count;
- estimates.framestamp_tx(:,k) = fread(fid,size(estimates.framestamp_tx,1),'uint');
- estimates.crc_status(:,k) = fread(fid,size(estimates.framestamp_tx,1),'int');
-
-
- % Read MAC PDU
- [estimates.mac_pdu(:,k),c] = fread(fid,MAC_PDU_SIZE,'uchar');
- count = count+c;
- tt=0;
- temp=estimates.mac_pdu(1:8,k)/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp_tx(k)=tt/1e9; % to get the timestamp in sec
-
- % Read PDU Errors
- [estimates.pdu_errors(:,k),c] = fread(fid,size(estimates.pdu_errors,1),'uint');
- count = count+c*4;
- [estimates.offset(k),c] = fread(fid,1,'uint');
- count = count+c*4;
- [estimates.total_gain_dB(k),c] = fread(fid,1,'uint');
- count = count+c*4;
- if (version >= 2.1)
- [estimates.rx_mode(k),c] = fread(fid,1,'uint');
- end
-
-
- % Read channel estimates
- [data,c] = fread(fid,NFreq*NRx*2*2,'short'); % read
- count = count+c*2;
- if (c ~= NFreq*NRx*2*2)
- warning('not all data read')
- break
- end
-
- % Measurement from CH1
- chan0(:,k) = data(1:2:(NFreq*2)) + j * data(2:2:(NFreq*2));
- chan1(:,k) = data(((NFreq*2)+1):2:(4*NFreq)) + j * data(((NFreq*2)+2):2:(4*NFreq)) ;
-
- % calculate the mean squared Frobenius norm of H
- estimates.Hnorm(1,k) = (sum(abs(chan0(:,k)).^2) + sum(abs(chan1(:,k)).^2))/(NZFreq/NTx);
-
- % Measurement from CH2
- chan2(:,k) = data(4*NFreq+1:2:(NFreq*6)) + j * data(4*NFreq+2:2:(NFreq*6));
- chan3(:,k) = data(((NFreq*6)+1):2:(8*NFreq)) + j * data(((NFreq*6)+2):2:(8*NFreq)) ;
-
- % calculate the mean squared Frobenius norm of H
- estimates.Hnorm(2,k) = (sum(abs(chan2(:,k)).^2) + sum(abs(chan3(:,k)).^2))/(NZFreq/NTx);
-
- [dummy_perror,c] = fread(fid,PERROR_SIZE/2,'short');
- dummy_perror = dummy_perror(1:2:end) + 1j*dummy_perror(2:2:end);
- estimates.perror(:,:,:,k) = reshape(dummy_perror,48,NRx,2);
- count = count+c;
-
- %read GPS data
- if (mod(k,NO_ESTIMATES_DISK)==0)
- gps_data.timestamp(l) = fread(fid,1,'double');
- gps_data.mode(l) = fread(fid,1,'int');
- gps_data.ept(l) = fread(fid,1,'double');
- gps_data.latitude(l) = fread(fid,1,'double');
- gps_data.longitude(l) = fread(fid,1,'double');
- gps_data.eph(l) = fread(fid,1,'double');
- gps_data.altitude(l) = fread(fid,1,'double');
- gps_data.epv(l) = fread(fid,1,'double');
- gps_data.track(l) = fread(fid,1,'double');
- gps_data.epd(l) = fread(fid,1,'double');
- gps_data.speed(l) = fread(fid,1,'double');
- gps_data.eps(l) = fread(fid,1,'double');
- gps_data.climb(l) = fread(fid,1,'double');
- gps_data.epc(l) = fread(fid,1,'double');
-
- l=l+1;
- %estimates.gps_data(k) = gps_data;
- end
-
- k=k+1;
- NFrames = NFrames+1;
-
- end
-
- NFrames_read = NFrames - NFrames_start;
-
- H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames_read,NCH));
- H_fq(1,:,:,:,1) = reshape(chan0(:,1:NFrames_read),NTx,NFreq/NTx,NFrames_read);
- H_fq(2,:,:,:,1) = reshape(chan1(:,1:NFrames_read),NTx,NFreq/NTx,NFrames_read);
- H_fq(1,:,:,:,2) = reshape(chan2(:,1:NFrames_read),NTx,NFreq/NTx,NFrames_read);
- H_fq(2,:,:,:,2) = reshape(chan3(:,1:NFrames_read),NTx,NFreq/NTx,NFrames_read);
-
- H = ifft(H_fq,[],3);
-
- % remove zero carriers from Frequency response
- NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
- H_fq = H_fq(:,:,NZFreq_ind,:,:);
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates2_no_channel.m b/openair1/EMOS/MATLAB/import_filter/load_estimates2_no_channel.m
deleted file mode 100644
index c407d9c036..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates2_no_channel.m
+++ /dev/null
@@ -1,279 +0,0 @@
-function [estimates, gps_data, NFrames] = load_estimates2_no_channel(filename, NTx, NFrames_max, version)
-%
-% EMOS Single User Import Filter without channel estimates
-%
-% [estimates, gps_data, NFrames] = load_estimates_no_channel2(filename, NTx, NFrames_max, version)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NTx - Number of Tx Antenns
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20070917 0.1 Created
-% 20071116 0.2 Added fields framestamp_tx and crc_status in the
-% dumpfile. However, the crc_status is not working
-% yet, so we still use the pdu_errors field to
-% calculate the err_ind.
-% Also more than one file can be read now at the same
-% time.
-% 20071121 0.3 crc_status is now giving right values, so we can
-% use it. However, the framestamp_tx is now buggy.
-% Therefore we recalculate it here.
-% 20071127 0.4 Removed prevoius bugs in dumpfile.
-% 20081030 2.0 Adapted for the new two-CH, two-way EMOS structure,
-% older versions not supported anymore
-% 20090423 2.1 Adapted for the dual stream receiver
-
-if (nargin < 4)
- version = 2.1;
-else
- if (version < 2.0)
- error('This function only works for EMOS version 2.0');
- end
-end
-if nargin < 3
- NFrames_max = Inf;
-end
-if nargin < 2
- NTx = 2;
-end
-NRx = 2;
-NFreq = 256;
-NZFreq = 160;
-
-NUMBER_OF_CHSCH_SYMBOLS_MAX = 4;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-TIMESTAMP_SIZE = 8;
-PHY_MEASUREMENTS_SIZE = NRx * NUMBER_OF_CHSCH_SYMBOLS_MAX * 2 * 3 + ...
- NUMBER_OF_CHSCH_SYMBOLS_MAX * 2 + ...
- NRx * NUMBER_OF_CHSCH_SYMBOLS_MAX * 4 * 2 + ...
- 9*4;
-if (version>=2.1)
- PHY_MEASUREMENTS_SIZE = PHY_MEASUREMENTS_SIZE + 2*4;
-end
-MAC_PDU_SIZE = 144*2;
-if (version>=2.1)
- PDU_ERRORS_SIZE = 8;
-else
- PDU_ERRORS_SIZE = 4;
-end
-OFFSET_SIZE = 4;
-RX_TOTAL_GAIN_SIZE = 4;
-RX_MODE_SIZE = 4;
-CHANNEL_SIZE = 2 * NRx * NFreq * 4;
-PERROR_SIZE = 2 * NRx * 48 * 4;
-NO_ESTIMATES_DISK = 100;
-
-FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- PHY_MEASUREMENTS_SIZE + ...
- MAC_PDU_SIZE + ...
- PDU_ERRORS_SIZE + ...
- OFFSET_SIZE + ...
- RX_TOTAL_GAIN_SIZE + ...
- CHANNEL_SIZE + ...
- PERROR_SIZE;
-
-if (version>=2.1)
- FIFO_DUMP_EMOS_SIZE = FIFO_DUMP_EMOS_SIZE + RX_MODE_SIZE;
-end
-
-DOUBLE_SIZE = 8;
-INT_SIZE = 4;
-GPS_FIX_T_SIZE = INT_SIZE + 13 * DOUBLE_SIZE;
-
-CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * FIFO_DUMP_EMOS_SIZE + GPS_FIX_T_SIZE;
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-% Preallocate data vectors
-% chan0 = zeros(NRx,NFrames);
-% chan1 = zeros(NRx,NFrames);
-% estimates.sch_symbol0 = zeros(NRx,NFrames);
-% estimates.sch_symbol1 = zeros(NRx,NFrames);
-estimates.timestamp = zeros(1,NFrames);
-
-estimates.rx_power_dB = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames);
-estimates.rx_avg_power_dB = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NFrames);
-estimates.n0_power_dB = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames);
-estimates.rx_rssi_dBm = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames);
-estimates.rx_power = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames);
-estimates.n0_power = zeros(NUMBER_OF_CHSCH_SYMBOLS_MAX,NRx,NFrames);
-if (version >= 2.1)
- estimates.framestamp_tx = zeros(2,NFrames);
-else
- estimates.framestamp_tx = zeros(1,NFrames);
-end
-if (version >= 2.1)
- estimates.crc_status = zeros(2,NFrames);
-else
- estimates.crc_status = zeros(1,NFrames);
-end
-estimates.mac_pdu = char(zeros(MAC_PDU_SIZE,NFrames));
-estimates.timestamp_tx = zeros(1,NFrames);
-if (version >= 2.1)
- estimates.pdu_errors = zeros(2,NFrames);
-else
- estimates.pdu_errors = zeros(1,NFrames);
-end
-estimates.offset = zeros(1,NFrames);
-estimates.total_gain_dB = zeros(1,NFrames);
-estimates.perror = zeros(48,NRx,2,NFrames);
-if (version >= 2.1)
- estimates.rx_mode = zeros(1,NFrames);
-end
-estimates.Hnorm = zeros(1,NFrames);
-
-gps_data.timestamp = zeros(1,NFrames/100);
-gps_data.mode = zeros(1,NFrames/100);
-gps_data.ept = zeros(1,NFrames/100);
-gps_data.latitude = zeros(1,NFrames/100);
-gps_data.longitude = zeros(1,NFrames/100);
-gps_data.rest = zeros(1,NFrames/100);
-gps_data.eph = zeros(1,NFrames/100);
-gps_data.altitude = zeros(1,NFrames/100);
-gps_data.epv = zeros(1,NFrames/100);
-gps_data.track = zeros(1,NFrames/100);
-gps_data.epd = zeros(1,NFrames/100);
-gps_data.speed = zeros(1,NFrames/100);
-gps_data.eps = zeros(1,NFrames/100);
-gps_data.climb = zeros(1,NFrames/100);
-gps_data.epc = zeros(1,NFrames/100);
-
-
-k = 1;
-l = 1;
-
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while ~feof(fid) && k <= min(sum(NFrames_file(1:n)),NFrames_max)
-
- % Read Timestamp Data
- [temp,c] = fread(fid,TIMESTAMP_SIZE,'uchar'); % Timestamp variable
- tt=0;
- temp=temp/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp(k)=tt/1e9; % to get the timestamp in sec
-
- % read PHY_measurements
- %[dummy_phy_measurements,c] = fread(fid,PHY_MEASUREMENTS_SIZE,'uchar');
- %count = count+c;
-
- estimates.rx_power_dB(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'ushort'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.rx_avg_power_dB(:,k) = fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX,'short');
- estimates.n0_power_dB(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'ushort'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.rx_rssi_dBm(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'short'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.rx_power(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'int'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- estimates.n0_power(:,:,k) = reshape(fread(fid,NUMBER_OF_CHSCH_SYMBOLS_MAX*NRx,'int'),NRx,NUMBER_OF_CHSCH_SYMBOLS_MAX).';
- dummy = fread(fid,7,'int');
- % unsigned int chbch_search_count;
- % unsigned int chbch_detection_count[4];
- % unsigned int mrbch_search_count;
- % unsigned int mrbch_detection_count;
- estimates.framestamp_tx(:,k) = fread(fid,size(estimates.framestamp_tx,1),'uint');
- estimates.crc_status(:,k) = fread(fid,size(estimates.framestamp_tx,1),'int');
-
-
- % Read MAC PDU
- [estimates.mac_pdu(:,k),c] = fread(fid,MAC_PDU_SIZE,'uchar');
- tt=0;
- temp=estimates.mac_pdu(1:8,k)/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp_tx(k)=tt/1e9; % to get the timestamp in sec
-
- % Read PDU Errors
- [estimates.pdu_errors(:,k),c] = fread(fid,size(estimates.pdu_errors,1),'uint');
- [estimates.offset(k),c] = fread(fid,1,'uint');
- [estimates.total_gain_dB(k),c] = fread(fid,1,'uint');
- if (version >= 2.1)
- [estimates.rx_mode(k),c] = fread(fid,1,'uint');
- end
-
- % Read channel estimates
- [data,c] = fread(fid,NFreq*NRx*2*2,'short'); % read
- if (c ~= NFreq*NRx*2*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- chan0 = data(1:2:(NFreq*2)) + j * data(2:2:(NFreq*2));
- chan1 = data(((NFreq*2)+1):2:(4*NFreq)) + j * data(((NFreq*2)+2):2:(4*NFreq)) ;
-
- % calculate the mean squared Frobenius norm of H
- estimates.Hnorm(k) = (sum(abs(chan0).^2) + sum(abs(chan1).^2))/(NZFreq/NTx);
-
- [dummy_perror,c] = fread(fid,PERROR_SIZE/2,'short');
- dummy_perror = dummy_perror(1:2:end) + 1j*dummy_perror(2:2:end);
- estimates.perror(:,:,:,k) = reshape(dummy_perror,48,NRx,2);
-
- %read GPS data
- if (mod(k,NO_ESTIMATES_DISK)==0)
- gps_data.timestamp(l) = fread(fid,1,'double');
- gps_data.mode(l) = fread(fid,1,'int');
- gps_data.ept(l) = fread(fid,1,'double');
- gps_data.latitude(l) = fread(fid,1,'double');
- gps_data.longitude(l) = fread(fid,1,'double');
- gps_data.eph(l) = fread(fid,1,'double');
- gps_data.altitude(l) = fread(fid,1,'double');
- gps_data.epv(l) = fread(fid,1,'double');
- gps_data.track(l) = fread(fid,1,'double');
- gps_data.epd(l) = fread(fid,1,'double');
- gps_data.speed(l) = fread(fid,1,'double');
- gps_data.eps(l) = fread(fid,1,'double');
- gps_data.climb(l) = fread(fid,1,'double');
- gps_data.epc(l) = fread(fid,1,'double');
-
- l=l+1;
- %estimates.gps_data(k) = gps_data;
- end
-
- k=k+1;
- end
-
- fclose(fid);
-end
- % H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames));
- % H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames);
- % H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames);
- %
- % H = ifft(H_fq,[],3);
- %
- % % remove zero carriers from Frequency response
- % NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
- % H_fq = H_fq(:,:,NZFreq_ind,:);
-
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates_MU.m b/openair1/EMOS/MATLAB/import_filter/load_estimates_MU.m
deleted file mode 100755
index b148925dc4..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates_MU.m
+++ /dev/null
@@ -1,115 +0,0 @@
-function [H_MU, H_fq_MU, estimates, gps_data, NFrames] = load_estimates_MU(filenames, NTx, NFrames_max, remove_zeros)
-%
-% EMOS Multi User Import Filter
-%
-% [H, H_fq, estimates, gps_data, NFrames] = load_estimates_MU(filename, NTx, NFrames_max)
-%
-% Parameters:
-% filenames - cell array of strings with the filenames of the EMOS data
-% files of all users for one measurement
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% remove_zeros - if this flag is set, only the part of the MU channel
-% matrix, where signals from all users are availiable is calculated
-%
-% Returns:
-% H - Time domain channel matrix of size [NRx,NTx,NDelay,NFrames,Nuser]
-% The estimates of different users are aligned in time
-% H_fq - Frequency domain channel matrix of size [NRx,NTx,NFreq,NFrames,Nuser]
-% estimates - A [1 x Nuser] structure array containing timestamp, etc
-% gps_data - A [1 x Nuser] structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-% Created: 20071016
-% Last modified: 20071116
-
-if nargin < 4
- remove_zeros = 0;
-end
-if nargin < 3
- NFrames_max = Inf;
-end
-if nargin < 2
- NTx = 4;
-end
-NRx = 2;
-
-Nuser = length(filenames);
-
-H = cell(1,Nuser);
-H_fq = cell(1,Nuser);
-
-estimates = repmat(struct(...
- 'timestamp', [], ...
- 'timestamp_tx', [], ...
- 'framestamp_tx', [], ...
- 'pdu_errors', [], ...
- 'err_ind', [], ...
- 'rx_power', [], ...
- 'n0_power', [], ...
- 'rx_rssi_dBm', [], ...
- 'mac_pdu', [], ...
- 'flag', []), ...
- 1, Nuser);
-gps_data = repmat(struct(...
- 'timestamp', [], ...
- 'mode', [], ...
- 'ept', [], ...
- 'latitude', [], ...
- 'longitude', [], ...
- 'rest', []), ...
- 1, Nuser);
-NFrames = zeros(1,Nuser);
-
-framestamp_min = Inf;
-framestamp_max = 0;
-%framestamp = cell(1,Nuser);
-
-for i=1:Nuser
- if isempty(filenames{i})
- disp(sprintf('[load_estimates_MU] Skipping user %i of %i (no data)',i,Nuser));
- else
- disp(sprintf('[load_estimates_MU] Loading data from user %i of %i',i,Nuser));
- [H{i}, H_fq{i}, estimates(i), gps_data(i), NFrames(i)] = load_estimates(filenames{i}, NTx, NFrames_max);
-
- % ignore the faulty packets (the timestamp is not reliable)
- framestamp_clean = estimates(i).framestamp_tx(~estimates(i).err_ind);
- if isempty(framestamp_clean)
- framestamp_min = framestamp_max;
- else
- framestamp_min = min(framestamp_min,framestamp_clean(1));
- framestamp_max = max(framestamp_max,framestamp_clean(end));
- end
- end
-end
-
-disp('[load_estimates_MU] Aligning data...');
-NDelay = size(H{1},3);
-NFreq = size(H_fq{1},3);
-
-NFrames = framestamp_max - framestamp_min;
-H_MU = complex(zeros(NRx,NTx,NDelay,NFrames,Nuser));
-H_fq_MU = complex(zeros(NRx,NTx,NFreq,NFrames,Nuser));
-
-if NFrames==0
- return
-end
-
-for i=1:Nuser
- H_MU(:,:,:,estimates(i).framestamp_tx(~estimates(i).err_ind) - framestamp_min + 1,i) = H{i}(:,:,:,~estimates(i).err_ind);
- H_fq_MU(:,:,:,estimates(i).framestamp_tx(~estimates(i).err_ind) - framestamp_min + 1,i) = H_fq{i}(:,:,:,~estimates(i).err_ind);
-end
-
-%keyboard
-
-if remove_zeros
- % calculate the intersection of frames
- framestamp_is = framestamp_min:framestamp_max;
- for i=1:Nuser
- framestamp_is = intersect(framestamp_is,estimates(i).framestamp_tx(~estimates(i).err_ind));
- end
- H_MU = H_MU(:,:,:,framestamp_is - framestamp_min + 1,:);
- H_fq_MU = H_fq_MU(:,:,:,framestamp_is - framestamp_min + 1,:);
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates_MU_lm_new.m b/openair1/EMOS/MATLAB/import_filter/load_estimates_MU_lm_new.m
deleted file mode 100755
index 749481e8d7..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates_MU_lm_new.m
+++ /dev/null
@@ -1,45 +0,0 @@
-function [H_MU, H_fq_MU, estimates, gps_data, NFrames] = load_estimates_MU_lm_new(fid, NTx, NFrames_max, NFrames, align_matrix, version)
-%
-% EMOS Multi User Import Filter with low memory usage
-%
-% [H_MU, H_fq_MU, estimates, gps_data, NFrames] =
-% load_estimates_MU_new(fid, NTx, NFrames_max, NFrames_read, version)
-%
-% Parameters:
-% fid - vector with file ids
-% N_Tx - Number of Tx antennas
-% NFrames_max - Maximum number of frames to read
-% (Use Inf to get up to the maximum file contents)
-% Nframes - Number of frames already read from the file
-% (Use return value of previous call)
-% version - see load_estimates for details
-%
-% Returns:
-% H - Time domain channel matrix of size [NRx,NTx,NDelay,NFrames,Nuser]
-% The estimates of different users are aligned in time
-% H_fq - Frequency domain channel matrix of size [NRx,NTx,NFreq,NFrames,Nuser]
-% estimates - A [1 x Nuser] structure array containing timestamp, etc
-% gps_data - A [1 x Nuser] structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-% Created: 20071016
-% Last modified: 20071128
-
-NRx = 2;
-NFreq = 160/NTx;
-NDelay = 256/NTx;
-Nuser = length(fid);
-
-H_MU = complex(zeros(NRx,NTx,NDelay,NFrames_max,Nuser));
-H_fq_MU = complex(zeros(NRx,NTx,NFreq,NFrames_max,Nuser));
-
-for u=1:Nuser
- [H_MU(:,:,:,align_matrix(u,:),u), ...
- H_fq_MU(:,:,:,align_matrix(u,:),u), ...
- estimates(u), gps_data(u), NFrames(u)] = ...
- load_estimates_lm(fid(u), NTx, ...
- sum(align_matrix(u,:)), ...
- NFrames(u), version);
-end
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates_MU_no_channel.m b/openair1/EMOS/MATLAB/import_filter/load_estimates_MU_no_channel.m
deleted file mode 100755
index bb45ad79e1..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates_MU_no_channel.m
+++ /dev/null
@@ -1,93 +0,0 @@
-function [estimates, gps_data, NFrames, align_matrix, crc_matrix] = load_estimates_MU_no_channel(filenames, NTx, NFrames_max)
-%
-% EMOS Multi User Import Filter without channel estimates
-%
-% [estimates, gps_data, NFrames, align_matrix, crc_matrix] = load_estimates_MU(filename, NTx, NFrames_max)
-%
-% Parameters:
-% filenames - cell of strings with the filenames of the EMOS data
-% files of all users for one measurement
-% NTx - Number of Tx antennas
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-%
-% Returns:
-% estimates - A [1 x Nuser] structure array containing timestamp, etc
-% gps_data - A [1 x Nuser] structure array containing gps data
-% NFrames - A [1 x NUser] matrix with the number of read estimates
-% align_matrix - A [NUser x NFrames] logical matrix used for aligning
-% data from different users
-% crc_matrix - A [NUser x NFrames] logical matrix with CRCs
-
-
-% Author: Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-% Created: 20071016
-% Last modified: 20080612
-
-if nargin < 3
- NFrames_max = Inf;
-end
-if nargin < 2
- NTx = 4;
-end
-
-Nuser = length(filenames);
-
-% estimates = repmat(struct(...
-% 'timestamp', [], ...
-% 'timestamp_tx', [], ...
-% 'framestamp_tx', [], ...
-% 'pdu_errors', [], ...
-% 'err_ind', [], ...
-% 'rx_power', [], ...
-% 'n0_power', [], ...
-% 'rx_rssi_dBm', [], ...
-% 'mac_pdu', [], ...
-% 'flag', []), ...
-% 1, Nuser);
-% gps_data = repmat(struct(...
-% 'timestamp', [], ...
-% 'mode', [], ...
-% 'ept', [], ...
-% 'latitude', [], ...
-% 'longitude', [], ...
-% 'rest', []), ...
-% 1, Nuser);
-NFrames = zeros(1,Nuser);
-
-framestamp_min = Inf;
-framestamp_max = 0;
-%framestamp = cell(1,Nuser);
-
-for i=1:Nuser
- if isempty(filenames{i})
- disp(sprintf('[load_estimates_MU] Skipping user %i of %i (no data)',i,Nuser));
- else
- disp(sprintf('[load_estimates_MU] Loading data from user %i of %i',i,Nuser));
- [estimates(i), gps_data(i), NFrames(i)] = load_estimates_no_channel(filenames{i}, NTx, NFrames_max);
-
- % ignore the faulty packets (the timestamp is not reliable)
- framestamp_clean = estimates(i).framestamp_tx(~estimates(i).err_ind);
- if isempty(framestamp_clean)
- framestamp_min = framestamp_max;
- else
- framestamp_min = min(framestamp_min,framestamp_clean(1));
- framestamp_max = max(framestamp_max,framestamp_clean(end));
- end
- end
-end
-
-NFrames_Tx = framestamp_max-framestamp_min+1;
-
-align_matrix = false(Nuser,NFrames_Tx);
-for u = 1:Nuser
- align_matrix(u,estimates(u).framestamp_tx - framestamp_min + 1) = true;
-end
-
-crc_matrix = false(Nuser,NFrames_Tx);
-for u = 1:Nuser
- crc_matrix(u,estimates(u).framestamp_tx - framestamp_min + 1) = ~estimates(u).err_ind;
-end
-
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates_lm.m b/openair1/EMOS/MATLAB/import_filter/load_estimates_lm.m
deleted file mode 100755
index 85cad2a4bf..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates_lm.m
+++ /dev/null
@@ -1,245 +0,0 @@
-function [H, H_fq, estimates, gps_data, NFrames] = load_estimates_lm(fid, NTx, NFrames_max, NFrames, version)
-%
-% EMOS Single User Import Filter with low memory usage
-%
-% [H, H_fq, estimates, gps_data, NFrames] = load_estimates_lm(fid, NTx, NFrames_max, NFrames, version)
-%
-% Parameters:
-% fid - file descriptor of EMOS data file. Must be opened in
-% read mode: fid = fopen('....EMOS','r');
-% N_Tx - Number of Tx antennas
-% NFrames_max - Maximum number of frames to read
-% (Use Inf to get up to the maximum file contents)
-% Nframes - Number of frames already read from the file
-% (Use return value of previous call)
-% version - see load_estimates for details
-%
-% Returns:
-% H - Time domain channel matrix of size [NRx,NTx,NDelay,NFrames]
-% The estimates of different users are aligned in time
-% H_fq - Frequency domain channel matrix of size [NRx,NTx,NFreq,NFrames]
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Leonardo Cardoso and Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20070917 0.1 Created
-% 20071116 0.2 Added fields framestamp_tx and crc_status in the
-% dumpfile. However, the crc_status is not working
-% yet, so we still use the pdu_errors field to
-% calculate the err_ind.
-% Also more than one file can be read now at the same
-% time.
-% 20071121 0.3 crc_status is now giving right values, so we can
-% use it. However, the framestamp_tx is now buggy.
-% Therefore we recalculate it here.
-% 20071127 0.4 Removed previous bugs in dumpfile.
-
-if nargin < 5
- version = Inf; % We assume the latest version
-end
-NFreq = 256;
-NZFreq = 160;
-NRx = 2;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-TIMESTAMP_SIZE = 8;
-FRAMESTAMP_TX_SIZE = 4;
-PDU_ERRORS_SIZE = 4;
-RX_POWER_SIZE = 2;
-N0_POWER_SIZE = 2;
-RX_RSSI_SIZE = 2;
-NB_OF_OFDM_CARRIERS = 256;
-NB_ANTENNAS = 2;
-COMPLEX16_SIZE = 4;
-MAC_PDU_SIZE = 140;
-CRC_STATUS_SIZE = 4;
-NO_ESTIMATES_DISK = 100;
-
-if version >= 0.2
- FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- FRAMESTAMP_TX_SIZE + ...
- PDU_ERRORS_SIZE + ...
- RX_POWER_SIZE * NB_ANTENNAS + ...
- N0_POWER_SIZE * NB_ANTENNAS + ...
- RX_RSSI_SIZE * NB_ANTENNAS + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- MAC_PDU_SIZE + ...
- CRC_STATUS_SIZE;
-else
- FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- PDU_ERRORS_SIZE + ...
- RX_POWER_SIZE * NB_ANTENNAS + ...
- N0_POWER_SIZE * NB_ANTENNAS + ...
- RX_RSSI_SIZE * NB_ANTENNAS + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- MAC_PDU_SIZE;
-end
-
-
-DOUBLE_SIZE = 8;
-INT_SIZE = 4;
-GPS_FIX_T_SIZE = INT_SIZE + 16 * DOUBLE_SIZE;
-
-CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * FIFO_DUMP_EMOS_SIZE + GPS_FIX_T_SIZE;
-
-% Preallocate data vectors
-chan0 = zeros(NB_OF_OFDM_CARRIERS,NFrames_max);
-chan1 = zeros(NB_OF_OFDM_CARRIERS,NFrames_max);
-% estimates.sch_symbol0 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-% estimates.sch_symbol1 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-estimates.timestamp = zeros(1,NFrames_max);
-estimates.timestamp_tx = zeros(1,NFrames_max);
-estimates.framestamp_tx = zeros(1,NFrames_max);
-estimates.pdu_errors = zeros(1,NFrames_max);
-estimates.err_ind = false(1,NFrames_max);
-estimates.rx_power = zeros(NB_ANTENNAS,NFrames_max);
-estimates.n0_power = zeros(NB_ANTENNAS,NFrames_max);
-estimates.rx_rssi_dBm = zeros(NB_ANTENNAS,NFrames_max);
-estimates.mac_pdu = char(zeros(MAC_PDU_SIZE,NFrames_max));
-estimates.flag = char(zeros(1,NFrames_max));
-estimates.Hnorm = zeros(1,NFrames_max);
-
-gps_data.timestamp = zeros(1,floor(NFrames_max/100));
-gps_data.mode = zeros(1,floor(NFrames_max/100));
-gps_data.ept = zeros(1,floor(NFrames_max/100));
-gps_data.latitude = zeros(1,floor(NFrames_max/100));
-gps_data.longitude = zeros(1,floor(NFrames_max/100));
-gps_data.rest = zeros(12,floor(NFrames_max/100));
-
-NFrames_start = NFrames;
-
-k = 1;
-l = 1;
-
- while ~feof(fid) && k <= NFrames_max
-
- % temp = fread(fid,TIMESTAMP_SIZE,'uchar'); % Header variable
- %
- % if(strcmp(char(temp), HEADER))
- % break
- % end
-
- % Read Timestamp Data
- temp = fread(fid,TIMESTAMP_SIZE,'uchar'); % Timestamp variable
- if isempty(temp) && feof(fid)
- break
- end
- tt=0;
- temp=temp/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp(k)=tt/1e9; % to get the timestamp in sec
-
- if version>=0.2
- % Read tx frame no
- estimates.framestamp_tx(k) = fread(fid,1,'uint');
- end
-
- % Read PDU Errors
- estimates.pdu_errors(k) = fread(fid,1,'uint');
-
- % Read RX Power
- estimates.rx_power(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read Noise Power
- estimates.n0_power(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read Noise Power
- estimates.rx_rssi_dBm(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read channel estimates
- [data,count] = fread(fid,NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2,'short'); % read
- if (count ~= NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- chan0(:,k) = data(1:2:(NB_OF_OFDM_CARRIERS*2)) + j * data(2:2:(NB_OF_OFDM_CARRIERS*2));
- chan1(:,k) = data(((NB_OF_OFDM_CARRIERS*2)+1):2:(4*NB_OF_OFDM_CARRIERS)) + j * data(((NB_OF_OFDM_CARRIERS*2)+2):2:(4*NB_OF_OFDM_CARRIERS)) ;
-
- % calculate the mean squared Frobenius norm of H
- estimates.Hnorm(k) = (sum(abs(chan0(:,k)).^2) + sum(abs(chan1(:,k)).^2))/(NZFreq/NTx);
-
- % Read extra OFDM symbol
- [data,count] = fread(fid,NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2,'short'); % read
- if (count ~= NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- %estimates.sch_symbol0(:,k) = data(1:2:(NB_OF_OFDM_CARRIERS*2)) + j * data(2:2:(NB_OF_OFDM_CARRIERS*2));
- %estimates.sch_symbol1(:,k) = data(((NB_OF_OFDM_CARRIERS*2)+1):2:(4*NB_OF_OFDM_CARRIERS)) + j * data(((NB_OF_OFDM_CARRIERS*2)+2):2:(4*NB_OF_OFDM_CARRIERS)) ;
-
- % Read MAC PDU
- estimates.mac_pdu(:,k) = fread(fid,MAC_PDU_SIZE,'uchar');
- tt=0;
- temp=estimates.mac_pdu(1:8,k)/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp_tx(k)=tt/1e9; % to get the timestamp in sec
-
- if version>=0.3
- estimates.err_ind(k) = (fread(fid,1,'int') == -1);
- else
- if version>=0.2
- dummy = fread(fid,1,'int');
- end
- if k > 1
- estimates.err_ind(k) = (((estimates.pdu_errors(k) - estimates.pdu_errors(k-1)) > 0));
- end
- end
-
- if version<0.2
- estimates.framestamp_tx(k)=round(tt*3e-6/8);
- elseif version<0.4 && estimates.err_ind(k) && k>1
- estimates.framestamp_tx(k) = estimates.framestamp_tx(k-1)+1;
- end
-
- estimates.flag(k) = estimates.mac_pdu(17,k);
-
- k = k+1;
- NFrames = NFrames+1;
-
- %read GPS data
- if (mod(NFrames,NO_ESTIMATES_DISK)==0)
- gps_data.timestamp(l) = fread(fid,1,'double');
- gps_data.mode(l) = fread(fid,1,'int');
- gps_data.ept(l) = fread(fid,1,'double');
- gps_data.latitude(l) = fread(fid,1,'double');
- gps_data.longitude(l) = fread(fid,1,'double');
- gps_data.rest(:,l) = fread(fid,12,'double');
-
- l=l+1;
- %estimates.gps_data(k) = gps_data;
- end
-
- end
-
- NFrames_read = NFrames - NFrames_start;
-
- H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames_read));
- H_fq(1,:,:,:) = reshape(chan0(:,1:NFrames_read),NTx,NFreq/NTx,NFrames_read);
- H_fq(2,:,:,:) = reshape(chan1(:,1:NFrames_read),NTx,NFreq/NTx,NFrames_read);
-
- H = ifft(H_fq,[],3);
-
- % remove zero carriers from Frequency response
- NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
- H_fq = H_fq(:,:,NZFreq_ind,:);
-
-
diff --git a/openair1/EMOS/MATLAB/import_filter/load_estimates_no_channel.m b/openair1/EMOS/MATLAB/import_filter/load_estimates_no_channel.m
deleted file mode 100755
index ab02ed399e..0000000000
--- a/openair1/EMOS/MATLAB/import_filter/load_estimates_no_channel.m
+++ /dev/null
@@ -1,257 +0,0 @@
-function [estimates, gps_data, NFrames] = load_estimates_no_channel(filename, NTx, NFrames_max, version)
-%
-% EMOS Single User Import Filter without channel estimates
-%
-% [estimates, gps_data, NFrames] = load_estimates_no_channel(filename, NTx, NFrames_max, version)
-%
-% Parameters:
-% filename - filename(s) of the EMOS data file
-% NTx - Number of Tx Antenns
-% NFrames_max - Maximum number of estimates. Leave it blank to get up to the
-% maximum file contents
-% version - for backward compatibility (see details below)
-%
-% Returns:
-% estimates - A structure array containing timestamp, etc
-% gps_data - A structure array containing gps data
-% NFrames - the number of read estimates
-
-% Author: Leonardo Cardoso and Florian Kaltenberger
-% Copyright: Eurecom Sophia Antipolis
-
-% Version History
-% Date Version Comment
-% 20070917 0.1 Created
-% 20071116 0.2 Added fields framestamp_tx and crc_status in the
-% dumpfile. However, the crc_status is not working
-% yet, so we still use the pdu_errors field to
-% calculate the err_ind.
-% Also more than one file can be read now at the same
-% time.
-% 20071121 0.3 crc_status is now giving right values, so we can
-% use it. However, the framestamp_tx is now buggy.
-% Therefore we recalculate it here.
-% 20071127 0.4 Removed prevoius bugs in dumpfile.
-
-if nargin < 4
- version = Inf; % We assume the latest version
-end
-if nargin < 3
- NFrames_max = Inf;
-end
-if nargin < 2
- NTx = 4;
-end
-NRx = 2;
-NFreq = 256;
-NZFreq = 160;
-
-% Logfile structure:
-% - 100 entries of type fifo_dump_emos (defined in phy_procedures_emos.h)
-% - 1 entry of type gps_fix_t defined in gps.h
-TIMESTAMP_SIZE = 8;
-FRAMESTAMP_TX_SIZE = 4;
-PDU_ERRORS_SIZE = 4;
-RX_POWER_SIZE = 2;
-N0_POWER_SIZE = 2;
-RX_RSSI_SIZE = 2;
-NB_OF_OFDM_CARRIERS = 256;
-NB_ANTENNAS = 2;
-COMPLEX16_SIZE = 4;
-MAC_PDU_SIZE = 140;
-CRC_STATUS_SIZE = 4;
-NO_ESTIMATES_DISK = 100;
-
-if version >= 0.2
- FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- FRAMESTAMP_TX_SIZE + ...
- PDU_ERRORS_SIZE + ...
- RX_POWER_SIZE * NB_ANTENNAS + ...
- N0_POWER_SIZE * NB_ANTENNAS + ...
- RX_RSSI_SIZE * NB_ANTENNAS + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- MAC_PDU_SIZE + ...
- CRC_STATUS_SIZE;
-else
- FIFO_DUMP_EMOS_SIZE = ...
- TIMESTAMP_SIZE + ...
- PDU_ERRORS_SIZE + ...
- RX_POWER_SIZE * NB_ANTENNAS + ...
- N0_POWER_SIZE * NB_ANTENNAS + ...
- RX_RSSI_SIZE * NB_ANTENNAS + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- NB_ANTENNAS * NB_OF_OFDM_CARRIERS * COMPLEX16_SIZE + ...
- MAC_PDU_SIZE;
-end
-
-
-DOUBLE_SIZE = 8;
-INT_SIZE = 4;
-GPS_FIX_T_SIZE = INT_SIZE + 16 * DOUBLE_SIZE;
-
-CHANNEL_BUFFER_SIZE = NO_ESTIMATES_DISK * FIFO_DUMP_EMOS_SIZE + GPS_FIX_T_SIZE;
-
-% Estimate the size of the file for a pre-allocation of memory
-if ~iscell(filename)
- filename = {filename};
-end
-NFiles = length(filename);
-NFrames_file = zeros(1,NFiles);
-for n=1:NFiles
- if ~exist(filename{n},'file')
- error('File does not exist!')
- end
- info_file = dir(filename{n});
- NFrames_file(n) = floor(info_file.bytes/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
-end
-NFrames = min(sum(NFrames_file), NFrames_max);
-
-% Preallocate data vectors
-% chan0 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-% chan1 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-% estimates.sch_symbol0 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-% estimates.sch_symbol1 = zeros(NB_OF_OFDM_CARRIERS,NFrames);
-estimates.timestamp = zeros(1,NFrames);
-estimates.timestamp_tx = zeros(1,NFrames);
-estimates.framestamp_tx = zeros(1,NFrames);
-estimates.pdu_errors = zeros(1,NFrames);
-estimates.err_ind = false(1,NFrames);
-estimates.rx_power = zeros(NB_ANTENNAS,NFrames);
-estimates.n0_power = zeros(NB_ANTENNAS,NFrames);
-estimates.rx_rssi_dBm = zeros(NB_ANTENNAS,NFrames);
-estimates.mac_pdu = char(zeros(MAC_PDU_SIZE,NFrames));
-estimates.flag = char(zeros(1,NFrames));
-estimates.Hnorm = zeros(1,NFrames);
-
-gps_data.timestamp = zeros(1,NFrames/100);
-gps_data.mode = zeros(1,NFrames/100);
-gps_data.ept = zeros(1,NFrames/100);
-gps_data.latitude = zeros(1,NFrames/100);
-gps_data.longitude = zeros(1,NFrames/100);
-gps_data.rest = zeros(12,NFrames/100);
-
-
-k = 1;
-l = 1;
-
-for n=1:NFiles
- fid = fopen(filename{n},'r');
-
- while ~feof(fid) && k <= min(sum(NFrames_file(1:n)),NFrames_max)
-
- % temp = fread(fid,TIMESTAMP_SIZE,'uchar'); % Header variable
- %
- % if(strcmp(char(temp), HEADER))
- % break
- % end
-
- % Read Timestamp Data
- temp = fread(fid,TIMESTAMP_SIZE,'uchar'); % Timestamp variable
- tt=0;
- temp=temp/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp(k)=tt/1e9; % to get the timestamp in sec
-
- if version>=0.2
- % Read tx frame no
- estimates.framestamp_tx(k) = fread(fid,1,'uint');
- end
-
- % Read PDU Errors
- estimates.pdu_errors(k) = fread(fid,1,'uint');
-
- % Read RX Power
- estimates.rx_power(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read Noise Power
- estimates.n0_power(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read Noise Power
- estimates.rx_rssi_dBm(:,k) = fread(fid,NB_ANTENNAS,'short');
-
- % Read channel estimates
- [data,count] = fread(fid,NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2,'short'); % read
- if (count ~= NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- chan0 = data(1:2:(NB_OF_OFDM_CARRIERS*2)) + j * data(2:2:(NB_OF_OFDM_CARRIERS*2));
- chan1 = data(((NB_OF_OFDM_CARRIERS*2)+1):2:(4*NB_OF_OFDM_CARRIERS)) + j * data(((NB_OF_OFDM_CARRIERS*2)+2):2:(4*NB_OF_OFDM_CARRIERS)) ;
-
- % calculate the mean squared Frobenius norm of H
- estimates.Hnorm(k) = (sum(abs(chan0).^2) + sum(abs(chan1).^2))/(NZFreq/NTx);
-
- % Read extra OFDM symbol
- [data,count] = fread(fid,NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2,'short'); % read
- if (count ~= NB_OF_OFDM_CARRIERS*NB_ANTENNAS*2)
- warning('not all data read')
- break
- end
-
- % Create the receive signal
- %estimates.sch_symbol0(:,k) = data(1:2:(NB_OF_OFDM_CARRIERS*2)) + j * data(2:2:(NB_OF_OFDM_CARRIERS*2));
- %estimates.sch_symbol1(:,k) = data(((NB_OF_OFDM_CARRIERS*2)+1):2:(4*NB_OF_OFDM_CARRIERS)) + j * data(((NB_OF_OFDM_CARRIERS*2)+2):2:(4*NB_OF_OFDM_CARRIERS)) ;
-
- % Read MAC PDU
- estimates.mac_pdu(:,k) = fread(fid,MAC_PDU_SIZE,'uchar');
- tt=0;
- temp=estimates.mac_pdu(1:8,k)/256;
- for k2=1:TIMESTAMP_SIZE
- tt=(tt+temp(9-k2))*256;
- end
- estimates.timestamp_tx(k)=tt/1e9; % to get the timestamp in sec
-
- if version>=0.3
- estimates.err_ind(k) = (fread(fid,1,'int') == -1);
- else
- if version>=0.2
- dummy = fread(fid,1,'int');
- end
- if k > 1
- estimates.err_ind(k) = (((estimates.pdu_errors(k) - estimates.pdu_errors(k-1)) > 0));
- end
- end
-
- if version<0.2
- estimates.framestamp_tx(k)=round(tt*3e-6/8);
- elseif version<0.4 && estimates.err_ind(k) && k>1
- estimates.framestamp_tx(k) = estimates.framestamp_tx(k-1)+1;
- end
-
- estimates.flag(k) = estimates.mac_pdu(17,k);
-
- %read GPS data
- if (mod(k,NO_ESTIMATES_DISK)==0)
- gps_data.timestamp(l) = fread(fid,1,'double');
- gps_data.mode(l) = fread(fid,1,'int');
- gps_data.ept(l) = fread(fid,1,'double');
- gps_data.latitude(l) = fread(fid,1,'double');
- gps_data.longitude(l) = fread(fid,1,'double');
- gps_data.rest(:,l) = fread(fid,12,'double');
-
- l=l+1;
- %estimates.gps_data(k) = gps_data;
- end
-
- k=k+1;
- end
-
- fclose(fid);
-end
- % H_fq = complex(zeros(NRx,NTx,NFreq/NTx,NFrames));
- % H_fq(1,:,:,:) = reshape(chan0,NTx,NFreq/NTx,NFrames);
- % H_fq(2,:,:,:) = reshape(chan1,NTx,NFreq/NTx,NFrames);
- %
- % H = ifft(H_fq,[],3);
- %
- % % remove zero carriers from Frequency response
- % NZFreq_ind = [(176/NTx+1):(256/NTx) 1:(80/NTx)]; % Non-zero frequency indices
- % H_fq = H_fq(:,:,NZFreq_ind,:);
-
-
diff --git a/openair1/EMOS/MATLAB/k_factor.m b/openair1/EMOS/MATLAB/k_factor.m
deleted file mode 100755
index fc78a7dd85..0000000000
--- a/openair1/EMOS/MATLAB/k_factor.m
+++ /dev/null
@@ -1,41 +0,0 @@
-function kfact = k_factor(imp_resp_fq)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% K-Factor estimator function: (Raul de Lacerda, 06/04/2007)
-% kfact = k_factor(imp_resp_fq)
-%
-% k_factor is a function created to estimate the K-Factor of the files
-% generated by the EMOS TestBed.
-% - imp_resp_fq is the input file with the Impulse Responses dim(t,fq,Tx,Rx)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-[N_t,N_fq,N_Tx,N_Rx] = size(imp_resp_fq);
-%%% N_t = Number of samples
-%%% N_fq = Impulse response length
-%%% N_Tx = Number of TX antennas
-%%% N_Rx = Number of RX antennas
-% carriers = [1:20 45:63];
-
-N_fq_real = N_fq;
-channel = abs(imp_resp_fq);
-tmp = zeros(1,N_fq_real,1,1);
-% Expectation of the channel impulse response (M)
-for aa = 1:N_t,
- for bb = 1:N_Tx,
- for cc = 1: N_Rx,
- channel(aa,:,bb,cc) = channel(aa,:,bb,cc)/norm(channel(aa,:,bb,cc));
- tmp = tmp + channel(aa,:,bb,cc);
- end
- end
-end
-M = tmp/(N_t*N_Tx*N_Rx);
-% Expectation of the channel impulse response (M) - the real channel
-% impulse responses (H = mean(h-M)^2)
-tmp = zeros(1,N_fq_real,1,1);
-for aa = 1:N_t,
- for bb = 1:N_Tx,
- for cc = 1: N_Rx,
- tmp = tmp + (channel(aa,:,bb,cc)-M).^2;
- end
- end
-end
-H = tmp/(N_t*N_Tx*N_Rx);
-kfact = mean(M.^2./H);
diff --git a/openair1/EMOS/MATLAB/largest_contiguous_set.m b/openair1/EMOS/MATLAB/largest_contiguous_set.m
deleted file mode 100755
index 5160070229..0000000000
--- a/openair1/EMOS/MATLAB/largest_contiguous_set.m
+++ /dev/null
@@ -1,25 +0,0 @@
-function [max_start, max_len] = largest_contiguous_set(array,x)
-
-if nargin==1
- x=1;
-end
-
-max_start = 1;
-max_len = 0;
-start = 1;
-len = 0;
-for i=2:length(array)
- if (array(i)-array(i-1)<=x) %we have a contigous region (allow for holes of x)
- if len==0 % it is the start of the region
- start = i-1;
- end
- len = len+1;
- if len>max_len % is it longer than the one we have?
- max_start = start;
- max_len = len;
- end
- else % reset counter
- start = 1;
- len = 0;
- end
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/lim_feedback/MISO_CVQ.m b/openair1/EMOS/MATLAB/lim_feedback/MISO_CVQ.m
deleted file mode 100644
index a9ea2d4efd..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/MISO_CVQ.m
+++ /dev/null
@@ -1,33 +0,0 @@
-function [CAP] = MISO_CVQ(HS,Hq,n_p,mu)
-% [CAP] = MISO_CVQ(HS,Hq,n_p,mu)
-%
-% This function calculates the capacity of a multiuser system
-% assuming channel vector quatization [1].
-%
-% [1] Philips, "System-level simulation results for channel vector
-% quantisation feedback for MU-MIMO" 3gpp TSG RAN WG1 R1-063028, Nov. 2006
-
-[N_User, N_Tx] = size(HS);
-
-if (HS == zeros(N_User,N_Tx))
- CAP = 0;
-else
-
- HH = Hq*Hq'+mu*eye(N_User);
-
- HH_inv = inv(HH);
-
- W = Hq'*HH_inv;
-
- % normalize W such that trace(W'*W)=1
- % this way we do not need the factor 1/NTx in the capacity formula
- W = W/sqrt(trace(W'*W));
- HW = abs(HS*W).^2;
-
- CAP = 0;
- for v = 1:length(HW)
- CAP = CAP + log2(1 + (HW(v,v)/(sum(HW(v,:)) - HW(v,v) + n_p)));
- end %of for loop
-
-end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/lim_feedback/MISO_MMSE.m b/openair1/EMOS/MATLAB/lim_feedback/MISO_MMSE.m
deleted file mode 100755
index 500d3d48b6..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/MISO_MMSE.m
+++ /dev/null
@@ -1,34 +0,0 @@
-function [CAP,eff_gain,eigval] = MISO_MMSE(HS,n_p,mu)
-
-CAP =0;
-
-tt= size(HS);
-
-if (HS == zeros(tt(1),tt(2)))
- CAP = 0;
- eff_gain = 0;
-else
- HH = HS*HS'+mu*eye(tt(1));
-
- if nargout == 3
- eigval = eig(HH);
- end
-
- HH_inv = inv(HH);
- %eff_gain = real(1./diag(tmp)).';
- eff_gain = 1/real(trace(HH_inv));
-
- % W = inv(HS'*HS+mu*eye(t(2)))*HS'
- W = HS'*HH_inv;
-
- % normalize W such that trace(W'*W)=1
- % this way we do not need the factor 1/NTx in the capacity formula
- W = W/sqrt(trace(W'*W));
- HW = abs(HS*W).^2;
-
- for v = 1:length(HW)
- CAP = CAP + log2(1 + (HW(v,v)/(sum(HW(v,:)) - HW(v,v) + n_p)));
- end %of for loop
-
-end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/lim_feedback/MISO_RVQ.m b/openair1/EMOS/MATLAB/lim_feedback/MISO_RVQ.m
deleted file mode 100644
index a0ed44a361..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/MISO_RVQ.m
+++ /dev/null
@@ -1,33 +0,0 @@
-function [CAP] = MISO_RVQ(HS,Hq,n_p,mu)
-% [CAP] = MISO_CVQ(HS,Hq,n_p,mu)
-%
-% This function calculates the capacity of a multiuser system
-% assuming random channel vector quatization.
-%
-% Note: This function is the same as MISO_CVQ! It is just kept for
-% compatibility reasons.
-
-[N_User, N_Tx] = size(HS);
-
-if (HS == zeros(N_User,N_Tx))
- CAP = 0;
-else
-
- HH = Hq*Hq'+mu*eye(N_User);
-
- HH_inv = inv(HH);
-
- W = Hq'*HH_inv;
-
- % normalize W such that trace(W'*W)=1
- % this way we do not need the factor 1/NTx in the capacity formula
- W = W/sqrt(trace(W'*W));
- HW = abs(HS*W).^2;
-
- CAP = 0;
- for v = 1:length(HW)
- CAP = CAP + log2(1 + (HW(v,v)/(sum(HW(v,:)) - HW(v,v) + n_p)));
- end %of for loop
-
-end %of if loop HS
-
diff --git a/openair1/EMOS/MATLAB/lim_feedback/codebookRVQ.m b/openair1/EMOS/MATLAB/lim_feedback/codebookRVQ.m
deleted file mode 100644
index 94935b1de7..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/codebookRVQ.m
+++ /dev/null
@@ -1,28 +0,0 @@
-function [VS] = codebookRVQ(N,Bi,MC)
-
-% MC: monte carlo run
-% Bi: number of bits used for CDI (quantized channel directions)
-% N: number of Tx antennas
-%ALL users, for a given MC run, have the same codebook
-
-VS = zeros(N,2^Bi,MC);
-%PrefPartner = zeros(length(K),MC,2^Bi);
-%orthMatrix = zeros(2^Bi,2^Bi,length(K),MC);
-
-for mc = 1:MC
-% for k = 1:length(K)
- aux = randn(N,2^Bi) + i*randn(N,2^Bi);
- for p = 1:2^Bi
- aux(:,p) = aux(:,p)./norm(aux(:,p));
- end
-% for s=1:2^Bi
-% for t=1:2^Bi
-% orthMatrix(s,t,k,mc) = abs(aux(:,s)'*aux(:,t));
-% end
-% end
-% for p=1:2^Bi
-% [aux2 PrefPartner(k,mc,p)] = min(orthMatrix(p,:,k,mc));
-% end
- VS(:,:,mc) = aux;
-% end
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/lim_feedback/codebook_corr.m b/openair1/EMOS/MATLAB/lim_feedback/codebook_corr.m
deleted file mode 100644
index 2059da7336..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/codebook_corr.m
+++ /dev/null
@@ -1,30 +0,0 @@
-function [VS] = codebook_corr(N,Bi,MC,R_Tx)
-
-% MC: monte carlo run
-% Bi: number of bits used for CDI (quantized channel directions)
-% N: number of Tx antennas
-% R_Tx: [N x N] Tx correlation matrix used for codebook design
-% ALL users, for a given MC run, have the same codebook
-
-VS = zeros(N,2^Bi,MC);
-%PrefPartner = zeros(length(K),MC,2^Bi);
-%orthMatrix = zeros(2^Bi,2^Bi,length(K),MC);
-
-for mc = 1:MC
-% for k = 1:length(K)
- aux = randn(N,2^Bi) + i*randn(N,2^Bi);
- aux = sqrtm(R_Tx)*aux;
- for p = 1:2^Bi
- aux(:,p) = aux(:,p)./norm(aux(:,p));
- end
-% for s=1:2^Bi
-% for t=1:2^Bi
-% orthMatrix(s,t,k,mc) = abs(aux(:,s)'*aux(:,t));
-% end
-% end
-% for p=1:2^Bi
-% [aux2 PrefPartner(k,mc,p)] = min(orthMatrix(p,:,k,mc));
-% end
- VS(:,:,mc) = aux;
-% end
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/lim_feedback/est_trans_prob.m b/openair1/EMOS/MATLAB/lim_feedback/est_trans_prob.m
deleted file mode 100644
index 0655fc1500..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/est_trans_prob.m
+++ /dev/null
@@ -1,16 +0,0 @@
-function [pi, P, P2] = est_trans_prob(seq, Nstates)
-% Estimate the stationary probabilities pi and the transtion matrix P for a
-% finite-state stationary stochastic process seq with elements from 1..Nstates.
-
-pi = hist(seq,1:Nstates)./length(seq);
-P = zeros(Nstates);
-
-for n=2:length(seq)
- P(seq(n),seq(n-1)) = P(seq(n),seq(n-1)) + 1;
-end
-P2 = P;
-for i=1:Nstates
- if sum(P(i,:))~=0
- P(i,:) = P(i,:)./sum(P(i,:));
- end
-end
diff --git a/openair1/EMOS/MATLAB/lim_feedback/feedback_test.m b/openair1/EMOS/MATLAB/lim_feedback/feedback_test.m
deleted file mode 100644
index 28df18ff33..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/feedback_test.m
+++ /dev/null
@@ -1,107 +0,0 @@
-% This script compares the capacity of MU-MIMO using ZF/MMSE precoding
-% with and without feedback quantization
-%
-% Author: Florian Kaltenberger
-% Date: 19.2.2008
-% Last changes: 28.3.2008
-
-clear all
-close all
-
-bit_vec = [4 6]; % 8 12 16];
-N_User = 4;
-N_Tx = 4;
-N_runs = 100;
-N_codebooks = 1;
-%AoD = rand(1,N_User)*pi;
-%AoD = [3.0070 1.5249 2.5142 0.4457];
-
-SNRdB = 0:10:40;
-%SNR = 10.^(SNRdB./10);
-%n_p = 1./SNR;
-%mu = N_Tx/SNR;
-
-CAP_4U_MMSE_CVQ = zeros(length(SNRdB),N_runs,length(bit_vec));
-CAP_4U_ZF_CVQ = zeros(length(SNRdB),N_runs,length(bit_vec));
-CAP_4U_MMSE_RVQ = zeros(length(SNRdB),N_runs,length(bit_vec),N_codebooks);
-CAP_4U_ZF_RVQ = zeros(length(SNRdB),N_runs,length(bit_vec),N_codebooks);
-CAP_4U_MMSE = zeros(length(SNRdB),N_runs);
-CAP_4U_ZF = zeros(length(SNRdB),N_runs);
-
-%Hn = zeros(N_User,N_Tx);
-
-%Codebook = codebookRVQ(N_Tx,max(bit_vec),N_codebooks);
-load Codebook
-Fourier_Codebook_ind = zeros(N_runs,length(bit_vec),N_User);
-Random_Codebook_ind = zeros(N_runs,length(bit_vec),N_User);
-
-%%
-for d=1:length(SNRdB)
- SNR = 10.^(SNRdB(d)./10);
- n_p = 1./SNR;
- mu = N_Tx/SNR;
-
- for a = 1:N_runs
- disp(a)
- HS = complex(randn(N_User,N_Tx),randn(N_User,N_Tx))./sqrt(2); %+ ...
- %10*exp(1j*2*AoD.'*(0:N_Tx-1)./N_Tx);
- %10 * complex(randn(N_User,N_Tx),randn(N_User,N_Tx))./sqrt(2);
- %HS = HS./norm(HS);
-
- Random_Codebook_ind(a,:,:) = get_codebook_idx(HS,Codebook(:,1:pow2(max(bit_vec)),1:4),bit_vec);
-
- for b = 1:length(bit_vec)
-
- [HqF, Fourier_Codebook_ind(a,b,:)] = quantize_H(HS,bit_vec(b));
-
- CAP_4U_MMSE_CVQ(d,a,b) = MISO_CVQ(HS.',HqF.',n_p,mu);
- %CAP_4U_ZF_CVQ(d,a,b) = MISO_CVQ(HS.',HqF.',n_p,0);
-
- HqR = Codebook(:,Random_Codebook_ind(a,b,:),5);
- % Hq has to have the same amplitude as H
- for k=1:N_User
- HqR(:,k) = HqR(:,k).*norm(HS(:,k));
- end
-
- CAP_4U_MMSE_RVQ(d,a,b,1) = MISO_CVQ(HS.',HqR.',n_p,mu);
- %CAP_4U_ZF_RVQ(d,a,b,1) = MISO_CVQ(HS.',HqR.',n_p,0);
-
- end
-
- CAP_4U_MMSE(d,a) = MISO_MMSE(HS.',n_p,mu);
- %CAP_4U_ZF(d,a) = MISO_MMSE(HS.',n_p,0);
-
- end
-end
-
-% CAP(isnan(CAP)) = 0;
-
-%%
-%save cap_lim_feedback_iid.mat
-
-%%
-ECAP_4U_MMSE_CVQ = squeeze(mean(mean(CAP_4U_MMSE_CVQ,2),4));
-ECAP_4U_MMSE_RVQ = squeeze(mean(mean(CAP_4U_MMSE_RVQ,2),4));
-ECAP_4U_MMSE = squeeze(mean(CAP_4U_MMSE,2));
-
-%%
-figure(2)
-hold off
-plot(bit_vec,squeeze(mean(mean(CAP_4U_MMSE_CVQ,2),4)))
-hold on
-plot(bit_vec,squeeze(mean(mean(CAP_4U_MMSE_RVQ,2),4)),'r')
-plot(bit_vec,repmat(mean(CAP_4U_MMSE),length(bit_vec),1),'k')
-legend('CVQ feedback','RVQ feedback','perfect feedback')
-xlabel('feedback bits')
-ylabel('capacity')
-
-%%
-figure(3)
-hold off
-cdfplot(CAP_4U_MMSE_CVQ(end,:,end,:))
-hold on
-h=cdfplot(CAP_4U_MMSE_RVQ(end,:,end,:));
-set(h,'color','r');
-h=cdfplot(CAP_4U_MMSE(end,:));
-set(h,'color','k');
-legend('CVQ feedback','RVQ feedback', 'perfect feedback')
diff --git a/openair1/EMOS/MATLAB/lim_feedback/generate_corr_codebook.m b/openair1/EMOS/MATLAB/lim_feedback/generate_corr_codebook.m
deleted file mode 100644
index 85e88cb9e4..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/generate_corr_codebook.m
+++ /dev/null
@@ -1,21 +0,0 @@
-filename_mat = sprintf('results_v2_idx_%d.mat',idx);
-
-load(filename_mat,'R');
-max_bits = max(bit_vec);
-
-%% calculate the Tx correlation matrix taking the first Rx antenna
-m = 0;
-Codebook = zeros(NTx,pow2(max_bits),NUser);
-
-for k=0:3;
-for n1=0:3
- for n2=0:3
- tmp = R(k+n1*NUser+m*NUser*NTx+1,k+n2*NUser+m*NUser*NTx+1);
- RTx(n1+1,n2+1) = tmp;
- end
-end
-
-Codebook(:,:,k+1) = codebook_corr(NTx,max_bits,1,RTx);
-end
-
-save(sprintf('Codebook_idx_new%d.mat',idx),'Codebook');
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/lim_feedback/get_codebook_idx.m b/openair1/EMOS/MATLAB/lim_feedback/get_codebook_idx.m
deleted file mode 100644
index 10da8415c0..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/get_codebook_idx.m
+++ /dev/null
@@ -1,43 +0,0 @@
-function idx = get_codebook_idx(H,Codebook,bit_vec)
-% Hq = quantize_H(H, codebook)
-%
-% This function quantizes H according to the given codebook
-%
-% Parameters:
-% H [N_Tx x N_User] Channel matrix to be quatized
-% codebook [N_Tx x N_codes x N_User] Codebook
-
-[N_Tx, N_User] = size(H);
-N_codes = size(Codebook,2);
-
-if size(Codebook,1) ~= N_Tx
- error('codebook must be of size [N_Tx x N_codes x N_User]');
-end
-
-if size(Codebook,3) ~= N_User
- error('codebook must be of size [N_Tx x N_codes x N_User]');
-end
-
-if pow2(bit_vec(end)) > N_codes
- error('pow2(bit_vec) must be < than N_codes')
-end
-
-% normalize the channel
-for k=1:N_User
- normH(k) = norm(H(:,k));
- H(:,k) = H(:,k)./norm(H(:,k));
-end
-
-d = zeros(N_codes,N_User);
-for k=1:N_User
- for i=1:N_codes
- d(i,k) = Codebook(:,i,k)'*H(:,k);
- end
-end
-
-% plot(abs(d))
-
-for b=1:length(bit_vec)
- [m,idx(b,:)] = max(abs(d(1:pow2(bit_vec(b)),:)),[],1);
-end
-
diff --git a/openair1/EMOS/MATLAB/lim_feedback/meas_feedback_rate.m b/openair1/EMOS/MATLAB/lim_feedback/meas_feedback_rate.m
deleted file mode 100644
index 1fd59f8e53..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/meas_feedback_rate.m
+++ /dev/null
@@ -1,15 +0,0 @@
-function R = meas_feedback_rate(Codebook_ind,bit_vec)
-% Estimates the feedback rate given the Codebook indices
-%
-% R = meas_feedback_rate(Codebook_ind)
-
-R = zeros(size(Codebook_ind,1),size(Codebook_ind,4));
-
-for i=1:size(Codebook_ind,1)
- for j=1:size(Codebook_ind,4)
- [pi,P] = est_trans_prob(Codebook_ind(i,:,1,j),pow2(bit_vec));
- R(i,j) = sum(pi.'.*(1-diag(P)))*bit_vec ;
- end
-end
-
-
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/lim_feedback/quantize_H.m b/openair1/EMOS/MATLAB/lim_feedback/quantize_H.m
deleted file mode 100644
index f0b9418bd2..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/quantize_H.m
+++ /dev/null
@@ -1,45 +0,0 @@
-function [Hq, code_idx] = quantize_H(H,bits)
-% Hq = quantize_H(H)
-%
-% [1] Philips, "System-level simulation results for channel vector
-% quantisation feedback for MU-MIMO" 3gpp TSG RAN WG1 R1-063028, Nov. 2006
-
-[N_Tx, N_User] = size(H);
-
-N_codes = pow2(bits);
-
-for k=1:N_User
- normH(k) = norm(H(:,k));
- H(:,k) = H(:,k)./norm(H(:,k));
-end
-
-d = ifft(H,N_codes,1)*N_codes;
-
-%plot(abs(d));
-
-[m,code_idx] = max(abs(d));
-
-Hq = (exp(-1j*2*pi*(0:N_Tx-1)'*(code_idx-1)/N_codes))./sqrt(N_Tx);
-
-% Codebook = exp(-1j*2*pi*(0:N_Tx-1)'*(0:N_codes-1)/N_codes)./sqrt(N_Tx);
-%
-% d = zeros(N_codes,N_User);
-% for k=1:N_User
-% normH(k) = norm(H(:,k));
-% for i=1:N_codes
-% d(i,k) = Codebook(:,i)'*(H(:,k)./normH(k));
-% end
-% end
-%
-% plot(abs(d))
-%
-% [m,idx] = max(abs(d));
-%
-% Hq = Codebook(:,idx);
-
-% Hq has to have the same amplitude as H
-for i=1:N_User
- % Hq(:,i) = Hq(:,i).*d(idx(i),i).*normH(i);
- Hq(:,i) = Hq(:,i).*normH(i);
-end
-
diff --git a/openair1/EMOS/MATLAB/lim_feedback/quantize_H_codebook.m b/openair1/EMOS/MATLAB/lim_feedback/quantize_H_codebook.m
deleted file mode 100644
index 53464fbbf1..0000000000
--- a/openair1/EMOS/MATLAB/lim_feedback/quantize_H_codebook.m
+++ /dev/null
@@ -1,42 +0,0 @@
-function [Hq,idx] = quantize_H_codebook(H,Codebook)
-% Hq = quantize_H(H, codebook)
-%
-% This function quantizes H according to the given codebook
-%
-% Parameters:
-% H [N_Tx x N_User] Channel matrix to be quatized
-% codebook [N_Tx x N_codes] Codebook
-
-[N_Tx, N_User] = size(H);
-
-N_codes = size(Codebook,2);
-
-if size(Codebook,1) ~= N_Tx
- error('codebook must be of size [N_Tx x N_codes]');
-end
-
-% normalize the channel
-for k=1:N_User
- normH(k) = norm(H(:,k));
- H(:,k) = H(:,k)./norm(H(:,k));
-end
-
-d = zeros(N_codes,N_User);
-for k=1:N_User
- for i=1:N_codes
- d(i,k) = Codebook(:,i)'*H(:,k);
- end
-end
-
-% plot(abs(d))
-
-[m,idx] = max(abs(d));
-
-Hq = Codebook(:,idx);
-
-% Hq has to have the same amplitude as H
-for i=1:N_User
- % Hq(:,i) = Hq(:,i).*d(idx(i),i).*normH(i);
- Hq(:,i) = Hq(:,i).*normH(i);
-end
-
diff --git a/openair1/EMOS/MATLAB/megaMISO.m b/openair1/EMOS/MATLAB/megaMISO.m
deleted file mode 100755
index dd4a09badb..0000000000
--- a/openair1/EMOS/MATLAB/megaMISO.m
+++ /dev/null
@@ -1,191 +0,0 @@
-function megaMISO(SNRdB,Nsamples)
-
-%%% Flags
-save_mode = 0;
-
-bits = 8;
-
-M_Tx=4;
-N_Rx=1;
-Nfreq = 20;
-% Nsamples = 2000;
-NUsers = 4;
-
-% SNRdB=10;
-SNR=10^(SNRdB/10);
-%%% MMSE regularization factor
-mu = M_Tx/SNR;
-%%% noise variance
-n_p=1/SNR;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Channel generation
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% generate iid channel matrices SU
-HH_4x2=1/sqrt(2)*complex(randn(2,4,Nfreq,Nsamples),randn(2,4,Nfreq,Nsamples));
-HH_2x2=1/sqrt(2)*complex(randn(2,2,Nfreq,Nsamples),randn(2,2,Nfreq,Nsamples));
-HH_1x1=1/sqrt(2)*complex(randn(1,1,Nfreq,Nsamples),randn(1,1,Nfreq,Nsamples));
-HH_4x1=1/sqrt(2)*complex(randn(1,4,Nfreq,Nsamples),randn(1,4,Nfreq,Nsamples));
-HH_4x4=1/sqrt(2)*complex(randn(4,4,Nfreq,Nsamples),randn(4,4,Nfreq,Nsamples));
-
-% generate iid channel matrices MU
-HH_4U_4x1=1/sqrt(2)*complex(randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers),randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers));
-HH_2U_4x1=HH_4U_4x1(:,:,:,:,1:2);
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%% SU Capacity calculations
-Cap_SU_4x2_iid=zeros(Nfreq,Nsamples);
-Cap_SU_2x2_iid=zeros(Nfreq,Nsamples);
-Cap_SU_1x1_iid=zeros(Nfreq,Nsamples);
-Cap_SU_4x1_iid=zeros(Nfreq,Nsamples);
-Cap_SU_4x4_iid=zeros(Nfreq,Nsamples);
-
-%eff_gain_ZF = zeros(1,Nsamples);
-%eff_gain_MMSE = zeros(1,Nsamples);
-%eff_gain_BD = zeros(2,Nsamples);
-
-for k1=1:Nfreq
- for k2=1:Nsamples
- Cap_SU_4x2_iid(k1,k2)=abs(log2(det(eye(2)+SNR/4*HH_4x2(:,:,k1,k2)*HH_4x2(:,:,k1,k2)')));
- Cap_SU_2x2_iid(k1,k2)=abs(log2(det(eye(2)+SNR/2*HH_2x2(:,1:2,k1,k2)*HH_2x2(:,1:2,k1,k2)')));
- Cap_SU_1x1_iid(k1,k2)=abs(log2(1+SNR*HH_1x1(1,1,k1,k2)*HH_1x1(1,1,k1,k2)'));
- Cap_SU_4x1_iid(k1,k2)=abs(log2(1+SNR/4*HH_4x1(:,:,k1,k2)*HH_4x1(:,:,k1,k2)'));
- Cap_SU_4x4_iid(k1,k2)=abs(log2(det(eye(4)+SNR/4*HH_4x4(:,:,k1,k2)*HH_4x4(:,:,k1,k2)')));
- end
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%% MU Capacity calculations - 2users
-Cap_2U_MMSE_iid=zeros(Nfreq,Nsamples);
-Cap_2U_ZF_iid=zeros(Nfreq,Nsamples);
-
-
-for k2=1:Nsamples
- [HSf,antenna_index] = antenna_selection(HH_2U_4x1(:,:,:,k2,:));
- for k1=1:Nfreq
- HS = HSf(1,:,k1,1,:);
- HS = squeeze(HS).';
- [Cap_2U_MMSE_iid(k1,k2),gain] = MISO_MMSE(HS,n_p,mu);
- [Cap_2U_ZF_iid(k1,k2),gain2] = MISO_MMSE(HS,n_p,0);
- %eff_gain_MMSE(k2) = gain;
- %eff_gain_ZF(k2) = gain2;
- end
-end
-
-% %% MU Capacity calculations - block diagonalization
-% Cap_2U_BD_iid=zeros(Nfreq,Nsamples);
-% Cap_2U_BD_WF_iid=zeros(Nfreq,Nsamples);
-%
-% for k2=1:Nsamples
-% for k1=1:Nfreq
-% if N_Rx == 1
-% NUsers = 4;
-% HS = reshape(HH_4U_4x1(:,:,k1,k2,:),[N_Rx, M_Tx, NUsers]);
-% elseif N_Rx == 2
-% NUsers = 2;
-% HS = reshape(HH_2U_4x1(:,:,k1,k2,:),[N_Rx, M_Tx, NUsers]);
-% else
-% error('N_Rx must be 1 or 2');
-% end
-% [Cap_2U_BD_iid(k1,k2),gain] = BD(HS,n_p,0);
-% [Cap_2U_BD_WF_iid(k1,k2),gain] = BD(HS,n_p,1);
-% %eff_gain_BD(:,k2) = gain;
-% end
-% end
-
-
-%% MU Capacity calculations - 4users
-Cap_4U_MMSE_iid=zeros(Nfreq,Nsamples);
-Cap_4U_ZF_iid=zeros(Nfreq,Nsamples);
-Cap_4U_CVQ_iid=zeros(Nfreq,Nsamples);
-
-for k2=1:Nsamples
- [HSf,antenna_index] = antenna_selection(HH_4U_4x1(:,:,:,k2,:));
- for k1=1:Nfreq
- %HS = HSf(1,:,k1,1,:);
- HS = HH_4U_4x1(1,:,k1,k2,:);
- HS = squeeze(HS).';
- [Cap_4U_MMSE_iid(k1,k2),gain] = MISO_MMSE(HS,n_p,mu);
- [Cap_4U_ZF_iid(k1,k2),gain2] = MISO_MMSE(HS,n_p,0);
- Cap_4U_CVQ_iid(k1,k2) = MISO_CVQ(HS,n_p,0,bits);
- %eff_gain_MMSE(k2) = gain;
- %eff_gain_ZF(k2) = gain2;
- end
-end
-
-% %% DPC
-% Cap_4U_DPC_iid = zeros(Nfreq,Nsamples);
-% for k2=1:Nsamples
-% for k1=1:Nfreq
-% HS = conj(permute(HH_4U_4x1(:,:,k1,k2,:),[2 1 3 4 5]));
-% Cap_4U_DPC_iid(k1,k2) = iterative_waterfill(reshape(HS,[M_Tx,N_Rx,NUsers]),SNR,50);
-% end
-% end
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% CDF calculation
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% SU
-[Cap_SU_4x2_iid_f,Cap_SU_4x2_iid_x] = ecdf(Cap_SU_4x2_iid(:));
-[Cap_SU_2x2_iid_f,Cap_SU_2x2_iid_x] = ecdf(Cap_SU_2x2_iid(:));
-[Cap_SU_1x1_iid_f,Cap_SU_1x1_iid_x] = ecdf(Cap_SU_1x1_iid(:));
-[Cap_SU_4x1_iid_f,Cap_SU_4x1_iid_x] = ecdf(Cap_SU_4x1_iid(:));
-[Cap_SU_4x4_iid_f,Cap_SU_4x4_iid_x] = ecdf(Cap_SU_4x4_iid(:));
-
-% MU
-[Cap_2U_MMSE_iid_f,Cap_2U_MMSE_iid_x] = ecdf(Cap_2U_MMSE_iid(:));
-[Cap_2U_ZF_iid_f,Cap_2U_ZF_iid_x] = ecdf(Cap_2U_ZF_iid(:));
-%[Cap_2U_BD_iid_f,Cap_2U_BD_iid_x] = ecdf(Cap_2U_BD_iid(:));
-%[Cap_2U_BD_WF_iid_f,Cap_2U_BD_WF_iid_x] = ecdf(Cap_2U_BD_WF_iid(:));
-[Cap_4U_MMSE_iid_f,Cap_4U_MMSE_iid_x] = ecdf(Cap_4U_MMSE_iid(:));
-[Cap_4U_ZF_iid_f,Cap_4U_ZF_iid_x] = ecdf(Cap_4U_ZF_iid(:));
-[Cap_4U_CVQ_iid_f,Cap_4U_CVQ_iid_x] = ecdf(Cap_4U_CVQ_iid(:));
-%[Cap_4U_DPC_iid_f,Cap_4U_DPC_iid_x] = ecdf(Cap_4U_DPC_iid(:));
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Plot results
-figure(20)
-hold off
-%plot(Cap_SU_4x2_iid_x,Cap_SU_4x2_iid_f,'k')
-hold on
-plot(Cap_SU_2x2_iid_x,Cap_SU_2x2_iid_f,'k')
-%plot(Cap_SU_1x1_iid_x,Cap_SU_1x1_iid_f,'g')
-%plot(Cap_SU_4x1_iid_x,Cap_SU_4x1_iid_f,'y')
-%plot(Cap_SU_4x4_iid_x,Cap_SU_4x4_iid_f,'m')
-plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'g')
-plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'r')
-plot(Cap_4U_CVQ_iid_x,Cap_4U_CVQ_iid_f,'m')
-%plot(Cap_4U_DPC_iid_x,Cap_4U_DPC_iid_f,'b')
-%plot(Cap_2U_MMSE_iid_x,1-Cap_2U_MMSE_iid_f,'b')
-%plot(Cap_2U_ZF_iid_x,1-Cap_2U_ZF_iid_f,'c')
-%plot(Cap_2U_BD_iid_x,Cap_2U_BD_iid_f,'k','Linewidth',2)
-% plot(Cap_2U_BD_WF_iid_x,Cap_2U_BD_WF_iid_f,'y','Linewidth',2)
-
-ylabel('CDF');
-xlabel('Capacity (bits/ch.use)');
-legend('SU 4x2 iid','SU 4x1 iid','SU 4x4 iid','MMSE 4x1 4us iid','ZF 4x1 4us iid','DPC 4x1 4us iid');
-%'MMSE 4x1 2 us iid ','ZF 4x1 2us iid','BD 4x2 2us iid','BD 4x2 2us WF iid')
-grid on
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%
-% figure(40)
-% plot([1:Nsamples],eff_gain_ZF,'-r',[1:Nsamples],eff_gain_MMSE,'-b')
-% ylabel('effective gain');
-% xlabel('sample index');
-% legend('ZF','MMSE')
-% grid on
-
-%keyboard
-
-% store results
-if (save_mode == 1)
- save(sprintf('Cap_iid_N_Rx=%d.mat',N_Rx),'Cap_SU_4x2_iid','Cap_SU_4x2_iid_f','Cap_SU_4x2_iid_x','Cap_SU_4x1_iid','Cap_SU_4x1_iid_f','Cap_SU_4x1_iid_x','Cap_SU_4x4_iid','Cap_SU_4x4_iid_f','Cap_SU_4x4_iid_x','Cap_2U_MMSE_iid','Cap_2U_MMSE_iid_f','Cap_2U_MMSE_iid_x','Cap_4U_MMSE_iid','Cap_4U_MMSE_iid_f','Cap_4U_MMSE_iid_x','Cap_2U_ZF_iid','Cap_2U_ZF_iid_f','Cap_2U_ZF_iid_x','Cap_4U_ZF_iid','Cap_4U_ZF_iid_f','Cap_4U_ZF_iid_x','Cap_2U_BD_iid_f','Cap_2U_BD_iid_x','Cap_2U_BD_WF_iid_x','Cap_2U_BD_WF_iid_f','Cap_4U_DPC_iid_x','Cap_4U_DPC_iid_f');
-end
-
diff --git a/openair1/EMOS/MATLAB/plot_ber.m b/openair1/EMOS/MATLAB/plot_ber.m
deleted file mode 100644
index c6b3afea90..0000000000
--- a/openair1/EMOS/MATLAB/plot_ber.m
+++ /dev/null
@@ -1,126 +0,0 @@
-% file: plot_ber
-% author: florian.kaltenberger@eurecom.fr
-% purpose: this script plots the figures for the PIMRC 2009 paper
-
-close all
-clear all
-
-addpath('import_filter');
-
-%%
-path = '/extras/kaltenbe/EMOS/data/20090505_DualStream_Lab/';
-figpath = '/extras/kaltenbe/EMOS/data/20090505_DualStream_Lab/figs';
-d = dir(path);
-idx_vec = [1 2 4];
-
-for i=1:length(idx_vec)
-%%
-idx = idx_vec(i);
-[estimates, gps_data, NFrames] = load_estimates2_no_channel(fullfile(path,d(idx+3).name));
-disp(idx);
-
-SNR_edges = [-Inf 0:3:45 Inf];
-SNR_edges1 = [-Inf 27:6:45 Inf];
-
-%%
-SNR = 10*log10(estimates.rx_power./estimates.n0_power);
-Nerrors = zeros(2,length(SNR_edges));
-BER = zeros(2,length(SNR_edges));
-
-for c=1:2
- [n,bin] = histc(squeeze(mean(SNR(c+1,:,:),2)),SNR_edges);
- figure(c)
- hold off
- bar(SNR_edges(2:end-1),n(2:end-1),'histc');
- xlabel('SNR')
- ylabel('Count')
- title(sprintf('SNR Histogram for Stream %d',c));
- for b=1:length(SNR_edges)
- Nerrors(c,b) = sum(estimates.crc_status(c,bin==b)==-1);
- BER(c,b) = Nerrors(c,b)/sum(bin==b);
- end
-end
-
-%%
-h_fig = figure(3);
-hold off
-semilogy(SNR_edges-1.5,BER.');
-grid on
-xlabel('SNR');
-ylabel('FER');
-legend('Stream 1','Stream 2')
-title(sprintf('RX mode = %d',mode(estimates.rx_mode)));
-saveas(h_fig,fullfile(figpath,sprintf('FER1+2_idx%d.eps',idx)),'epsc2');
-
-
-%%
-figure(4)
-hold off
-[n2,bin2] = my_hist3(squeeze(mean(SNR(2:3,:,:),2)).','Edges',{SNR_edges1, SNR_edges});
-% size(n2) = [SNR_CH1, SNR_CH2]
-%hist3(squeeze(mean(SNR(2:3,:,:),2)).','Edges',{SNR_edges, SNR_edges});
-xlabel('SNR stream 1')
-ylabel('SNR stream 2')
-zlabel('Count')
-Nerrors1 = accumarray(bin2,estimates.crc_status(1,:)==-1,size(n2));
-Nerrors2 = accumarray(bin2,estimates.crc_status(2,:)==-1,size(n2));
-FER1 = Nerrors1./n2;
-FER2 = Nerrors2./n2;
-
-%%
-h_fig = figure(5);
-plot_style={'r-','g-','b-','k-'; ...
- 'r--','g--','b--','k--'; ...
- 'r:','g:','b:','k:'};
-k=1;
-for b=2:3
- semilogy(SNR_edges,FER1(b,:),plot_style{i,k},'Linewidth',2)
- legend_str{i,k} = sprintf('idx %d, SNR Stream 1 = %ddB',idx,SNR_edges1(b));
- k=k+1;
- hold on
-end
-legend_str2=legend_str.';
-legend(legend_str2{:},'Location','SouthWest')
-xlabel('SNR Stream 2','Fontsize',14)
-ylabel('FER Stream 2','Fontsize',14)
-grid on
-saveas(h_fig,fullfile(figpath,sprintf('FER1_idx%d.eps',idx)),'epsc2');
-
-if 0
-%%
-h_fig = figure(6);
-hold off
-surf(SNR_edges(2:end-1),SNR_edges1(2:end-1),FER1(2:end-1,2:end-1));
-set(gca,'zscale','log')
-xlabel('SNR stream 2')
-ylabel('SNR stream 1')
-zlabel('FER1');
-saveas(h_fig,fullfile(figpath,sprintf('FER1_3D_idx%d.eps',idx)),'epsc2');
-
-%%
-h_fig = figure(7);
-hold off
-surf(SNR_edges(2:end-1),SNR_edges1(2:end-1),FER2(2:end-1,2:end-1));
-set(gca,'zscale','log')
-xlabel('SNR stream 2')
-ylabel('SNR stream 1')
-zlabel('FER2');
-saveas(h_fig,fullfile(figpath,sprintf('FER2_3D_idx%d.eps',idx)),'epsc2');
-
-%%
-h_fig = figure(8);
-hold off
-fer2 = sum(reshape(estimates.crc_status(2,:),100,[])==-1,1)./100;
-fer1 = sum(reshape(estimates.crc_status(1,:),100,[])==-1,1)./100;
-plot(fer1,'r.')
-hold on
-plot(fer2,'b.')
-grid on
-xlabel('Distance')
-ylabel('FER')
-legend('Stream 1','Stream 2')
-saveas(h_fig,fullfile(figpath,sprintf('FER1+2_dist_idx%d.eps',idx)),'epsc2');
-end
-
-%%
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/plot_ber2.m b/openair1/EMOS/MATLAB/plot_ber2.m
deleted file mode 100644
index 14e19f94d0..0000000000
--- a/openair1/EMOS/MATLAB/plot_ber2.m
+++ /dev/null
@@ -1,76 +0,0 @@
-% file: plot_ber2
-% author: florian.kaltenberger@eurecom.fr
-% purpose: this script plots the figures for the PIMRC 2009 paper
-
-clear all
-close all
-
-load '/extras/kaltenbe/EMOS/data/20090506_DualStream_Lab/metadata_MU.mat';
-figpath = '.';
-
-%%
-% size(est2) = [RX_type, CH2_power, CH1_power]
-% RX_type: 1=SINLGE, 2=MMSE, 3=ML
-% CHx_power: 1=-20, 2=-10, 3=0
-est2 = reshape(est(3,1:45),3,5,3);
-
-%%
-for c1=1:3
- for c2=1:3
- for r=1:3
- FER1(r,c2,c1)=sum(est2(r,c2,c1).crc_status(1,:)==-1)./length(est2(r,c2,c1).crc_status);
- FER2(r,c2,c1)=sum(est2(r,c2,c1).crc_status(2,:)==-1)./length(est2(r,c2,c1).crc_status);
- SNR1(r,c2,c1)=10*log10(mean(mean(est2(r,c2,c1).rx_power(2,:,:)./est2(r,c2,c1).n0_power(2,:,:))));
- SNR2(r,c2,c1)=10*log10(mean(mean(est2(r,c2,c1).rx_power(3,:,:)./est2(r,c2,c1).n0_power(3,:,:))));
- end
- end
-end
-
-%%
-h_fig = figure(1);
-hold off
-plot_style={'r-x','g-o','b-s','k-'; ...
- 'r--x','g--o','b--s','k--'; ...
- 'r:x','g:o','b:s','k:'};
-clear legend_str
-CH_power = -20:10:0;
-for c1=1:3
-for r=2:3
- semilogy(CH_power,squeeze(FER1(r,:,c1)),plot_style{r-1,c1},'Linewidth',2,'Markersize',10)
- if (r==2)
- legend_str{r-1,c1} = sprintf('MMSE, Power CH1 = %d dBm',CH_power(c1));
- elseif (r==3)
- legend_str{r-1,c1} = sprintf('max-log MAP, Power CH1 = %d dBm',CH_power(c1));
- end
- hold on
-end
-end
-%legend_str=legend_str.';
-legend(legend_str{:},'Location','SouthEast')
-xlabel('Power CH2 [dBm]','Fontsize',14)
-ylabel('FER Stream 1','Fontsize',14)
-grid on
-saveas(h_fig,fullfile(figpath,sprintf('FER_comparison2.eps')),'epsc2');
-
-%%
-h_fig = figure(2);
-hold off
-plot_style={'r-','g-','b-','k-'; ...
- 'r--','g--','b--','k--'; ...
- 'r:','g:','b:','k:'};
-clear legend_str
-CH_power = -20:10:0;
-for c2=1:3
-for r=2:3
- semilogy(CH_power,squeeze(FER2(r,c2,:)),plot_style{r,c2},'Linewidth',2)
- legend_str{r-1,c2} = sprintf('RX %d, Power CH2 = %ddB',r,CH_power(c2));
- hold on
-end
-end
-%legend_str=legend_str.';
-legend(legend_str{:},'Location','SouthWest')
-xlabel('Power CH1','Fontsize',14)
-ylabel('FER Stream 2','Fontsize',14)
-grid on
-
-
diff --git a/openair1/EMOS/MATLAB/plot_ber3.m b/openair1/EMOS/MATLAB/plot_ber3.m
deleted file mode 100644
index 9738523f4e..0000000000
--- a/openair1/EMOS/MATLAB/plot_ber3.m
+++ /dev/null
@@ -1,93 +0,0 @@
-% file: plot_ber3
-% author: florian.kaltenberger@eurecom.fr
-% purpose: this script plots the figures for the PIMRC 2009 paper
-
-clear all
-close all
-
-figpath = '.';
-
-%%
-% size(est2) = [RX_type, CH2_power, CH1_power]
-% RX_type: 1=SINLGE, 2=MMSE, 3=ML
-% CHx_power: 1=-20, 2=-10, 3=0
-load '/extras/kaltenbe/EMOS/data/20090723_DualStream_3Rooms/metadata_MU.mat';
-est2 = reshape(est(3,[7:9 4:6 1:3 13:15 16:27]),3,4,2);
-
-%load '/extras/kaltenbe/EMOS/data/20090506_DualStream_Lab/metadata_MU.mat';
-%est2 = reshape(est(3,1:45),3,5,3);
-
-%%
-for c1=1:size(est2,3)
- for c2=1:size(est2,2)
- for r=1:size(est2,1)
- FER1(r,c2,c1)=sum(est2(r,c2,c1).crc_status(1,:)==-1)./length(est2(r,c2,c1).crc_status);
- FER2(r,c2,c1)=sum(est2(r,c2,c1).crc_status(2,:)==-1)./length(est2(r,c2,c1).crc_status);
- SNR1(r,c2,c1)=10*log10(mean(mean(est2(r,c2,c1).rx_power(2,:,:)./est2(r,c2,c1).n0_power(2,:,:))));
- SNR2(r,c2,c1)=10*log10(mean(mean(est2(r,c2,c1).rx_power(3,:,:)./est2(r,c2,c1).n0_power(3,:,:))));
- P1(r,c2,c1)=mean(est2(r,c2,c1).rx_avg_power_dB(2,:));
- P2(r,c2,c1)=mean(est2(r,c2,c1).rx_avg_power_dB(3,:));
- end
- end
-end
-
-%%
-h_fig = figure(1);
-hold off
-plot_style={'r-x','g-o','b-s','k-'; ...
- 'r--x','g--o','b--s','k--'; ...
- 'r:x','g:o','b:s','k:'};
-clear legend_str
-CH_power = -10:10:0;
-SINR = -5:5:10;
-for c1=1:2
-for r=1:2
- semilogy(SINR,squeeze(FER1(r,:,c1)),plot_style{r,c1},'Linewidth',2,'Markersize',10)
- if (r==2)
- legend_str{r,c1} = sprintf('MMSE, Power CH1 = %d dBm',CH_power(c1));
- elseif (r==1)
- legend_str{r,c1} = sprintf('max-log MAP, Power CH1 = %d dBm',CH_power(c1));
- end
- hold on
-end
-end
-%legend_str=legend_str.';
-legend(legend_str{:},'Location','SouthEast')
-xlabel('Power CH2 [dBm]','Fontsize',14)
-ylabel('FER Stream 1','Fontsize',14)
-grid on
-saveas(h_fig,fullfile(figpath,sprintf('FER_comparison1.eps')),'epsc2');
-
-
-
-%%
-h_fig = figure(2);
-hold off
-plot_style={'r--x','g--o','b--s','k--'; ...
- 'r-x','g-o','b-s','k-'; ...
- 'r:x','g:o','b:s','k:'};
-clear legend_str
-%CH_power = -20:10:0;
-SINR = -10:5:5;
-k=1;
-for r=2:-1:1
-for c1=1:2
- semilogy(SINR,squeeze(FER2(r,:,c1)),plot_style{r,c1},'Linewidth',2,'Markersize',10)
- if (r==2)
- legend_str{k} = sprintf('MMSE, Power CH1 = %d dBm',CH_power(c1));
- elseif (r==1)
- legend_str{k} = sprintf('max-log MAP, Power CH1 = %d dBm',CH_power(c1));
- end
- k=k+1;
- hold on
-end
-end
-%legend_str=legend_str.';
-legend(legend_str{:},'Location','SouthEast')
-xlabel('SIR [dB]','Fontsize',14)
-ylabel('FER Stream 2','Fontsize',14)
-grid on
-saveas(h_fig,fullfile(figpath,sprintf('FER_comparison2.eps')),'epsc2');
-
-
-
diff --git a/openair1/EMOS/MATLAB/plot_capacity_comp_SU_MU.m b/openair1/EMOS/MATLAB/plot_capacity_comp_SU_MU.m
deleted file mode 100755
index d0faf54eb4..0000000000
--- a/openair1/EMOS/MATLAB/plot_capacity_comp_SU_MU.m
+++ /dev/null
@@ -1,29 +0,0 @@
-load Z:\EMOS\data\20071126_MU_Outdoor\data_term3_idx30_20071126_153448.mat
-[Cap4x2_meas_f,Cap4x2_meas_x] = ecdf(CAP1(:));
-
-load Z:\EMOS\data\20071128_SU_Indoor_RxCorrTest\data_term1_idx1_20071128_190238.mat
-[Cap4x2_meas2_f,Cap4x2_meas2_x] = ecdf(CAP1(:));
-
-load Z:\EMOS\data\20071126_MU_Outdoor\results_idx_32.mat
-[Cap_4U_SUTS_f,Cap_4U_SUTS_x] = ecdf(CAP_4U_SUTS(:));
-
-load cap_iid.mat
-
-%% plot results
-h_fig = figure(78)
-hold off
-plot(Cap4x2_iid_x,Cap4x2_iid_f,'b')
-hold on
-plot(Cap4x2_meas_x,Cap4x2_meas_f,'b--','Linewidth',2)
-plot(Cap4x2_meas2_x,Cap4x2_meas2_f,'b','Linewidth',2)
-plot(Cap_MU_SUTS_iid_x,Cap_MU_SUTS_iid_f,'k')
-plot(Cap_4U_SUTS_x,Cap_4U_SUTS_f,'k','Linewidth',2)
-xlabel('bits/sec/Hz')
-%xlim([0 18])
-ylabel('CDF')
-title('Capacity')
-legend('SU 4x2 iid','SU 4x2 meas outdoor','SU 4x2 meas indoor','SUTS 4x2 iid','SUTS 4x2 measured','Location','SouthEast')
-grid on
-filename_cap = 'capacity_comp_SU_MU.eps';
-saveas(h_fig, filename_cap, 'epsc2');
-system(['epstopdf ' filename_cap]);
diff --git a/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements.m b/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements.m
deleted file mode 100755
index a18617383e..0000000000
--- a/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements.m
+++ /dev/null
@@ -1,192 +0,0 @@
-close all
-clear all
-
-%file_indices = [32 50 51];
-%file_indices = [27 28 32 33 50 51 52];
-
-files = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_v2_idx_32.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_v2_idx_100.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_v2_idx_52.mat'};
-files_DPC = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_DPC_idx_32.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_DPC_4x1_idx_100.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_DPC_4x1_idx_52.mat'};
-
-NIdx = length(files);
-SNR = 10;
-
-plot_style_ZF = {'b-','b--','b:'};
-plot_style_MMSE = {'r-','r--','r:'};
-
-
-for idx = 1:NIdx
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, NIdx));
-
- % filename_mat = sprintf('results_idx_%d.mat',idx);
-
- filepath = 'figs';
-
- load(files{idx});
- load(files_DPC{idx});
-
- % post processing
- %[Cap_4U_SUTS_f,Cap_4U_SUTS_x] = ecdf(CAP_4U_SUTS(:));
- [Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(CAP_4U_ZF(:));
- [Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(CAP_4U_MMSE(:));
- %[Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(CAP_2U_ZF(:));
- %[Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(CAP_2U_MMSE(:));
- [Cap_4U_AS_ZF_f,Cap_4U_AS_ZF_x] = ecdf(CAP_4U_AS_ZF(:));
- [Cap_4U_AS_MMSE_f,Cap_4U_AS_MMSE_x] = ecdf(CAP_4U_AS_MMSE(:));
- %[Cap_2U_AS_ZF_f,Cap_2U_AS_ZF_x] = ecdf(CAP_2U_AS_ZF(:));
- %[Cap_2U_AS_MMSE_f,Cap_2U_AS_MMSE_x] = ecdf(CAP_2U_AS_MMSE(:));
- [Cap_4U_4x1_DPC_f,Cap_4U_4x1_DPC_x] = ecdf(CAP_4U_4x1_DPC(:));
- [Cap_SU_TDMA_CL_ML_f,Cap_SU_TDMA_CL_ML_x] = ecdf(max(reshape(CAP_SU_TDMA_CL_ML,4,[]),[],1));
-
- % use the following color coding
- % ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
- % 4U = '-', 2U = '--'
- % measured = 2pt, iid = 1pt
-
- %%
- h_fig = figure(10);
-
- plot(Cap_4U_ZF_x,Cap_4U_ZF_f,plot_style_ZF{idx},'Linewidth',2)
- hold on
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,plot_style_MMSE{idx},'Linewidth',2)
-
- %%
- h_fig = figure(11);
-
- plot(Cap_4U_AS_ZF_x,Cap_4U_AS_ZF_f,plot_style_ZF{idx},'Linewidth',2)
- hold on
- plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,plot_style_MMSE{idx},'Linewidth',2)
-
- %%
- h_fig = figure(12);
-
- plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,plot_style_ZF{idx},'Linewidth',2)
- hold on
- plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,plot_style_MMSE{idx},'Linewidth',2)
-
-%% calculate the Rx correlation matrix between users taking the first Rx antenna
- NUser=4;
- NTx=4;
- n = 0:3;
- m = 0;
-
- for k1=0:3
- for k2=0:3
- tmp = R(k1+n*NUser+m*NUser*NTx+1,k2+n*NUser+m*NUser*NTx+1);
- % RRx(k1+1,k2+1) = mean(tmp(:));
- RRx(k1+1,k2+1) = sum(diag(tmp));
- end
- end
-
- figure(13)
- subplot(2,4,idx)
- imagesc(abs(RRx),[0,10])
- set(gca,'xtick',1:4)
- set(gca,'ytick',1:4)
-
- %% calculate the Tx correlation matrix taking the first Rx antenna
- k = 0:3;
- m = 0;
-
- for n1=0:3
- for n2=0:3
- tmp = R(k+n1*NUser+m*NUser*NTx+1,k+n2*NUser+m*NUser*NTx+1);
- RTx(n1+1,n2+1) = sum(diag(tmp));
- end
- end
-
- figure(13)
- subplot(2,4,4+idx)
- imagesc(abs(RTx),[0,10])
- set(gca,'xtick',1:4)
- set(gca,'ytick',1:4)
-
-%%
-end
-
-% h_fig = figure(10);
-% load('Cap_iid_N_Rx=1.mat')
-% plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
-% hold on
-% plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
-%%
-figure(13)
-cmap = colormap('gray');
-cmap = cmap(end:-1:1,:);
-colormap(cmap);
-hcolorbar = subplot(2,4,[4 8]);
-colorbar(hcolorbar);
-set(hcolorbar,'YTick',linspace(1,64,6))
-set(hcolorbar,'YTicklabel',0:1:10)
-
-%%
-subplot(2,4,1)
-title('outdoor far')
-ylabel('Rx corr')
-subplot(2,4,2)
-title('indoor')
-subplot(2,4,3)
-title('outdoor near')
-subplot(2,4,5)
-ylabel('Tx corr')
-
-drawnow
-
-
-%%
-h_fig = figure(10);
-legend('MU-MIMO ZF Measurement 1','MU-MIMO MMSE Measurement 1',...
- 'MU-MIMO ZF Measurement 2','MU-MIMO MMSE Measurement 2',...
- 'MU-MIMO ZF Measurement 3','MU-MIMO MMSE Measurement 3'...
- ,'Location','SouthEast')
-title('Multi-user Capacity for M=4, K=4, N=1, and SNR=10dB','Fontsize',14)
-xlabel('bits/channel use','Fontsize',12)
-xlim([0 18])
-ylabel('CDF','Fontsize',12)
-grid on
-annotation('ellipse','Position',[0.1339 0.5215 0.1625 0.05952]);
-annotation('textbox','String',{'MU-MIMO ZF'}, 'LineStyle','none',...
- 'Position',[0.1295 0.5881 0.1972 0.05]);
-annotation('ellipse','Position',[0.3589 0.6253 0.1196 0.05952]);
-annotation('textbox','String',{'MU-MIMO MMSE'},'LineStyle','none',...
- 'Position',[0.4746 0.6062 0.2433 0.07143]);
-filename_cap = 'capacity_comp_multiple_measurements_ZF_MMSE.eps';
-saveas(h_fig, filename_cap, 'epsc2');
-system(['epstopdf ' filename_cap]);
-
-
-h_fig = figure(11);
-legend('M32 ZF 4U','M32 MMSE 4U','M50 ZF 4U','M50 MMSE 4U','M51 ZF 4U','M51 MMSE 4U','Location','SouthEast')
-title('Multi-user Capacity for NTx=4 with antenna selection and SNR=10dB')
-xlabel('bits/sec/Hz')
-xlim([0 18])
-ylabel('CDF')
-grid on
-filename_cap = 'capacity_comp_multiple_measurements_AS.eps';
-saveas(h_fig, filename_cap, 'epsc2');
-system(['epstopdf ' filename_cap]);
-
-h_fig = figure(12);
-legend('MU-MIMO DPC Measurement 1','SU-MISO TDMA Measurement 1',...
- 'MU-MIMO DPC Measurement 2','SU-MISO TDMA Measurement 2',...
- 'MU-MIMO DPC Measurement 3','SU-MISO TDMA Measurement 3'...
- ,'Location','SouthEast')
-title('Multi-user Capacity for M=4, K=4, N=1, and SNR=10dB','Fontsize',14)
-xlabel('bits/channel use','Fontsize',12)
-xlim([0 18])
-ylabel('CDF','Fontsize',12)
-grid on
-annotation('ellipse','Position',[0.3171 0.6548 0.1026 0.05952]);
-annotation('ellipse','Position',[0.5156 0.5586 0.1026 0.05952]);
-annotation('textbox','String',{'SU-MISO TDMA'},'LineStyle','none',...
- 'Position',[0.1599 0.6976 0.1972 0.05]);
-annotation('textbox','String',{'MU-MIMO DPC'},'LineStyle','none',...
- 'Position',[0.621 0.5157 0.2018 0.07143]);
-
-filename_cap = 'capacity_comp_multiple_measurements_DPC_SU.eps';
-saveas(h_fig, filename_cap, 'epsc2');
-system(['epstopdf ' filename_cap]);
diff --git a/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements2.m b/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements2.m
deleted file mode 100644
index 27ab73df27..0000000000
--- a/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements2.m
+++ /dev/null
@@ -1,305 +0,0 @@
-close all
-clear all
-
-%file_indices = [32 50 51];
-%file_indices = [27 28 32 33 50 51 52];
-
-files = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_v2_idx_32.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_v2_idx_100.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_v2_idx_52.mat'};
-files_SU = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_SU_TDMA_SNR_10_idx_32.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_SU_TDMA_SNR_10_idx_100.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_SU_TDMA_SNR_10_idx_52.mat'};
-files_DPC = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_DPC_idx_32.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_DPC_4x1_idx_100.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_DPC_4x1_idx_52.mat'};
-files_RVQ_corr_4bit = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_RVQ_corr_4bit_SNR_10_idx_32_06-Nov-2008_11:45:07.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_RVQ_corr_4bit_SNR_10_idx_100_06-Nov-2008_11:44:35.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_RVQ_corr_4bit_SNR_10_idx_52_06-Nov-2008_11:43:07.mat'};
-files_Grassmanian_4bit = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_Grassmanian_4bit_SNR_10_idx_32_05-Nov-2008_17:57:10.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_Grassmanian_4bit_SNR_10_idx_100_05-Nov-2008_17:40:46.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_Grassmanian_4bit_SNR_10_idx_52_05-Nov-2008_17:38:36.mat'};
-files_RVQ_corr_6bit = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_RVQ_corr_6bit_SNR_10_idx_32_06-Nov-2008_11:45:26.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_RVQ_corr_6bit_SNR_10_idx_100_06-Nov-2008_11:44:20.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_RVQ_corr_6bit_SNR_10_idx_52_06-Nov-2008_11:43:52.mat'};
-files_Grassmanian_6bit = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_Grassmanian_6bit_SNR_10_idx_32_05-Nov-2008_17:56:34.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_Grassmanian_6bit_SNR_10_idx_100_05-Nov-2008_17:41:19.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_Grassmanian_6bit_SNR_10_idx_52_05-Nov-2008_17:36:10.mat'};
-files_RVQ_corr_12bit = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_RVQ_corr_12bit_SNR_10_idx_32_18-Nov-2008_14:33:36.mat',...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_RVQ_corr_12bit_SNR_10_idx_100_19-Nov-2008_10:47:08.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_RVQ_corr_12bit_SNR_10_idx_52_19-Nov-2008_10:46:59.mat'};
-files_CVQ = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_CVQ_SNR_10_idx_32_13-Mar-2008_21:55:09.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_CVQ_SNR_10_idx_100_13-Mar-2008_09:33:57.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_CVQ_SNR_10_idx_52_07-Nov-2008_16:56:21.mat'};
-files_RVQ = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_RVQ_4bit_SNR_10_idx_32_21-Nov-2008_17:25:43.mat', ...
- '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_RVQ_4bit_SNR_10_idx_100_21-Nov-2008_17:24:58.mat',...
- '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_RVQ_corr_4bit_SNR_10_idx_50_21-Nov-2008_17:37:43.mat'};
-
-
-NIdx = length(files);
-SNR = 10;
-
-plot_style_ZF = {'b-','b--','b:'};
-plot_style_MMSE = {'r-','r--','r:','r-.'};
-
-
-for idx = 1 %:NIdx
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, NIdx));
-
- % filename_mat = sprintf('results_idx_%d.mat',idx);
-
- filepath = 'figs';
-
- load(files{idx});
- load(files_SU{idx});
- load(files_DPC{idx});
- load(files_CVQ{idx});
- Grass_4bit = load(files_Grassmanian_4bit{idx});
- Grass_6bit = load(files_Grassmanian_6bit{idx});
- RVQ_corr_4bit = load(files_RVQ_corr_4bit{idx});
- RVQ_corr_6bit = load(files_RVQ_corr_6bit{idx});
- RVQ_corr_12bit = load(files_RVQ_corr_12bit{idx});
- RVQ = load(files_RVQ{idx});
-
-
- % post processing
- [Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(CAP_4U_ZF(:));
- [Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(CAP_4U_MMSE(:));
- %[Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(CAP_2U_ZF(:));
- %[Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(CAP_2U_MMSE(:));
- [Cap_4U_AS_ZF_f,Cap_4U_AS_ZF_x] = ecdf(CAP_4U_AS_ZF(:));
- [Cap_4U_AS_MMSE_f,Cap_4U_AS_MMSE_x] = ecdf(CAP_4U_AS_MMSE(:));
- %[Cap_2U_AS_ZF_f,Cap_2U_AS_ZF_x] = ecdf(CAP_2U_AS_ZF(:));
- %[Cap_2U_AS_MMSE_f,Cap_2U_AS_MMSE_x] = ecdf(CAP_2U_AS_MMSE(:));
- [Cap_4U_4x1_DPC_f,Cap_4U_4x1_DPC_x] = ecdf(CAP_4U_4x1_DPC(:));
-
- [Cap_SU_TDMA_ML_f,Cap_SU_TDMA_ML_x] = ecdf(CAP_SU4x1_TDMA_ML(:));
- [Cap_SU_TDMA_CL_ML_f,Cap_SU_TDMA_CL_ML_x] = ecdf(CAP_SU4x1_TDMA_CL_ML(:));
-
- [Cap_4U_Fourier_4bit_f,Cap_4U_Fourier_4bit_x] = ecdf(reshape(CAP_4U_MMSE_CVQ(:,:,1),1,[]));
- [Cap_4U_Fourier_6bit_f,Cap_4U_Fourier_6bit_x] = ecdf(reshape(CAP_4U_MMSE_CVQ(:,:,2),1,[]));
- [Cap_4U_Fourier_12bit_f,Cap_4U_Fourier_12bit_x] = ecdf(reshape(CAP_4U_MMSE_CVQ(:,:,3),1,[]));
- [Cap_4U_Grass_4bit_f,Cap_4U_Grass_4bit_x] = ecdf(Grass_4bit.CAP_4U_MMSE_RVQ(:));
- [Cap_4U_Grass_6bit_f,Cap_4U_Grass_6bit_x] = ecdf(Grass_6bit.CAP_4U_MMSE_RVQ(:));
- [Cap_4U_RVQ_corr_4bit_f,Cap_4U_RVQ_corr_4bit_x] = ecdf(RVQ_corr_4bit.CAP_4U_MMSE_RVQ(:));
- [Cap_4U_RVQ_corr_6bit_f,Cap_4U_RVQ_corr_6bit_x] = ecdf(RVQ_corr_6bit.CAP_4U_MMSE_RVQ(:));
- [Cap_4U_RVQ_corr_12bit_f,Cap_4U_RVQ_corr_12bit_x] = ecdf(RVQ_corr_12bit.CAP_4U_MMSE_RVQ(:));
- [Cap_4U_RVQ_4bit_f,Cap_4U_RVQ_4bit_x] = ecdf(reshape(RVQ.CAP_4U_MMSE_RVQ(:,:,1),1,[]));
- [Cap_4U_RVQ_6bit_f,Cap_4U_RVQ_6bit_x] = ecdf(reshape(RVQ.CAP_4U_MMSE_RVQ(:,:,2),1,[]));
- [Cap_4U_RVQ_12bit_f,Cap_4U_RVQ_12bit_x] = ecdf(reshape(RVQ.CAP_4U_MMSE_RVQ(:,:,3),1,[]));
-
- % use the following color coding
- % ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
- % 4U = '-', 2U = '--'
- % measured = 2pt, iid = 1pt
-
-%%
- h_fig = figure(10+idx-1);
- hold off
- %plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,plot_style_ZF{1},'Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,plot_style_ZF{1},'Linewidth',2)
- hold on
- plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,plot_style_ZF{2},'Linewidth',2)
- %plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,plot_style_ZF{3},'Linewidth',2)
- plot(Cap_4U_Fourier_6bit_x,Cap_4U_Fourier_6bit_f,plot_style_MMSE{1},'Linewidth',1)
- plot(Cap_4U_Grass_6bit_x,Cap_4U_Grass_6bit_f,plot_style_MMSE{2},'Linewidth',1)
- plot(Cap_4U_RVQ_6bit_x,Cap_4U_RVQ_6bit_f,plot_style_MMSE{3},'Linewidth',1)
- plot(Cap_4U_RVQ_corr_6bit_x,Cap_4U_RVQ_corr_6bit_f,plot_style_MMSE{4},'Linewidth',1)
- legend('MU-MIMO MMSE perfect feedback','SU-MISO TDMA (no feedback)', ...
- 'MU-MIMO Fourier MMSE 6 bit','MU-MIMO Grassmannian MMSE 6 bit', ...
- 'MU-MIMO RVQ MMSE 6 bit','MU-MIMO RVQ corr MMSE 6 bit', ...
- 'Location','SouthEast')
- title(sprintf('Multi-user Capacity for Measurement %d (M=4, K=4, N=1, SNR=10dB)',idx),'Fontsize',14)
- xlabel('bits/channel use','Fontsize', 12)
- xlim([0 18])
- ylabel('CDF','Fontsize', 12)
- grid on
- % Create textarrow
- annotation(h_fig,'textarrow',[0.2643 0.2875],[0.7585 0.7286],...
- 'TextEdgeColor','none',...
- 'String',{'no feedback'});
- annotation(h_fig,'textarrow',[0.5304 0.4661],[0.5823 0.5762],...
- 'TextEdgeColor','none',...
- 'String',{'perfect feedback'});
- annotation(h_fig,'ellipse','Position',[0.2054 0.2119 0.08314 0.05]);
- annotation(h_fig,'textbox','String',{'limited','feedback'},...
- 'HorizontalAlignment','center',...
- 'FitBoxToText','on',...
- 'LineStyle','none',...
- 'Position',[0.29 0.237 0.074 0.07381]);
- filename_cap = sprintf('capacity_comp_measurement_%d_6bits.eps',idx);
- saveas(h_fig, filename_cap, 'epsc2');
- system(['epstopdf ' filename_cap]);
-
-%%
- h_fig = figure(20+idx-1);
- hold off
- %plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,plot_style_ZF{1},'Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,plot_style_ZF{1},'Linewidth',2)
- hold on
- plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,plot_style_ZF{2},'Linewidth',2)
- %plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,plot_style_ZF{3},'Linewidth',2)
- plot(Cap_4U_Fourier_12bit_x,Cap_4U_Fourier_12bit_f,plot_style_MMSE{1},'Linewidth',1)
- %plot(Cap_4U_Grass_12bit_x,Cap_4U_Grass_12bit_f,plot_style_MMSE{2},'Linewidth',2)
- plot(Cap_4U_RVQ_12bit_x,Cap_4U_RVQ_12bit_f,plot_style_MMSE{3},'Linewidth',1)
- plot(Cap_4U_RVQ_corr_12bit_x,Cap_4U_RVQ_corr_12bit_f,plot_style_MMSE{4},'Linewidth',1)
- legend('MU-MIMO MMSE perfect feedback','SU-MISO TDMA (no feedback)', ...
- 'MU-MIMO Fourier MMSE 12 bit', ...
- 'MU-MIMO RVQ MMSE 12 bit','MU-MIMO RVQ corr MMSE 12 bit', ...
- 'Location','SouthEast')
- title(sprintf('Multi-user Capacity for Measurement %d (M=4, K=4, N=1, SNR=10dB)',idx),'Fontsize',14)
- xlabel('bits/channel use','Fontsize', 12)
- xlim([0 18])
- ylabel('CDF','Fontsize', 12)
- grid on
- % Create textarrow
- annotation(h_fig,'textarrow',[0.2643 0.2875],[0.7585 0.7286],...
- 'TextEdgeColor','none',...
- 'String',{'no feedback'});
- annotation(h_fig,'textarrow',[0.5304 0.4661],[0.5823 0.5762],...
- 'TextEdgeColor','none',...
- 'String',{'perfect feedback'});
- annotation(h_fig,'ellipse','Position',[0.2196 0.1976 0.125 0.07619]);
- annotation(h_fig,'textbox','String',{'limited','feedback'},...
- 'HorizontalAlignment','center',...
- 'FitBoxToText','on',...
- 'LineStyle','none',...
- 'Position',[0.2525 0.2751 0.074 0.07381]);
- filename_cap = sprintf('capacity_comp_measurement_%d_12bits.eps',idx);
- saveas(h_fig, filename_cap, 'epsc2');
- system(['epstopdf ' filename_cap]);
-
-
-%%
-% h_fig = figure(10)
-%
-% plot(Cap_4U_ZF_x,Cap_4U_ZF_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,plot_style_MMSE{idx},'Linewidth',2)
-
- %%
-% h_fig = figure(11);
-%
-% plot(Cap_4U_AS_ZF_x,Cap_4U_AS_ZF_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,plot_style_MMSE{idx},'Linewidth',2)
-
- %%
-% h_fig = figure(12);
-%
-% plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,plot_style_MMSE{idx},'Linewidth',2)
-
- %keyboard
-
- %%
-% h_fig = figure(13);
-%
-% plot(Cap_4U_Grass_4bit_x,Cap_4U_Grass_4bit_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_4U_RVQ_corr_4bit_x,Cap_4U_RVQ_corr_4bit_f,plot_style_MMSE{idx},'Linewidth',2)
-
- %%
-% h_fig = figure(14);
-%
-% plot(Cap_4U_Grass_6bit_x,Cap_4U_Grass_6bit_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_4U_RVQ_corr_6bit_x,Cap_4U_RVQ_corr_6bit_f,plot_style_MMSE{idx},'Linewidth',2)
-
-
-end
-
-% h_fig = figure(10);
-% load('Cap_iid_N_Rx=1.mat')
-% plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
-% hold on
-% plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
-
-%%
-% h_fig = figure(10);
-% legend('MU-MIMO ZF 4U outdoor far','MU-MIMO MMSE 4U outdoor far',...
-% 'MU-MIMO ZF 4U indoor','MU-MIMO MMSE 4U indoor',...
-% 'MU-MIMO ZF 4U outdoor near','MU-MIMO MMSE 4U outdoor near'...
-% ,'Location','SouthEast')
-% title('Multiuser Capacity for M=4, N=1, and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% annotation('ellipse','Position',[0.1339 0.5215 0.1625 0.05952]);
-% annotation('textbox','String',{'MU-MIMO ZF'}, 'LineStyle','none',...
-% 'Position',[0.1295 0.5881 0.1972 0.05]);
-% annotation('ellipse','Position',[0.3589 0.6253 0.1196 0.05952]);
-% annotation('textbox','String',{'MU-MIMO MMSE'},'LineStyle','none',...
-% 'Position',[0.4746 0.6062 0.2433 0.07143]);
-% filename_cap = 'capacity_comp_multiple_measurements_ZF_MMSE.eps';
-% %saveas(h_fig, filename_cap, 'epsc2');
-% %system(['epstopdf ' filename_cap]);
-%
-%
-% h_fig = figure(11);
-% legend('M32 ZF 4U','M32 MMSE 4U','M50 ZF 4U','M50 MMSE 4U','M51 ZF 4U','M51 MMSE 4U','Location','SouthEast')
-% title('Multiuser Capacity for NTx=4 with antenna selection and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% filename_cap = 'capacity_comp_multiple_measurements_AS.eps';
-% %saveas(h_fig, filename_cap, 'epsc2');
-% %system(['epstopdf ' filename_cap]);
-%
-% h_fig = figure(12);
-% legend('MU-MIMO DPC 4U outdoor far','SU-MISO TDMA 4U outdoor far',...
-% 'MU-MIMO DPC 4U indoor','SU-MISO TDMA 4U indoor',...
-% 'MU-MIMO DPC 4U outdoor near','SU-MISO TDMA 4U outdoor near'...
-% ,'Location','SouthEast')
-% title('Multiuser Capacity for M=4, N=1, and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% annotation('ellipse','Position',[0.3171 0.6548 0.1026 0.05952]);
-% annotation('ellipse','Position',[0.5156 0.5586 0.1026 0.05952]);
-% annotation('textbox','String',{'SU-MIMO TDMA'},'LineStyle','none',...
-% 'Position',[0.1599 0.6976 0.1972 0.05]);
-% annotation('textbox','String',{'MU-MIMO DPC'},'LineStyle','none',...
-% 'Position',[0.621 0.5157 0.2018 0.07143]);
-%
-% filename_cap = 'capacity_comp_multiple_measurements_DPC_SU.eps';
-% %saveas(h_fig, filename_cap, 'epsc2');
-% %system(['epstopdf ' filename_cap]);
-%
-% %%
-% h_fig = figure(13);
-% legend('MU-MIMO Grassmanian MMSE 4U outdoor far','MU-MIMO RVQ corr MMSE 4U outdoor far',...
-% 'MU-MIMO Grassmanian MMSE 4U indoor','MU-MIMO RVQ corr MMSE 4U indoor',...
-% 'MU-MIMO Grassmanian MMSE 4U outdoor near','MU-MIMO RVQ corr 4U outdoor near'...
-% ,'Location','SouthEast')
-% title('Multiuser Capacity for M=4, N=1, 4bit, and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% filename_cap = 'capacity_comp_multiple_measurements_RVQ_4bit.eps';
-% saveas(h_fig, filename_cap, 'epsc2');
-% %system(['epstopdf ' filename_cap]);
-%
-%
-% h_fig = figure(14);
-% legend('MU-MIMO Grassmanian MMSE 4U outdoor far','MU-MIMO RVQ corr MMSE 4U outdoor far',...
-% 'MU-MIMO Grassmanian MMSE 4U indoor','MU-MIMO RVQ corr MMSE 4U indoor',...
-% 'MU-MIMO Grassmanian MMSE 4U outdoor near','MU-MIMO RVQ corr 4U outdoor near'...
-% ,'Location','SouthEast')
-% title('Multiuser Capacity for M=4, N=1, 6bit, and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% filename_cap = 'capacity_comp_multiple_measurements_RVQ_6bit.eps';
-% saveas(h_fig, filename_cap, 'epsc2');
-% %system(['epstopdf ' filename_cap]);
-%
-%
-
diff --git a/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements3.m b/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements3.m
deleted file mode 100644
index c2f491cd53..0000000000
--- a/openair1/EMOS/MATLAB/plot_capacity_comp_multiple_measurements3.m
+++ /dev/null
@@ -1,250 +0,0 @@
-close all
-clear all
-
-%file_indices = [32 50 51];
-%file_indices = [27 28 32 33 50 51 52];
-
-filepath = 'figs';
-addpath('/homes/kaltenbe/Devel/matlab/matrix_distances')
-addpath('/homes/kaltenbe/Devel/matlab/spectral_divergence')
-
-cd /extras/kaltenbe/EMOS/data/20081110_MU_Outdoor
-
-%%
-load Dist.mat
-load CorrCoef.mat
-R=[];
-
-% for idx=25:29
-% a1 = mean(gps_data(3,idx).latitude)/360*2*pi;
-% a2 = mean(gps_data(4,idx).latitude)/360*2*pi;
-% b1 = mean(gps_data(3,idx).longitude)/360*2*pi;
-% b2 = mean(gps_data(4,idx).longitude)/360*2*pi;
-% r = 6378100; %radius of earth in meters
-% Dist(idx) = acos(cos(a1).*cos(b1).*cos(a2).*cos(b2) + cos(a1).*sin(b1).*cos(a2).*sin(b2) + sin(a1).*sin(a2)) * r;
-% end
-
-
-%%
-% d=dir('results_v2_idx_*.mat');
-% files = {d.name};
-%
-% d=dir('results_DPC_2x1_idx_*.mat');
-% files_DPC = {d.name};
-
-% files_DPC = {'/extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/results_DPC_idx_32.mat', ...
-% '/extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/results_DPC_4x1_idx_100.mat',...
-% '/extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/results_DPC_4x1_idx_52.mat'};
-
-file_indices = 25:29;
-NIdx = length(file_indices);
-SNR = 10;
-
-plot_style_ZF = {'b-','b--','b:','b-.','c'};
-plot_style_MMSE = {'r-','r--','r:','r-.','m'};
-
-
-for idx = 1:NIdx
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, NIdx));
-
- load(sprintf('results_v2_idx_%d.mat',file_indices(idx)));
- load(sprintf('results_DPC_2x1_idx_%d.mat',file_indices(idx)));
-
-
- %load(files{idx});
- %load(files_DPC{idx});
-
- % post processing
- %[Cap_4U_SUTS_f,Cap_4U_SUTS_x] = ecdf(CAP_4U_SUTS(:));
- %[Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(CAP_4U_ZF(:));
- %[Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(CAP_4U_MMSE(:));
- [Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(CAP_2U_ZF(:));
- [Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(CAP_2U_MMSE(:));
- %[Cap_4U_AS_ZF_f,Cap_4U_AS_ZF_x] = ecdf(CAP_4U_AS_ZF(:));
- %[Cap_4U_AS_MMSE_f,Cap_4U_AS_MMSE_x] = ecdf(CAP_4U_AS_MMSE(:));
- [Cap_2U_AS_ZF_f,Cap_2U_AS_ZF_x] = ecdf(CAP_2U_AS_ZF(:));
- [Cap_2U_AS_MMSE_f,Cap_2U_AS_MMSE_x] = ecdf(CAP_2U_AS_MMSE(:));
- [Cap_4U_4x1_DPC_f,Cap_4U_4x1_DPC_x] = ecdf(CAP_4U_4x1_DPC(:));
- [Cap_SU_TDMA_CL_ML_f,Cap_SU_TDMA_CL_ML_x] = ecdf(CAP_SU_TDMA_CL_ML(:));
-
- ECap_2U_ZF(idx) = mean(CAP_2U_ZF(~isnan(CAP_2U_ZF)));
- ECap_2U_MMSE(idx) = mean(CAP_2U_MMSE(:));
- ECap_2U_ZF_AS(idx) = mean(CAP_2U_AS_ZF(~isnan(CAP_2U_AS_ZF)));
- ECap_2U_MMSE_AS(idx) = mean(CAP_2U_AS_MMSE(:));
- ECap_2U_DPC(idx) = mean(CAP_4U_4x1_DPC(:));
- ECap_2U_SU_TDMA(idx) = mean(max(reshape(CAP_SU_TDMA_CL_ML,2,[]),[],1));
-
- temp = SD(DProf.');
- sd(idx) = temp(1,2);
- Dgeod(idx) = dgeod(R(1:2:end,1:2:end),R(2:2:end,2:2:end));
- Dcolin(idx) = dcolin(R(1:2:end,1:2:end),R(2:2:end,2:2:end));
-
- % use the following color coding
- % ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
- % 4U = '-', 2U = '--'
- % measured = 2pt, iid = 1pt
-
-% %%
-% h_fig = figure(10);
-%
-% plot(Cap_2U_ZF_x,Cap_2U_ZF_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,plot_style_MMSE{idx},'Linewidth',2)
-%
-% %%
-% h_fig = figure(11);
-%
-% plot(Cap_2U_AS_ZF_x,Cap_2U_AS_ZF_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,plot_style_MMSE{idx},'Linewidth',2)
-%
-% %%
-% h_fig = figure(12);
-%
-% plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,plot_style_ZF{idx},'Linewidth',2)
-% hold on
-% plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,plot_style_MMSE{idx},'Linewidth',2)
-
-% %% calculate the Rx correlation matrix between users taking the first Rx antenna
-% NUser=2;
-% NTx=2;
-% n = 0:NTx-1;
-% m = 0;
-%
-% for k1=0:NUser-1
-% for k2=0:NUser-1
-% tmp = R(k1+n*NUser+m*NUser*NTx+1,k2+n*NUser+m*NUser*NTx+1);
-% % RRx(k1+1,k2+1) = mean(tmp(:));
-% RRx(k1+1,k2+1) = sum(tmp(:));
-% end
-% end
-%
-% %% calculate the Tx correlation matrix taking the first Rx antenna
-% k = 0:NUser-1;
-% m = 0;
-%
-% for n1=0:NTx-1
-% for n2=0:NTx-1
-% disp([k+n1*NUser+m*NUser*NTx+1,k+n2*NUser+m*NUser*NTx+1]);
-% tmp = R(k+n1*NUser+m*NUser*NTx+1,k+n2*NUser+m*NUser*NTx+1);
-% RTx(n1+1,n2+1) = sum(tmp(:));
-% end
-% end
-
-
- figure(15)
- subplot(2,NIdx+1,idx)
- imagesc(abs(R)./norm(R), [0,1])
- %set(gca,'xtick',1:NUser)
- %set(gca,'ytick',1:NUser)
-
- figure(15)
- subplot(2,NIdx+1,NIdx+1+idx)
- imagesc(abs(R_Tx./norm(R_Tx)),[0,1])
-% set(gca,'xtick',1:NTx)
-% set(gca,'ytick',1:NTx)
- drawnow
-
-%%
-
-end
-%keyboard
-
-%%
-h_fig = figure(15)
-cmap = colormap('gray');
-cmap = cmap(end:-1:1,:);
-colormap(cmap);
-hcolorbar = subplot(2,NIdx+1,[NIdx+1 2*(NIdx+1)]);
-colorbar(hcolorbar);
-set(hcolorbar,'YTick',linspace(1,64,11))
-set(hcolorbar,'YTicklabel',linspace(0,1,11))
-
-% subplot(2,4,1)
-% title('outdoor far')
-% ylabel('Rx corr')
-% subplot(2,4,2)
-% title('indoor')
-% subplot(2,4,3)
-% title('outdoor near')
-% subplot(2,4,5)
-% ylabel('Tx corr')
-
-
-% %%
-% h_fig = figure(10);
-% legend('MU-MIMO ZF 4U outdoor far','MU-MIMO MMSE 4U outdoor far',...
-% 'MU-MIMO ZF 4U indoor','MU-MIMO MMSE 4U indoor',...
-% 'MU-MIMO ZF 4U outdoor near','MU-MIMO MMSE 4U outdoor near'...
-% ,'Location','SouthEast')
-% title('Multiuser Capacity for M=4, N=1, and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% annotation('ellipse','Position',[0.1339 0.5215 0.1625 0.05952]);
-% annotation('textbox','String',{'MU-MIMO ZF'}, 'LineStyle','none',...
-% 'Position',[0.1295 0.5881 0.1972 0.05]);
-% annotation('ellipse','Position',[0.3589 0.6253 0.1196 0.05952]);
-% annotation('textbox','String',{'MU-MIMO MMSE'},'LineStyle','none',...
-% 'Position',[0.4746 0.6062 0.2433 0.07143]);
-% filename_cap = 'capacity_comp_multiple_measurements_ZF_MMSE.eps';
-% saveas(h_fig, filename_cap, 'epsc2');
-% system(['epstopdf ' filename_cap]);
-%
-%
-% h_fig = figure(11);
-% legend('M32 ZF 4U','M32 MMSE 4U','M50 ZF 4U','M50 MMSE 4U','M51 ZF 4U','M51 MMSE 4U','Location','SouthEast')
-% title('Multiuser Capacity for NTx=4 with antenna selection and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% filename_cap = 'capacity_comp_multiple_measurements_AS.eps';
-% saveas(h_fig, filename_cap, 'epsc2');
-% system(['epstopdf ' filename_cap]);
-%
-% h_fig = figure(12);
-% legend('MU-MIMO DPC 4U outdoor far','SU-MISO TDMA 4U outdoor far',...
-% 'MU-MIMO DPC 4U indoor','SU-MISO TDMA 4U indoor',...
-% 'MU-MIMO DPC 4U outdoor near','SU-MISO TDMA 4U outdoor near'...
-% ,'Location','SouthEast')
-% title('Multiuser Capacity for M=4, N=1, and SNR=10dB')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% grid on
-% annotation('ellipse','Position',[0.3171 0.6548 0.1026 0.05952]);
-% annotation('ellipse','Position',[0.5156 0.5586 0.1026 0.05952]);
-% annotation('textbox','String',{'SU-MIMO TDMA'},'LineStyle','none',...
-% 'Position',[0.1599 0.6976 0.1972 0.05]);
-% annotation('textbox','String',{'MU-MIMO DPC'},'LineStyle','none',...
-% 'Position',[0.621 0.5157 0.2018 0.07143]);
-%
-% filename_cap = 'capacity_comp_multiple_measurements_DPC_SU.eps';
-% saveas(h_fig, filename_cap, 'epsc2');
-% system(['epstopdf ' filename_cap]);
-
-%%
-h_fig = figure(13)
-%bar(Dist(25:29),[ECap_2U_ZF' ECap_2U_MMSE' ECap_2U_ZF_AS' ECap_2U_MMSE_AS']);
-h_bar = bar(Dist(25:29),[ECap_2U_ZF' ECap_2U_MMSE' ECap_2U_DPC' ECap_2U_SU_TDMA']);
-set(h_bar(1),'FaceColor',[1 1 1]);
-set(h_bar(2),'FaceColor',[0.83 0.82 0.78]);
-set(h_bar(3),'FaceColor',[0.5 0.5 0.5]);
-set(h_bar(4),'FaceColor',[0 0 0]);
-legend('MU-MIMO ZF', 'MU-MIMO MMSE', 'MU-MIMO DPC', 'SU-MISO TDMA','Location','NorthWest');
-xlabel('Distance [m]','Fontsize',12)
-ylabel('Ergodic Capacity [bits/channel use]','Fontsize',12)
-title('Multi-user Capacity for M=2, N=1, K=2 and SNR=10dB','Fontsize',14)
-grid on
-saveas(h_fig,'capacity_comp_ergodic_distance.eps','epsc2');
-
-%%
-h_fig = figure(14)
-bar(Dist(25:29),[sd' Dgeod' cc']);
-legend('Spectral Divergence','Geodesic Distance','Correlation Coefficient','Location','NorthWest');
-xlabel('Distance [m]','Fontsize',12)
-%ylabel('Ergodic Capacity','Fontsize',12)
-grid on
-saveas(h_fig,'capacity_comp_divers.eps','epsc2');
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/plot_data_MU_CVQ.m b/openair1/EMOS/MATLAB/plot_data_MU_CVQ.m
deleted file mode 100644
index 3dee3ed14b..0000000000
--- a/openair1/EMOS/MATLAB/plot_data_MU_CVQ.m
+++ /dev/null
@@ -1,195 +0,0 @@
-filename_mat = sprintf('results_v2_idx_%d.mat',idx);
-%filename_CVQ_mat = sprintf('results_CVQ_idx_%d.mat',idx);
-filename_CVQ_mat = sprintf('results_CVQ_SNR_%d_idx_%d_31-Mar-2008_09:22:50.mat',SNRdB,idx);
-
-%filename_RVQ_mat = sprintf('results_RVQ_SNR_%d_idx_%d_28-Mar-2008_16:43:58.mat',SNRdB,idx);
-%filename_RVQ_corr_mat = sprintf('results_RVQ_corr_SNR_%d_idx_%d_28-Mar-2008_16:43:16',SNRdB,idx);
-filename_RVQ_mat = sprintf('results_RVQ_SNR_%d_idx_%d_22-Jul-2008_15:56:48.mat',SNRdB,idx);
-filename_RVQ_corr_mat = sprintf('results_RVQ_corr_SNR_%d_idx_%d_22-Jul-2008_15:35:38.mat',SNRdB,idx);
-
-filename_SU_TDMA_mat = sprintf('results_SU_TDMA_SNR_%d_idx_%d.mat',SNRdB,idx);
-
-%%
-% d = dir(filename_CVQ_mat);
-% [m,i] = max([d.datenum]);
-% filename_CVQ_mat = d(i).name;
-% d = dir(filename_RVQ_mat);
-% [m,i] = max([d.datenum]);
-% filename_RVQ_mat = d(i).name;
-% d = dir(filename_RVQ_corr_mat);
-% [m,i] = max([d.datenum]);
-% filename_RVQ_corr_mat = d(i).name;
-
-logscale = 0;
-
-%%
- h_fig = figure(3);
- align_matrix = repmat(-1,4,max(framestamp_max(:,idx)) - min(framestamp_min(:,idx)) + 1);
- for u = 1:4
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = est(u,idx).err_ind;
- end
-
- map = [1 1 1; ...
- 0 1 0; ...
- 1 0 0];
-
- image(align_matrix+2); % image values have to be in range 1:m
- colormap(map);
- set(gca,'YTickLabel',{'','User 1','','User 2','','User 3','','User 4'},...
- 'YTick',[0.5 1 1.5 2 2.5 3 3.5 4],...
- 'XTick',zeros(1,0));
- %pos = get(h_fig,'Position');
- set(h_fig,'Position',[360 504 560 104])
- %pos = get(h_fig,'PaperPosition');
- set(h_fig,'PaperPosition',[0.25 2.5 8 1.5])
- filename_align = fullfile(filepath_figs,sprintf('idx_%d_align.eps',idx));
- saveas(h_fig, filename_align, 'epsc2');
-
-%%
-if exist(filename_mat,'file')
-%%
- load(filename_mat)
- load(filename_CVQ_mat)
- load(filename_RVQ_mat,'CAP_4U_ZF_RVQ','CAP_4U_MMSE_RVQ');
- RVQ_corr = load(filename_RVQ_corr_mat,'CAP_4U_ZF_RVQ','CAP_4U_MMSE_RVQ');
- load(filename_SU_TDMA_mat,'CAP_SU4x1_TDMA_ML','CAP_SU_TDMA_DSTTD','CAP_SU4x1_TDMA_CL_ML')
-
-%%
- % post processing
- NFrames_Tx_proc = sum(all(align_matrix==0));
- [Cap_SU4x1_TDMA_ML_f,Cap_SU4x1_TDMA_ML_x] = ecdf(CAP_SU4x1_TDMA_ML(:));
- [Cap_SU4x1_TDMA_CL_ML_f,Cap_SU4x1_TDMA_CL_ML_x] = ecdf(CAP_SU4x1_TDMA_CL_ML(:));
- [Cap_SU_TDMA_DSTTD_f,Cap_SU_TDMA_DSTTD_x] = ecdf(CAP_SU_TDMA_DSTTD(:));
- [Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(reshape(CAP_4U_ZF(:,1:NFrames_Tx_proc),1,[]));
- [Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(reshape(CAP_4U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- [Cap_4U_ZF_CVQ_4bits_f,Cap_4U_ZF_CVQ_4bits_x] = ecdf(reshape(CAP_4U_ZF_CVQ(:,1:NFrames_Tx_proc,1),1,[]));
- [Cap_4U_MMSE_CVQ_4bits_f,Cap_4U_MMSE_CVQ_4bits_x] = ecdf(reshape(CAP_4U_MMSE_CVQ(:,1:NFrames_Tx_proc,1),1,[]));
- [Cap_4U_ZF_CVQ_12bits_f,Cap_4U_ZF_CVQ_12bits_x] = ecdf(reshape(CAP_4U_ZF_CVQ(:,1:NFrames_Tx_proc,3),1,[]));
- [Cap_4U_MMSE_CVQ_12bits_f,Cap_4U_MMSE_CVQ_12bits_x] = ecdf(reshape(CAP_4U_MMSE_CVQ(:,1:NFrames_Tx_proc,3),1,[]));
- [Cap_4U_ZF_RVQ_12bits_f,Cap_4U_ZF_RVQ_12bits_x] = ecdf(reshape(CAP_4U_ZF_RVQ(:,1:NFrames_Tx_proc,3),1,[]));
- [Cap_4U_MMSE_RVQ_12bits_f,Cap_4U_MMSE_RVQ_12bits_x] = ecdf(reshape(CAP_4U_MMSE_RVQ(:,1:NFrames_Tx_proc,3),1,[]));
- [Cap_4U_ZF_RVQ_corr_12bits_f,Cap_4U_ZF_RVQ_corr_12bits_x] = ecdf(reshape(RVQ_corr.CAP_4U_ZF_RVQ(:,1:NFrames_Tx_proc,3),1,[]));
- [Cap_4U_MMSE_RVQ_corr_12bits_f,Cap_4U_MMSE_RVQ_corr_12bits_x] = ecdf(reshape(RVQ_corr.CAP_4U_MMSE_RVQ(:,1:NFrames_Tx_proc,3),1,[]));
-
- % use the following color coding
- % ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
- % 4U = '-', 2U = '--'
- % measured = 2pt, iid = 1pt
-
-
-%% SU-MIMO TDMA vs 4U MU-MIMO MMSE (measured only)
- h_fig = figure(5);
- %load('cap_iid.mat')
-
- subplot(1,2,2)
- hold off
- plot(Cap_SU4x1_TDMA_CL_ML_x,Cap_SU4x1_TDMA_CL_ML_f,'k','Linewidth',1)
- hold on
- plot(Cap_SU4x1_TDMA_ML_x,Cap_SU4x1_TDMA_ML_f,'k--','Linewidth',1)
- plot(Cap_4U_MMSE_CVQ_12bits_x,Cap_4U_MMSE_CVQ_12bits_f,'r--','Linewidth',2)
- plot(Cap_4U_MMSE_RVQ_corr_12bits_x,Cap_4U_MMSE_RVQ_corr_12bits_f,'r:','Linewidth',2)
-
- [legend_h,object_h,plot_h,text_strings] = legend('SU-MISO perfect feedback',...
- 'SU-MISO no feedback',...
- 'MU-MIMO 12 bit DFT codebook',...
- 'MU-MIMO 12 bit random corr codebook',...
- 'Location','SouthOutside');
- set(legend_h,'FontSize',8);
-
- title('(b)')
- xlabel('bits/sec/Hz')
- xlim([0 12])
- set(gca,'xtick',0:2:12);
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
-
- subplot(1,2,1)
- hold off
-% plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
- hold on
-
-% plot(Cap_4U_ZF_CVQ_4bits_x,Cap_4U_ZF_CVQ_4bits_f,'b:','Linewidth',2)
-% plot(Cap_4U_MMSE_CVQ_4bits_x,Cap_4U_MMSE_CVQ_4bits_f,'r:','Linewidth',2)
-
-% plot(Cap_4U_ZF_CVQ_12bits_x,Cap_4U_ZF_CVQ_12bits_f,'b--','Linewidth',2)
- plot(Cap_4U_MMSE_CVQ_12bits_x,Cap_4U_MMSE_CVQ_12bits_f,'r--','Linewidth',2)
-
-% plot(Cap_4U_ZF_RVQ_12bits_x,Cap_4U_ZF_RVQ_12bits_f,'b-.','Linewidth',2)
- plot(Cap_4U_MMSE_RVQ_12bits_x,Cap_4U_MMSE_RVQ_12bits_f,'r-.','Linewidth',2)
-
-% plot(Cap_4U_ZF_RVQ_corr_12bits_x,Cap_4U_ZF_RVQ_corr_12bits_f,'b:','Linewidth',2)
- plot(Cap_4U_MMSE_RVQ_corr_12bits_x,Cap_4U_MMSE_RVQ_corr_12bits_f,'r:','Linewidth',2)
-
- [legend_h,object_h,plot_h,text_strings] = legend('MU-MIMO perfect feedback',...
- 'MU-MIMO 12 bit DFT codebook',...
- 'MU-MIMO 12 bit random codebook',...
- 'MU-MIMO 12 bit random corr codebook',...
- 'Location','SouthOutside');
- set(legend_h,'Fontsize',8);
-
- title('(a)')
- xlabel('bits/sec/Hz')
- xlim([0 12])
- set(gca,'xtick',0:2:12);
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_SNR_%d_capacity_CVQ_MMSE_4U.eps',idx,SNRdB));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_SNR_%d_capacity_CVQ_MMSE_4U.pdf',idx,SNRdB));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO TDMA vs 4U MU-MIMO ZF (measured only)
- h_fig = figure(6);
- %load('cap_iid.mat')
- hold off
-
- plot(Cap_SU4x1_TDMA_CL_ML_x,Cap_SU4x1_TDMA_CL_ML_f,'k','Linewidth',1)
- hold on
- plot(Cap_SU4x1_TDMA_ML_x,Cap_SU4x1_TDMA_ML_f,'k--','Linewidth',1)
-
- plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b','Linewidth',2)
-% plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
-% plot(Cap_4U_ZF_CVQ_4bits_x,Cap_4U_ZF_CVQ_4bits_f,'b:','Linewidth',2)
-% plot(Cap_4U_MMSE_CVQ_4bits_x,Cap_4U_MMSE_CVQ_4bits_f,'r:','Linewidth',2)
-
- plot(Cap_4U_ZF_CVQ_12bits_x,Cap_4U_ZF_CVQ_12bits_f,'b--','Linewidth',2)
-% plot(Cap_4U_MMSE_CVQ_12bits_x,Cap_4U_MMSE_CVQ_12bits_f,'r--','Linewidth',2)
-
- plot(Cap_4U_ZF_RVQ_12bits_x,Cap_4U_ZF_RVQ_12bits_f,'b-.','Linewidth',2)
-% plot(Cap_4U_MMSE_RVQ_12bits_x,Cap_4U_MMSE_RVQ_12bits_f,'r-.','Linewidth',2)
-
- plot(Cap_4U_ZF_RVQ_corr_12bits_x,Cap_4U_ZF_RVQ_corr_12bits_f,'b:','Linewidth',2)
-% plot(Cap_4U_MMSE_RVQ_corr_12bits_x,Cap_4U_MMSE_RVQ_corr_12bits_f,'r:','Linewidth',2)
-
- legend('SU-MISO TDMA perfect feedback','SU-MISO TDMA no feedback',...
- 'MU-MIMO ZF perfect feedback',...
- 'MU-MIMO ZF 12 bit DFT codebook',...
- 'MU-MIMO ZF 12 bit random codebook',...
- 'MU-MIMO ZF 12 bit random corr codebook',...
- 'Location','SouthEast')
- %title(sprintf('SU-MIMO vs. MU-MIMO, 4 Users, SNR = %d',SNRdB),'Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 16])
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_SNR_%d_capacity_CVQ_ZF_4U.eps',idx,SNRdB));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_SNR_%d_capacity_CVQ_ZF_4U.pdf',idx,SNRdB));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%%
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/plot_data_MU_CVQ3.m b/openair1/EMOS/MATLAB/plot_data_MU_CVQ3.m
deleted file mode 100644
index ae58f2f73b..0000000000
--- a/openair1/EMOS/MATLAB/plot_data_MU_CVQ3.m
+++ /dev/null
@@ -1,63 +0,0 @@
-CAP_4U_ZF_RVQ_corr = RVQ_corr.CAP_4U_ZF_RVQ;
-CAP_4U_MMSE_RVQ_corr = RVQ_corr.CAP_4U_MMSE_RVQ;
-
-
-%% mean capacity vs. feedback bits
-ECAP_4U_ZF = mean(CAP_4U_ZF(:));
-ECAP_4U_MMSE = mean(CAP_4U_MMSE(:));
-for b = 1:3
- tmp = reshape(CAP_4U_ZF_CVQ(:,:,b),1,[]);
- tmp2 = reshape(CAP_4U_MMSE_CVQ(:,:,b),1,[]);
-
- ECAP_4U_ZF_CVQ(b) = mean(tmp(~isnan(tmp)));
- ECAP_4U_MMSE_CVQ(b) = mean(tmp2(~isnan(tmp2)));
-end
-for b = 1:3
- tmp = reshape(CAP_4U_ZF_RVQ(:,:,b),1,[]);
- tmp2 = reshape(CAP_4U_MMSE_RVQ(:,:,b),1,[]);
-
- ECAP_4U_ZF_RVQ(b) = mean(tmp(~isnan(tmp)));
- ECAP_4U_MMSE_RVQ(b) = mean(tmp2(~isnan(tmp2)));
-end
-for b = 1:3
- tmp = reshape(CAP_4U_ZF_RVQ_corr(:,:,b),1,[]);
- tmp2 = reshape(CAP_4U_MMSE_RVQ_corr(:,:,b),1,[]);
-
- ECAP_4U_ZF_RVQ_corr(b) = mean(tmp(~isnan(tmp)));
- ECAP_4U_MMSE_RVQ_corr(b) = mean(tmp2(~isnan(tmp2)));
-end
-
-%% plot
-h_fig = figure(7);
-hold off
-%plot([4 8 12 16],ECAP_4U_ZF_CVQ)
-plot([4 8 12],ECAP_4U_MMSE_CVQ(1:3),'k-.','Linewidth',2)
-hold on
-%plot([4 8 12],ECAP_4U_ZF_RVQ,'g')
-plot([4 8 12],ECAP_4U_MMSE_RVQ,'k-','Linewidth',2)
-%plot([4 8 12],ECAP_4U_ZF_RVQ_corr,'g--')
-plot([4 8 12],ECAP_4U_MMSE_RVQ_corr,'k--','Linewidth',2)
-
-%plot([4 8 12],repmat(ECAP_4U_MMSE,1,3),'k:','Linewidth',2);
-
-h = legend('MU-MIMO MMSE DFT codebook','MU-MIMO MMSE random codebook','MU-MIMO MMSE random correlated codebook','Location','NorthWest');
-set(h,'Fontsize',12)
-xlabel('Feedback bits','Fontsize',12)
-ylabel('Ergodic capacity [bits/sec/Hz]','Fontsize',12)
-set(gca,'Fontsize',12)
-grid on
-filename_cap = fullfile(filepath_figs,sprintf('idx_%d_SNR_%d_ecap_CVQ_4U.eps',idx,SNRdB));
-saveas(h_fig, filename_cap, 'epsc2');
-filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_SNR_%d_ecap_CVQ_4U.pdf',idx,SNRdB));
-system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-save(sprintf('ecap_idx%d.mat',idx),'ECAP*','-V7');
-
-%%
-figure(8)
-barh([4 8 12],[ECAP_4U_MMSE_CVQ(1:3); ECAP_4U_MMSE_RVQ; ECAP_4U_MMSE_RVQ_corr].');
-legend('MU-MIMO MMSE DFT codebook','MU-MIMO MMSE random codebook','MU-MIMO MMSE random correlated codebook','Location','SouthOutside')
-ylabel('Feedback bits')
-xlabel('Ergodic capacity [bits/sec/Hz]')
-
-
diff --git a/openair1/EMOS/MATLAB/plot_data_MU_DPC.m b/openair1/EMOS/MATLAB/plot_data_MU_DPC.m
deleted file mode 100644
index 188a2feccb..0000000000
--- a/openair1/EMOS/MATLAB/plot_data_MU_DPC.m
+++ /dev/null
@@ -1,240 +0,0 @@
-idx = 100;
-filename_mat = sprintf('results_v2_idx_%d.mat',idx);
-filename_dpc_mat = sprintf('results_DPC_4x1_idx_%d.mat',idx);
-
-filepath = 'figs_pimrc';
-if ~exist(filepath,'dir')
- mkdir(filepath)
-end
-logscale = 1;
-
-load(filename_mat)
-load(filename_dpc_mat)
-%%
-% post processing
-[Cap_SU_TDMA_CL_ML_f,Cap_SU_TDMA_CL_ML_x] = ecdf(CAP_SU_TDMA_CL_ML(:));
-%[Cap_SU_4x1_TDMA_CL_ML_f,Cap_SU_4x1_TDMA_CL_ML_x] = ecdf(CAP_SU_4x1_TDMA_CL_ML);
-[Cap_SU_TDMA_ML_f,Cap_SU_TDMA_ML_x] = ecdf(CAP_SU_TDMA_ML(:));
-%[Cap_SU_TDMA_MMSE_f,Cap_SU_TDMA_MMSE_x] = ecdf(CAP_SU_TDMA_MMSE(:));
-[Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(CAP_4U_ZF(:));
-[Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(CAP_4U_MMSE(:));
-[Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(CAP_2U_ZF(:));
-[Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(CAP_2U_MMSE(:));
-[Cap_4U_AS_ZF_f,Cap_4U_AS_ZF_x] = ecdf(CAP_4U_AS_ZF(:));
-[Cap_4U_AS_MMSE_f,Cap_4U_AS_MMSE_x] = ecdf(CAP_4U_AS_MMSE(:));
-[Cap_2U_AS_ZF_f,Cap_2U_AS_ZF_x] = ecdf(CAP_2U_AS_ZF(:));
-[Cap_2U_AS_MMSE_f,Cap_2U_AS_MMSE_x] = ecdf(CAP_2U_AS_MMSE(:));
-%[Cap_2U_BD_WF_f,Cap_2U_BD_WF_x] = ecdf(CAP_2U_BD_WF(:));
-%[Cap_2U_BD_EP_f,Cap_2U_BD_EP_x] = ecdf(CAP_2U_BD_EP(:));
-[Cap_2U2Tx_ZF_f,Cap_2U2Tx_ZF_x] = ecdf(CAP_2U2Tx_ZF(:));
-[Cap_2U2Tx_MMSE_f,Cap_2U2Tx_MMSE_x] = ecdf(CAP_2U2Tx_MMSE(:));
-
-%[Cap_4U_4x2_DPC_f,Cap_4U_4x2_DPC_x] = ecdf(CAP_4U_4x2_DPC(:));
-[Cap_4U_4x1_DPC_f,Cap_4U_4x1_DPC_x] = ecdf(CAP_4U_4x1_DPC(:));
-
-% use the following color coding
-% ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
-% 4U = '-', 2U = '--'
-% measured = 2pt, iid = 1pt
-
-%% SU-MIMO TDMA vs 4U MU-MIMO DPC (measured+iid)
-h_fig = figure(6);
-load('cap_iid.mat')
-hold off
-plot(Cap_SU1x4_TDMA_CL_ML_iid_x,Cap_SU1x4_TDMA_CL_ML_iid_f,'k-','Linewidth',1)
-hold on
-
-load('Cap_iid_N_Rx=1.mat')
-%plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
-%plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r--','Linewidth',1)
-
-%plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
-%plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
-plot(Cap_4U_DPC_iid_x,Cap_4U_DPC_iid_f,'b-.','Linewidth',1);
-
-% AS = load('Cap_iid_N_Rx=2.mat');
-% plot(AS.Cap_4U_DPC_iid_x,AS.Cap_4U_DPC_iid_f,'c-.','Linewidth',1);
-
-plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,'k-','Linewidth',2)
-
-%plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b--','Linewidth',2)
-%plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r--','Linewidth',2)
-
-%plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
-%plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,'b-.','Linewidth',2);
-
-% plot(Cap_4U_4x2_DPC_x,Cap_4U_4x2_DPC_f,'c-.','Linewidth',2);
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
-legend('SU-MIMO TDMA 4x1 iid',...
- 'MU-MIMO DPC 4x[1,1,1,1] iid',...
- 'SU-MIMO TDMA 4x1 measured',...
- 'MU-MIMO DPC 4x[1,1,1,1] measured',...
- 'Location','SouthEast')
-% title('Theoretical ideal models vs. measured channels, SNR = 10dB','Fontsize',14,'Fontweight','bold')
-xlabel('bits/sec/Hz','Fontsize',14,'Fontweight','bold')
-xlim([0 18])
-ylabel('CDF','Fontsize',14,'Fontweight','bold')
-if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
-end
-grid on
-filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_DPC_NRx=1.eps',idx));
-saveas(h_fig, filename_cap, 'epsc2');
-filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_DPC_NRx=1.pdf',idx));
-system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO TDMA vs 4U MU-MIMO ZF, 4U MU-MIMO MMSE and 4U MU-MIMO DPC (measured only)
-h_fig = figure(7);
-load('cap_iid.mat')
-hold off
-%plot(Cap_SU1x4_TDMA_CL_ML_iid_x,Cap_SU1x4_TDMA_CL_ML_iid_f,'k-','Linewidth',1)
-%hold on
-
-load('Cap_iid_N_Rx=1.mat')
-%plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
-%plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r--','Linewidth',1)
-
-%plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
-%plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
-%plot(Cap_4U_DPC_iid_x,Cap_4U_DPC_iid_f,'b-.','Linewidth',1);
-
-% AS = load('Cap_iid_N_Rx=2.mat');
-% plot(AS.Cap_4U_DPC_iid_x,AS.Cap_4U_DPC_iid_f,'c-.','Linewidth',1);
-
-plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,'k-','Linewidth',2)
-hold on
-
-plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'c--','Linewidth',2)
-plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r--','Linewidth',2)
-
-%plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
-%plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-plot(Cap_4U_4x1_DPC_x,Cap_4U_4x1_DPC_f,'b-.','Linewidth',2);
-
-% plot(Cap_4U_4x2_DPC_x,Cap_4U_4x2_DPC_f,'c-.','Linewidth',2);
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
-legend('SU-MIMO TDMA 4x1 measured',...
- 'MU-MIMO ZF 4x[1,1,1,1] measured',...
- 'MU-MIMO MMSE 4x[1,1,1,1] measured',...
- 'MU-MIMO DPC 4x[1,1,1,1] measured',...
- 'Location','SouthEast')
-% title('Theoretical ideal models vs. measured channels, SNR = 10dB','Fontsize',14,'Fontweight','bold')
-xlabel('bits/sec/Hz','Fontsize',14,'Fontweight','bold')
-xlim([0 18])
-ylabel('CDF','Fontsize',14,'Fontweight','bold')
-if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
-end
-grid on
-filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_ZF_MMSE_DPC_NRx=1.eps',idx));
-saveas(h_fig, filename_cap, 'epsc2');
-filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_ZF_MMSE_DPC_NRx=1.pdf',idx));
-system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO vs. DPC with 2 Rx antennas (meas+iid)
-h_fig = figure(8);
-
-hold off
-plot(Cap_SU2x4_TDMA_CL_ML_iid_x,Cap_SU2x4_TDMA_CL_ML_iid_f,'k-','Linewidth',1)
-hold on
-
-AS = load('Cap_iid_N_Rx=2.mat');
-%plot(AS.Cap_2U_BD_WF_iid_x,AS.Cap_2U_BD_WF_iid_f,'r--','Linewidth',1)
-
-%plot(AS.Cap_4U_MMSE_iid_x,AS.Cap_4U_MMSE_iid_f,'r--','Linewidth',1)
-%plot(AS.Cap_2U_MMSE_iid_x,AS.Cap_2U_MMSE_iid_f,'m--','Linewidth',1)
-
-plot(AS.Cap_4U_DPC_iid_x,AS.Cap_4U_DPC_iid_f,'b-.','Linewidth',1);
-
-plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,'k-','Linewidth',2)
-
-%plot(Cap_2U_BD_WF_x,Cap_2U_BD_WF_f,'r--','Linewidth',2)
-
-%plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'r--','Linewidth',2)
-%plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,'m--','Linewidth',2)
-
-%plot(Cap_2U2_MMSE_x,Cap_2U2_MMSE_f,'r--','Linewidth',2);
-%plot(Cap_2U2_ZF_x,Cap_2U2_ZF_f,'b--','Linewidth',2);
-
-plot(Cap_4U_4x2_DPC_x,Cap_4U_4x2_DPC_f,'b-.','Linewidth',2);
-
-legend('SU-MIMO TDMA 4x2 iid',...
- 'MU-MIMO DPC 4x[2,2,2,2] iid', ...
- 'SU-MIMO TDMA 4x2 iid ',...
- 'MU-MIMO DPC 4x[2,2,2,2] measured',...
- 'Location','SouthEast')
-%title('MMSE vs. BD vs. DPC with maximum multiplexing gain','Fontsize',14,'Fontweight','bold')
-xlabel('bits/sec/Hz','Fontsize',14,'Fontweight','bold')
-xlim([0 18])
-ylabel('CDF','Fontsize',14,'Fontweight','bold')
-if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
-end
-grid on
-filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_DPC_NRx=2.eps',idx));
-saveas(h_fig, filename_cap, 'epsc2');
-filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_DPC_NRx=2.pdf',idx));
-system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO vs. MMSE and DPC with 2 Rx antennas (meas only)
-h_fig = figure(9);
-
-hold off
-%plot(Cap_SU2x4_TDMA_CL_ML_iid_x,Cap_SU2x4_TDMA_CL_ML_iid_f,'k-','Linewidth',1)
-%hold on
-
-%AS = load('Cap_iid_N_Rx=2.mat');
-%plot(AS.Cap_2U_BD_WF_iid_x,AS.Cap_2U_BD_WF_iid_f,'r--','Linewidth',1)
-
-%plot(AS.Cap_4U_MMSE_iid_x,AS.Cap_4U_MMSE_iid_f,'r--','Linewidth',1)
-%plot(AS.Cap_2U_MMSE_iid_x,AS.Cap_2U_MMSE_iid_f,'m--','Linewidth',1)
-
-%plot(AS.Cap_4U_DPC_iid_x,AS.Cap_4U_DPC_iid_f,'b-.','Linewidth',1);
-
-plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,'k-','Linewidth',2)
-hold on
-
-%plot(Cap_2U_BD_WF_x,Cap_2U_BD_WF_f,'r--','Linewidth',2)
-
-plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'r--','Linewidth',2)
-%plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,'m--','Linewidth',2)
-
-%plot(Cap_2U2_MMSE_x,Cap_2U2_MMSE_f,'r--','Linewidth',2);
-%plot(Cap_2U2_ZF_x,Cap_2U2_ZF_f,'b--','Linewidth',2);
-
-plot(Cap_4U_4x2_DPC_x,Cap_4U_4x2_DPC_f,'b-.','Linewidth',2);
-
-legend('SU-MIMO TDMA 4x2 measured',...
- 'MU-MIMO MMSE 4x[2,2,2,2] measured ',...
- 'MU-MIMO DPC 4x[2,2,2,2] measured',...
- 'Location','SouthEast')
-%title('MMSE vs. BD vs. DPC with maximum multiplexing gain','Fontsize',14,'Fontweight','bold')
-xlabel('bits/sec/Hz','Fontsize',14,'Fontweight','bold')
-xlim([0 18])
-ylabel('CDF','Fontsize',14,'Fontweight','bold')
-if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
-end
-grid on
-filename_cap = fullfile(filepath,sprintf('idx_%d_capacity_MMSE_DPC_NRx=2.eps',idx));
-saveas(h_fig, filename_cap, 'epsc2');
-filename_cap_pdf = fullfile(filepath,sprintf('idx_%d_capacity_MMSE_DPC_NRx=2.pdf',idx));
-system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
diff --git a/openair1/EMOS/MATLAB/plot_data_MU_SFR.m b/openair1/EMOS/MATLAB/plot_data_MU_SFR.m
deleted file mode 100755
index 544b143e20..0000000000
--- a/openair1/EMOS/MATLAB/plot_data_MU_SFR.m
+++ /dev/null
@@ -1,404 +0,0 @@
-filename_mat = sprintf('results_v2_idx_%d.mat',idx);
-filename_SU_mat = sprintf('results_SU_idx_%d.mat',idx);
-
-logscale = 0;
-
-if 0
- %%
- h_fig = figure(1);
- plot_style = {'r.','m.','b.','k.'};
- for k = 1:NUser
- plot(est(k,idx).framestamp_tx(~est(k,idx).err_ind),mean(est(k,idx).rx_rssi_dBm(~est(k,idx).err_ind),1),plot_style{k});
- %plot(round(est(k,idx).timestamp*3000/8)+offset_frames(k),mean(est(k,idx).rx_rssi_dBm,1),plot_style{k});
- hold on
- %plot(est(k,idx).framestamp_tx(est(k,idx).err_ind),mean(est(k,idx).rx_rssi_dBm(est(k,idx).err_ind),1),'rx');
- %plot(round(est(k,idx).timestamp(logical(est(k,idx).err_ind))*3000/8)+offset_frames(k),mean(est(k,idx).rx_rssi_dBm(logical(est(k,idx).err_ind)),1),'rx');
- end
- hold off
- xlabel('Frame')
- ylabel('RSSI [dBm]')
- legend('User 1','User 2','User 3','User 4')
- filename_rssi = fullfile(filepath_figs,sprintf('idx_%d_rx_rssi.eps',idx));
- saveas(h_fig, filename_rssi, 'epsc2');
-
- %%
- h_fig = figure(2);
- colors = {'red','magenta','blue','white'};
- if exist('mm','var')
- image(mm);
- hold on;
- end
- for k = 1:NUser
- plot_gps_coordinates_sophia([], gps_data(k,idx).longitude, gps_data(k,idx).latitude, est(k,idx).rx_rssi_dBm(1:100:end), sprintf('User %d',k),colors{k});
- hold on;
- end
- hold off
- axis([3264 5819 2610 4556])
- filename_gps = fullfile(filepath_figs,sprintf('idx_%d_map_rx_rssi.eps',idx));
- saveas(h_fig, filename_gps, 'epsc2');
- filename_gps_pdf = fullfile(filepath_figs,sprintf('idx_%d_map_rx_rssi.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_gps_pdf,filename_gps));
-
-end
-
- %%
- h_fig = figure(3);
- align_matrix = repmat(-1,4,max(framestamp_max(:,idx)) - min(framestamp_min(:,idx)) + 1);
- for u = 1:4
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = est(u,idx).err_ind;
- end
-
- map = [1 1 1; ...
- 0 1 0; ...
- 1 0 0];
-
- image(align_matrix+2); % image values have to be in range 1:m
- colormap(map);
- set(gca,'YTickLabel',{'','User 1','','User 2','','User 3','','User 4'},...
- 'YTick',[0.5 1 1.5 2 2.5 3 3.5 4],...
- 'XTick',zeros(1,0));
- %pos = get(h_fig,'Position');
- set(h_fig,'Position',[360 504 560 104])
- %pos = get(h_fig,'PaperPosition');
- set(h_fig,'PaperPosition',[0.25 2.5 8 1.5])
- filename_align = fullfile(filepath_figs,sprintf('idx_%d_align.eps',idx));
- saveas(h_fig, filename_align, 'epsc2');
-
-if exist(filename_mat,'file')
- load(filename_mat)
- %load(filename_SU_mat,'CAP_SU_TDMA_MMSE','CAP_SU1x1_TDMA_ML','CAP_SU1x2_TDMA_ML')
-
-%%
- % post processing
- NFrames_Tx_proc = sum(all(align_matrix==0));
- [Cap_SU_TDMA_CL_ML_f,Cap_SU_TDMA_CL_ML_x] = ecdf(CAP_SU_TDMA_CL_ML(:));
- [Cap_SU1x1_TDMA_ML_f,Cap_SU1x1_TDMA_ML_x] = ecdf(CAP_SU1x1_TDMA_ML(:));
- [Cap_SU1x2_TDMA_ML_f,Cap_SU1x2_TDMA_ML_x] = ecdf(CAP_SU1x2_TDMA_ML(:));
- [Cap_SU2x2_TDMA_ML_f,Cap_SU2x2_TDMA_ML_x] = ecdf(CAP_SU2x2_TDMA_ML(:));
- [Cap_SU_TDMA_ML_f,Cap_SU_TDMA_ML_x] = ecdf(CAP_SU_TDMA_ML(:));
- [Cap_SU_TDMA_DSTTD_f,Cap_SU_TDMA_DSTTD_x] = ecdf(CAP_SU_TDMA_DSTTD(:));
- [Cap_4U_ZF_f,Cap_4U_ZF_x] = ecdf(reshape(CAP_4U_ZF(:,1:NFrames_Tx_proc),1,[]));
- [Cap_4U_MMSE_f,Cap_4U_MMSE_x] = ecdf(reshape(CAP_4U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- [Cap_2U_ZF_f,Cap_2U_ZF_x] = ecdf(reshape(CAP_2U_ZF(:,1:NFrames_Tx_proc),1,[]));
- [Cap_2U_MMSE_f,Cap_2U_MMSE_x] = ecdf(reshape(CAP_2U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- [Cap_4U_AS_ZF_f,Cap_4U_AS_ZF_x] = ecdf(reshape(CAP_4U_AS_ZF(:,1:NFrames_Tx_proc),1,[]));
- [Cap_4U_AS_MMSE_f,Cap_4U_AS_MMSE_x] = ecdf(reshape(CAP_4U_AS_MMSE(:,1:NFrames_Tx_proc),1,[]));
- [Cap_2U_AS_ZF_f,Cap_2U_AS_ZF_x] = ecdf(reshape(CAP_2U_AS_ZF(:,1:NFrames_Tx_proc),1,[]));
- [Cap_2U_AS_MMSE_f,Cap_2U_AS_MMSE_x] = ecdf(reshape(CAP_2U_AS_MMSE(:,1:NFrames_Tx_proc),1,[]));
- %[Cap_2U_BD_WF_f,Cap_2U_BD_WF_x] = ecdf(reshape(CAP_2U_BD_WF(:,1:NFrames_Tx_proc),1,[]));
- %[Cap_2U_BD_EP_f,Cap_2U_BD_EP_x] = ecdf(reshape(CAP_2U_BD_EP(:,1:NFrames_Tx_proc),1,[]));
- [Cap_2U2Tx_ZF_f,Cap_2U2Tx_ZF_x] = ecdf(reshape(CAP_2U2Tx_ZF(:,1:NFrames_Tx_proc),1,[]));
- [Cap_2U2Tx_MMSE_f,Cap_2U2Tx_MMSE_x] = ecdf(reshape(CAP_2U2Tx_MMSE(:,1:NFrames_Tx_proc),1,[]));
-
- % use the following color coding
- % ZF = blue, MMSE = red, SUTS = black, BD = cyan, MMSE AS = magenta,
- % 4U = '-', 2U = '--'
- % measured = 2pt, iid = 1pt
-
-%% SU-MIMO TDMA vs 2U MU-MIMO ZF and 2U MU-MIMO MMSE (measured only)
- h_fig = figure(4);
- %load('cap_iid.mat')
- hold off
- %plot(Cap_MU_SUTS_iid_x,Cap_MU_SUTS_iid_f,'k','Linewidth',1)
- %hold on
-
- %load('Cap_iid_N_Rx=1.mat')
- %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b','Linewidth',1)
- %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
- plot(Cap_SU1x1_TDMA_ML_x,Cap_SU1x1_TDMA_ML_f,'c:','Linewidth',2)
- hold on
- plot(Cap_SU1x2_TDMA_ML_x,Cap_SU1x2_TDMA_ML_f,'c-.','Linewidth',2)
-
- %plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,'k','Linewidth',2)
- plot(Cap_SU_TDMA_DSTTD_x,Cap_SU_TDMA_DSTTD_f,'k','Linewidth',2)
- hold on
-
- %plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b','Linewidth',2)
- %plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
- plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
- plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
- legend('SU-SISO 1x1 TDMA measured','SU-SIMO 1x2 TDMA measured','SU-MIMO 4x2 TDMA measured',...\
- 'MU-MIMO ZF 2U 4Tx measured','MU-MIMO MMSE 2U 4Tx measured',...
- 'Location','SouthEast')
- %title('SU-MIMO vs. MU-MIMO with equal multiplexing gain','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_capacity_2U.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_capacity_2U.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% SU-MIMO TDMA vs 4U MU-MIMO ZF and 4U MU-MIMO MMSE (measured only)
- h_fig = figure(5);
- %load('cap_iid.mat')
- hold off
- %plot(Cap_MU_SUTS_iid_x,Cap_MU_SUTS_iid_f,'k','Linewidth',1)
- %hold on
-
- plot(Cap_SU1x1_TDMA_ML_x,Cap_SU1x1_TDMA_ML_f,'c:','Linewidth',2)
- hold on
- plot(Cap_SU1x2_TDMA_ML_x,Cap_SU1x2_TDMA_ML_f,'c-.','Linewidth',2)
-
- %load('Cap_iid_N_Rx=1.mat')
- %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b','Linewidth',1)
- %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
- %plot(Cap_SU_TDMA_ML_x,Cap_SU_TDMA_ML_f,'k','Linewidth',2)
- plot(Cap_SU_TDMA_DSTTD_x,Cap_SU_TDMA_DSTTD_f,'k','Linewidth',2)
- %plot(Cap_SU_TDMA_CL_ML_x,Cap_SU_TDMA_CL_ML_f,'k','Linewidth',2)
- hold on
-
- plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
- %plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
- %plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
- legend('SU-SISO 1x1 TDMA measured','SU-SIMO 1x2 TDMA measured','SU-MIMO 4x2 TDMA measured',...
- 'MU-MIMO ZF 4U 4Tx measured','MU-MIMO MMSE 4U 4Tx measured',...
- 'Location','SouthEast')
- %title('SU-MIMO vs. MU-MIMO with max. multipexing gain','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_capacity_4U.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_capacity_4U.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% 4U MU-MIMO ZF and 4U MU-MIMO MMSE (measured+iid)
- h_fig = figure(6);
- %load('cap_iid.mat')
- hold off
- %plot(Cap_SU_TDMA_MMSE_iid_x,Cap_SU_TDMA_MMSE_iid_f,'k-.','Linewidth',1)
- %hold on
-
- load('Cap_iid_N_Rx=1.mat')
- plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
- hold on
- plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-
- %plot(Cap_SU_TDMA_MMSE_x,Cap_SU_TDMA_MMSE_f,'k-.','Linewidth',2)
-
- plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b--','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-
- %plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
- %plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-
-% legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% 'measured SUTS 4U',...
-% 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% 'Location','SouthEast')
- legend('MU-MIMO ZF 4U 4Tx iid','MU-MIMO MMSE 4U 4Tx iid',...
- 'MU-MIMO ZF 4U 4Tx measured','MU-MIMO MMSE 4U 4Tx measured',...
- 'Location','SouthEast')
- %title('Theoretical ideal models vs. measured channels','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_capacity_4U_iid.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_capacity_4U_iid.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-% %% different config SU-MIMO TDMA (measured+iid)
-% h_fig = figure(11);
-% load('cap_iid.mat')
-% hold off
-% plot(Cap_SU_TDMA_MMSE_iid_x,Cap_SU_TDMA_MMSE_iid_f,'k-.','Linewidth',1)
-% hold on
-% plot(Cap_SU1x1_TDMA_ML_iid_x,Cap_SU1x1_TDMA_ML_iid_f,'m-','Linewidth',1)
-% plot(Cap_SU2x1_TDMA_ML_iid_x,Cap_SU2x1_TDMA_ML_iid_f,'c-.','Linewidth',1)
-%
-% %load('Cap_iid_N_Rx=1.mat')
-% %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b--','Linewidth',1)
-% %hold on
-% %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
-%
-% %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
-% %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
-%
-% plot(Cap_SU_TDMA_MMSE_x,Cap_SU_TDMA_MMSE_f,'k-.','Linewidth',2)
-%
-% plot(Cap_SU1x1_TDMA_ML_x,Cap_SU1x1_TDMA_ML_f,'m-','Linewidth',2)
-% plot(Cap_SU1x2_TDMA_ML_x,Cap_SU1x2_TDMA_ML_f,'c-.','Linewidth',2)
-%
-% %plot(Cap_4U_ZF_x,Cap_4U_ZF_f,'b--','Linewidth',2)
-% %plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
-%
-% %plot(Cap_2U_ZF_x,Cap_2U_ZF_f,'b--','Linewidth',2)
-% %plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
-%
-% % legend('iid SUTS 4U','iid ZF 4U','iid MMSE 4U','iid ZF 2U','iid MMSE 2U',...
-% % 'measured SUTS 4U',...
-% % 'measured ZF 4U','measured MMSE 4U','measured ZF 2U','measured MMSE 2U',...
-% % 'Location','SouthEast')
-% legend('SU-MIMO 4x2 MMSE TDMA iid','SU-SISO 1x1 ML TDMA iid','SU-SIMO 1x2 ML TDMA iid',...
-% 'SU-MIMO 4x2 MMSE TDMA measured','SU-SISO 1x1 ML TDMA measured','SU-SIMO 1x2 ML TDMA measured',...
-% 'Location','SouthEast')
-% title('Theoretical ideal models vs. measured channels','Fontsize',14,'Fontweight','bold')
-% xlabel('bits/sec/Hz')
-% xlim([0 18])
-% ylabel('CDF')
-% if logscale
-% set(gca,'yscale','log')
-% ylim([1e-2 1])
-% end
-% grid on
-% filename_cap = fullfile(filepath_figs,sprintf('idx_%d_capacity_SU_iid.eps',idx));
-% saveas(h_fig, filename_cap, 'epsc2');
-% filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_capacity_SU_iid.pdf',idx));
-% system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-
-%% AS vs. no AS for 2 and 4 Users
- h_fig = figure(7);
- % AS = load('Cap_iid_N_Rx=2.mat');
- hold off
- %plot(Cap_4U_ZF_iid_x,Cap_4U_ZF_iid_f,'b','Linewidth',1)
- %hold on
- %plot(Cap_4U_MMSE_iid_x,Cap_4U_MMSE_iid_f,'r','Linewidth',1)
- %hold on
- %plot(AS.Cap_4U_MMSE_iid_x,AS.Cap_4U_MMSE_iid_f,'m','Linewidth',1)
-
- %plot(Cap_SU1x1_TDMA_ML_x,Cap_SU1x1_TDMA_ML_f,'c:','Linewidth',2)
- %hold on
- %plot(Cap_SU1x2_TDMA_ML_x,Cap_SU1x2_TDMA_ML_f,'c-.','Linewidth',2)
-
-
- %plot(Cap_2U_ZF_iid_x,Cap_2U_ZF_iid_f,'b--','Linewidth',1)
- %plot(Cap_2U_MMSE_iid_x,Cap_2U_MMSE_iid_f,'r--','Linewidth',1)
- %plot(AS.Cap_2U_MMSE_iid_x,AS.Cap_2U_MMSE_iid_f,'m--','Linewidth',1)
-
- %plot(Cap_4U_AS_ZF_x,Cap_4U_AS_ZF_f,'b','Linewidth',2)
- plot(Cap_4U_MMSE_x,Cap_4U_MMSE_f,'r','Linewidth',2)
- hold on
- plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'m','Linewidth',2)
-
- %plot(Cap_2U_AS_ZF_x,Cap_2U_AS_ZF_f,'b--','Linewidth',2)
- plot(Cap_2U_MMSE_x,Cap_2U_MMSE_f,'r--','Linewidth',2)
- plot(Cap_2U_AS_MMSE_x,Cap_2U_AS_MMSE_f,'m--','Linewidth',2)
-
- legend('MU-MIMO MMSE 4U 4Tx measured','MU-MIMO MMSE AS 4U 4Tx measured',...
- 'MU-MIMO MMSE 2U 4Tx measured','MU-MIMO MMSE AS 2U 4Tx measured',...
- 'Location','SouthEast')
- %title('No antenna selection vs. antenna selection','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_capacity_AS.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_capacity_AS.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-%% 2 Users, 2 transmit antennas, antenna selection,
- h_fig = figure(8);
- hold off
-
- plot(Cap_SU1x1_TDMA_ML_x,Cap_SU1x1_TDMA_ML_f,'c:','Linewidth',2)
- hold on
- plot(Cap_SU1x2_TDMA_ML_x,Cap_SU1x2_TDMA_ML_f,'c-.','Linewidth',2)
- plot(Cap_SU2x2_TDMA_ML_x,Cap_SU2x2_TDMA_ML_f,'c-','Linewidth',2)
-
- plot(Cap_2U2Tx_MMSE_x,Cap_2U2Tx_MMSE_f,'r','Linewidth',2)
- plot(Cap_4U_AS_MMSE_x,Cap_4U_AS_MMSE_f,'m','Linewidth',2)
-
- legend('SU-SISO 1x1 TDMA measured',...
- 'SU-SIMO 1x2 TDMA measured',...
- 'SU-MIMO 2x2 TDMA measured',...
- 'MU-MIMO MMSE 2U 2Tx AS measured',...
- 'MU-MIMO MMSE 4U 4Tx AS measured',...
- 'Location','SouthEast')
- %title('Two Tx antennas vs. 4 Tx antennas','Fontsize',14,'Fontweight','bold')
- xlabel('bits/sec/Hz')
- xlim([0 18])
- ylabel('Prob(capacity < x-axis)')
- if logscale
- set(gca,'yscale','log')
- ylim([1e-2 1])
- end
- grid on
- filename_cap = fullfile(filepath_figs,sprintf('idx_%d_capacity_NTx2.eps',idx));
- saveas(h_fig, filename_cap, 'epsc2');
- filename_cap_pdf = fullfile(filepath_figs,sprintf('idx_%d_capacity_NTx2.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
-
-if 0
-%%
- h_fig = figure(9);
- colors = {'red','magenta','blue','black'};
- for k = 1:NUser
- plot((0:63)/7.68,10*log10(DProf(k,:)),'Linewidth',2,'Color',colors{k});
- hold on
- end
- hold off
- xlabel('Delay [\mus]');
- ylabel('Receive Power Level [dB]');
- legend('User 1','User 2','User 3','User 4')
- grid on
- filename_pdp = fullfile(filepath_figs,sprintf('idx_%d_Dprofile.eps',idx));
- saveas(h_fig, filename_pdp, 'epsc2');
- filename_pdp_pdf = fullfile(filepath_figs,sprintf('idx_%d_Dprofile.pdf',idx));
- system(sprintf('epstopdf --outfile=%s %s',filename_pdp_pdf,filename_pdp));
-
-% %%
-% h_fig = figure(10);
-% colors = {'red','magenta','blue','black'};
-% for k = 1:2
-% plot(min(framestamp_min(:,idx)):max(framestamp_max(:,idx)),filter(ones(1,50)/50,1,gain_2U_BD(:,k)),'Linewidth',1,'Color',colors{k});
-% hold on
-% end
-% hold off
-% xlabel('Frame');
-% ylabel('Gain');
-% legend('User 1','User 2','User 3','User 4')
-% grid on
-% filename_MUgains = fullfile(filepath_figs,sprintf('idx_%d_MUgains.eps',idx));
-% saveas(h_fig, filename_MUgains, 'epsc2');
-%
-%%
-end
-
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/plot_data_corrmat.m b/openair1/EMOS/MATLAB/plot_data_corrmat.m
deleted file mode 100644
index 21a29ed415..0000000000
--- a/openair1/EMOS/MATLAB/plot_data_corrmat.m
+++ /dev/null
@@ -1,76 +0,0 @@
-filename_mat = sprintf('results_v2_idx_%d.mat',idx);
-
-load(filename_mat,'R');
-
-% R is the full correlation matrix
-% R(k+n*NUser+m*NUser*NTx,k'+n'*NUser+m'*NUser*NTx)
-% where k .. User, n .. tx antenna, m .. Rx antenna
-
-h_fig = figure(1);
-set(h_fig,'Position',[360 504 560 104])
-set(h_fig,'PaperPosition',[0.25 2.5 8 1.5])
-cmap = colormap('gray');
-cmap = cmap(end:-1:1,:);
-
-%% calculate the Rx correlation matrix between users taking the first Rx antenna
-n = 0:3;
-m = 0;
-
-for k1=0:3
- for k2=0:3
- tmp = R(k1+n*NUser+m*NUser*NTx+1,k2+n*NUser+m*NUser*NTx+1);
- RRx(k1+1,k2+1) = mean(tmp(:));
- end
-end
-
-subplot(1,3,1)
-imagesc(abs(RRx))
-set(gca,'xtick',1:4)
-set(gca,'ytick',1:4)
-colormap(cmap)
-colorbar
-xlabel('User')
-ylabel('User')
-
-%% calculate the Tx correlation matrix taking the first Rx antenna
-k = 0:3;
-m = 0;
-
-for n1=0:3
- for n2=0:3
- tmp = R(k+n1*NUser+m*NUser*NTx+1,k+n2*NUser+m*NUser*NTx+1);
- RTx(n1+1,n2+1) = mean(tmp(:));
- end
-end
-
-subplot(1,3,2)
-imagesc(abs(RTx))
-set(gca,'xtick',1:4)
-set(gca,'ytick',1:4)
-colormap(cmap)
-colorbar
-xlabel('Tx antenna')
-ylabel('Tx antenna')
-
-%% calculate the Rx correlation matrix of the first user
-n = 0:3;
-k = 1;
-
-for m1=0:1
- for m2=0:1
- tmp = R(k+n*NUser+m1*NUser*NTx+1,k+n*NUser+m2*NUser*NTx+1);
- RRxUser(m1+1,m2+1) = mean(tmp(:));
- end
-end
-
-subplot(1,3,3)
-imagesc(abs(RRxUser))
-set(gca,'xtick',1:2)
-set(gca,'ytick',1:2)
-colormap(cmap)
-colorbar
-xlabel('Rx antenna')
-ylabel('Rx antenna')
-
-filename_corr = fullfile(filepath_figs,sprintf('idx_%d_corr.eps',idx));
-saveas(h_fig, filename_corr, 'epsc2');
diff --git a/openair1/EMOS/MATLAB/plot_ecap_CVQ.m b/openair1/EMOS/MATLAB/plot_ecap_CVQ.m
deleted file mode 100644
index 0913abc257..0000000000
--- a/openair1/EMOS/MATLAB/plot_ecap_CVQ.m
+++ /dev/null
@@ -1,24 +0,0 @@
-h_fig = figure(7)
-
-load /extras/kaltenbe/EMOS/data/20080213_MU_Outdoor/ecap_idx50.mat
-axes1 = axes('Position',[0.13 0.25 0.35 0.6]);
-bar([4 8 12],[ECAP_4U_MMSE_CVQ; ECAP_4U_MMSE_RVQ; ECAP_4U_MMSE_RVQ_corr].')
-title('outdoor')
-xlabel('Feedback bits')
-ylabel('Ergodic capacity')
-
-load /extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC/ecap_idx100.mat
-axes2 = axes('Position',[0.57 0.25 0.35 0.6]);
-bar([4 8 12],[ECAP_4U_MMSE_CVQ; ECAP_4U_MMSE_RVQ; ECAP_4U_MMSE_RVQ_corr].')
-title('indoor')
-xlabel('Feedback bits')
-ylabel('Ergodic capacity')
-
-legend({'MU-MIMO MMSE DFT codebook','MU-MIMO MMSE random codebook','MU-MIMO MMSE random correlated codebook'},...
- 'Position',[0.3 0.07 0.40 0.1]);
-% 'Orientation','horizontal');
-
-filename_cap = 'ecap_CVQ_4U.eps';
-saveas(h_fig, filename_cap, 'epsc2');
-filename_cap_pdf = 'ecap_CVQ_4U.pdf';
-system(sprintf('epstopdf --outfile=%s %s',filename_cap_pdf,filename_cap));
diff --git a/openair1/EMOS/MATLAB/plot_ecap_comp.m b/openair1/EMOS/MATLAB/plot_ecap_comp.m
deleted file mode 100644
index fbacc87fa1..0000000000
--- a/openair1/EMOS/MATLAB/plot_ecap_comp.m
+++ /dev/null
@@ -1,68 +0,0 @@
-clear all
-close all
-
-%% plot iid results
-figure(1)
-hold off
-load cap_iid_dpc_NTx4_NRx1_NUser4.mat
-plot(SNRdB(1:s),ECap_4U_MMSE_iid(1:s),'r');
-hold on
-plot(SNRdB(1:s),ECap_4U_ZF_iid(1:s),'g');
-plot(SNRdB(1:s),ECap_4U_DPC_iid(1:s),'k');
-
-load cap_iid_bd_ep_NTx4_NRx2_NUser2.mat
-plot(SNRdB(1:s),ECap_MU_BD_WF_iid(1:s),'m');
-load cap_iid_bd_wf_NTx4_NRx2_NUser2.mat
-plot(SNRdB(1:s),ECap_MU_BD_WF_iid(1:s),'c');
-plot(SNRdB(1:s),ECap_SU_TDMA_CL_ML_iid(1:s),'b');
-
-legend('MMSE 4x[1,1,1,1]','ZF 4x[1,1,1,1]','DPC 4x[1,1,1,1]','BD EP 4x[2,2]','BD WF 4x[2,2]','SU TDMA 4x2','Location','NorthWest')
-xlabel('SNR [dB]')
-ylabel('Sum rate')
-grid on
-
-%% plot iid & measured
-h_fig = figure(2);
-hold off
-load cap_iid_dpc_NTx4_NRx1_NUser4.mat ECap_SU_TDMA_CL_ML_iid ECap_4U_MMSE_iid ECap_4U_DPC_iid SNRdB
-plot(SNRdB(1:8),ECap_4U_MMSE_iid(1:8),'r-.','Linewidth',1);
-hold on
-plot(SNRdB(1:8),ECap_4U_DPC_iid(1:8),'k--','Linewidth',1);
-% load cap_iid_bd_wf_NTx4_NRx2_NUser2.mat ECap_SU_TDMA_CL_ML_iid SNRdB
-plot(SNRdB(1:8),ECap_SU_TDMA_CL_ML_iid(1:8),'b-','Linewidth',1);
-
-% load results_DPC_SNR=-20-50_idx_32.mat
-SNRdB = -20:10:50;
-ECap_4U_MMSE = mean(reshape(CAP_4U_MMSE,[],length(SNRdB)),1);
-ECap_4U_DPC = mean(reshape(CAP_4U_4x1_DPC,[],length(SNRdB)),1);
-ECap_SU_4x1_TDMA_CL_ML = mean(CAP_SU_4x1_TDMA_CL_ML,1);
-ECap_SU_4x2_TDMA_CL_ML = mean(CAP_SU_4x2_TDMA_CL_ML,1);
-
-plot(SNRdB,ECap_4U_MMSE,'r-.','Linewidth',2);
-plot(SNRdB,ECap_4U_DPC,'k--','Linewidth',2);
-plot(SNRdB,ECap_SU_4x1_TDMA_CL_ML,'b-','Linewidth',2);
-% plot(SNRdB,ECap_SU_4x2_TDMA_CL_ML,'c:','Linewidth',2);
-
-legend('MU-MIMO MMSE 4x[1,1,1,1] iid','MU-MIMO DPC 4x[1,1,1,1] iid','SU-MIMO TDMA 4x1 iid',...
- 'MU-MIMO MMSE 4x[1,1,1,1] meas','MU-MIMO DPC 4x[1,1,1,1] meas','SU-MIMO TDMA 4x1 meas',...
- 'Location','NorthWest')
-%set(gca,'Fontsize',14)
-xlabel('SNR [dB]','Fontsize',14,'Fontweight','bold')
-ylabel('Sum rate','Fontsize',14,'Fontweight','bold')
-grid on
-saveas(h_fig,'figs_cost/idx_32_ecap.eps','epsc2');
-
-
-%%
-ECap_4U_MMSE_iid(8) - ECap_4U_MMSE(8)
-ECap_4U_DPC_iid(8) - ECap_4U_DPC(8)
-ECap_SU_TDMA_CL_ML_iid(8) - ECap_SU_4x1_TDMA_CL_ML(8)
-
-ECap_4U_DPC(8) - ECap_4U_MMSE(8)
-ECap_4U_DPC(8) - ECap_SU_4x1_TDMA_CL_ML(8)
-ECap_4U_MMSE(8) - ECap_SU_4x1_TDMA_CL_ML(8)
-
-ECap_4U_DPC(8)./ECap_4U_MMSE(8)
-ECap_4U_DPC(8)./ECap_SU_4x1_TDMA_CL_ML(8)
-ECap_4U_MMSE(8)./ECap_SU_4x1_TDMA_CL_ML(8)
-
diff --git a/openair1/EMOS/MATLAB/plot_ecap_comp2.m b/openair1/EMOS/MATLAB/plot_ecap_comp2.m
deleted file mode 100644
index 232e6a734a..0000000000
--- a/openair1/EMOS/MATLAB/plot_ecap_comp2.m
+++ /dev/null
@@ -1,49 +0,0 @@
-clear all
-close all
-
-
-%% plot iid & measured
-h_fig = figure(2);
-hold off
-load cap_iid_NTx4_NRx1_NUser2.mat
-
-plot(SNRdB,ECap_MU_ZF_iid*0.8,'r--','Linewidth',1.5);
-hold on
-plot(SNRdB,ECap_SU_TDMA_CL_ML_iid*0.8,'b-','Linewidth',1.5);
-
-load results_multiSNR_4x1_idx_32.mat
-ECap_2U_ZF = mean(reshape(CAP_2U_ZF,[],length(SNRdB)),1);
-ECap_2U_MMSE = mean(reshape(CAP_2U_MMSE,[],length(SNRdB)),1);
-
-load results_DPC_SNR=-20-50_idx_32
-SNRdB = -20:10:30;
-ECap_4U_DPC = mean(reshape(CAP_4U_4x1_DPC,[],size(CAP_4U_4x1_DPC,3)),1);
-ECap_SU_4x1_TDMA_CL_ML = mean(CAP_SU_4x1_TDMA_CL_ML,1);
-ECap_SU_4x2_TDMA_CL_ML = mean(CAP_SU_4x2_TDMA_CL_ML,1);
-
-plot(SNRdB,ECap_2U_ZF(1:length(SNRdB))*0.8,'r--','Linewidth',3);
-plot(SNRdB,ECap_SU_4x1_TDMA_CL_ML(1:length(SNRdB))*0.8,'b-','Linewidth',3);
-
-legend('MU-MIMO ZF 4x[1,1] iid','SU-MISO TDMA 4x1 iid',...
- 'MU-MIMO ZF 4x[1,1] meas','SU-MISO TDMA 4x1 meas',...
- 'Location','NorthWest')
-%set(gca,'Fontsize',14)
-xlabel('SNR [dB]','Fontsize',12,'Fontweight','bold')
-ylabel('Sum rate [bits/sec/Hz]','Fontsize',12,'Fontweight','bold')
-grid on
-saveas(h_fig,'figs_lte/idx_32_ecap.eps','epsc2');
-
-
-%%
-% ECap_4U_MMSE_iid(8) - ECap_4U_MMSE(8)
-% ECap_4U_DPC_iid(8) - ECap_4U_DPC(8)
-% ECap_SU_TDMA_CL_ML_iid(8) - ECap_SU_4x1_TDMA_CL_ML(8)
-%
-% ECap_4U_DPC(8) - ECap_4U_MMSE(8)
-% ECap_4U_DPC(8) - ECap_SU_4x1_TDMA_CL_ML(8)
-% ECap_4U_MMSE(8) - ECap_SU_4x1_TDMA_CL_ML(8)
-%
-% ECap_4U_DPC(8)./ECap_4U_MMSE(8)
-% ECap_4U_DPC(8)./ECap_SU_4x1_TDMA_CL_ML(8)
-% ECap_4U_MMSE(8)./ECap_SU_4x1_TDMA_CL_ML(8)
-%
diff --git a/openair1/EMOS/MATLAB/plot_eigval_dist.m b/openair1/EMOS/MATLAB/plot_eigval_dist.m
deleted file mode 100755
index 44c8d599f8..0000000000
--- a/openair1/EMOS/MATLAB/plot_eigval_dist.m
+++ /dev/null
@@ -1,72 +0,0 @@
-clear all
-close all
-
-%% measured eigenvalue distribution
-load eigenval_idx_32.mat
-
-tmp = reshape(Eigval_4U_ZF,[],4);
-for i=1:4
- [Eigval_4U_ZF_f(i,:),Eigval_4U_ZF_x(i,:)] = ecdf(tmp(:,i));
-end
-[Cond_4U_ZF_f,Cond_4U_ZF_x] = ecdf(tmp(:,4)./tmp(:,1));
-
-
-%% iid case
-M_Tx=4;
-N_Rx=2;
-Nfreq = 20;
-Nsamples = 2000;
-NUsers = 4;
-
-SNRdB=10;
-SNR=10^(SNRdB/10);
-%%% MMSE regularization factor
-mu = M_Tx/SNR;
-%%% noise variance
-n_p=1/SNR;
-
-HH_4U_4x1=1/sqrt(2)*complex(randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers),randn(N_Rx,M_Tx,Nfreq,Nsamples,NUsers));
-
-Eig_4U_ZF_iid=zeros(Nfreq,Nsamples,M_Tx);
-Cap_4U_ZF_iid=zeros(Nfreq,Nsamples);
-
-for k2=1:Nsamples
- for k1=1:Nfreq
- HS = HH_4U_4x1(1,:,k1,k2,:);
- HS = squeeze(HS).';
- [Cap_4U_ZF_iid(k1,k2),gain2,eigval] = MISO_MMSE(HS,n_p,0);
- Eig_4U_ZF_iid(k1,k2,:) = eigval;
- end
-end
-
-tmp = reshape(Eig_4U_ZF_iid,[],4);
-for i=1:4
- [Eigval_4U_ZF_iid_f(i,:),Eigval_4U_ZF_iid_x(i,:)] = ecdf(tmp(:,i));
-end
-[Cond_4U_ZF_iid_f,Cond_4U_ZF_iid_x] = ecdf(tmp(:,4)./tmp(:,1));
-
-%% plot
-figure(1)
-plot(Eigval_4U_ZF_x.',Eigval_4U_ZF_f.');
-hold on
-plot(Eigval_4U_ZF_iid_x.',Eigval_4U_ZF_iid_f.','--');
-xlabel('eigenvalue')
-xlim([0 40])
-ylabel('CDF')
-title('Empirical CDF of the eigenvalues of H H''')
-legend('\lambda_1','\lambda_2','\lambda_3','\lambda_4', ...
- '\lambda_1 iid','\lambda_2 iid','\lambda_3 iid','\lambda_4 iid',...
- 'Location','SouthEast')
-grid on
-
-h_fig = figure(2);
-plot(Cond_4U_ZF_x,Cond_4U_ZF_f,'Linewidth',2)
-hold on
-plot(Cond_4U_ZF_iid_x,Cond_4U_ZF_iid_f,'--','Linewidth',2)
-xlabel('condition number')
-xlim([0 1000])
-ylabel('CDF')
-title('Empirical CDF of the condition number of H H^H','Fontsize',14,'Fontweight','bold')
-legend('measured','iid', 'Location','SouthEast')
-grid on
-saveas(h_fig, 'figs_spawc/idx_32_condition.eps', 'epsc2');
diff --git a/openair1/EMOS/MATLAB/plot_fer_snr.m b/openair1/EMOS/MATLAB/plot_fer_snr.m
deleted file mode 100755
index 8ee0a1e8a6..0000000000
--- a/openair1/EMOS/MATLAB/plot_fer_snr.m
+++ /dev/null
@@ -1,22 +0,0 @@
-load metadata_MU
-
-%%
-figure(1)
-hold off
-plot_style = {'r-','g-','b-','k-'};
-for user = 1:4
- err_ind = [est(user,:).err_ind];
- snr = [est(user,:).rx_power] - [est(user,:).n0_power];
- snr = mean(snr,1);
- bins = floor(min(snr)):3:ceil(max(snr));
- fer = zeros(1,length(bins)-1);
-
- for b=1:length(bins)-1
- idx = find(snr>=bins(b) & snr= 5
- h = text(mean(gps_x),mean(gps_y),label);
- set(h,'Color',color,'FontWeight','bold');
-end
-% if ~isempty(mm)
-% hold off
-% end
-if isempty(gps_x) || isempty(gps_y) || any(latitude==0) || any(longitude==0)
- axis([3264 5819 2610 4556]);
-else
- axis([min(gps_x)-100, max(gps_x)+100, min(gps_y)-100, max(gps_y)+100]);
-end
-axis off
diff --git a/openair1/EMOS/MATLAB/plot_map_indoor.m b/openair1/EMOS/MATLAB/plot_map_indoor.m
deleted file mode 100644
index 9cc9878852..0000000000
--- a/openair1/EMOS/MATLAB/plot_map_indoor.m
+++ /dev/null
@@ -1,32 +0,0 @@
-x = 1.0e+03 * [4.0668 4.0812 4.1054 4.0628 4.0910 4.0471 3.9160 4.0917];
-y = 1.0e+03 * [2.9938 2.9262 2.9112 2.8928 2.8777 2.9328 2.9321 2.9505];
-
-ax = 1.0e+03 * [3.8589 4.2404 2.8111 3.1121];
-
-mm = imread('/extras/kaltenbe/EMOS/2004_fd0006_250_c_0485.tif');
-
-h_fig = image(mm);
-axis(ax)
-axis off
-
-plot(x(1),y(1),'gx','Markersize',10)
-text(x(1),y(1),'Basestation','color','g','Fontweight','bold')
-
-plot(x(2),y(2),'bx','Markersize',10)
-text(x(2),y(2),'User 3','color','b','Fontweight','bold')
-
-plot(x(3),y(3),'mx','Markersize',10)
-text(x(3),y(3),'User 2','color','m','Fontweight','bold')
-
-plot(x(4),y(4),'rx','Markersize',10)
-text(x(4),y(4),'User 1,4','color','r','Fontweight','bold')
-
-% plot(x(5),y(5),'wx','Markersize',10)
-% text(x(5),y(5),'User 4','color','w','Fontweight','bold')
-
-plot(x(6),y(6),'wx','Markersize',10)
-text(x(6),y(6),'User 1,2,3,4','color','w','Fontweight','bold')
-
-filepath = 'figs';
-filename_gps = fullfile(filepath,sprintf('idx_%d_map_rx_rssi.eps',100));
-saveas(h_fig, filename_gps, 'epsc2');
diff --git a/openair1/EMOS/MATLAB/scale_test.m b/openair1/EMOS/MATLAB/scale_test.m
deleted file mode 100755
index db91515d0e..0000000000
--- a/openair1/EMOS/MATLAB/scale_test.m
+++ /dev/null
@@ -1,11 +0,0 @@
-close all
-figure
-
-%%
-hold off
-image(mm)
-hold on
-gps_y = (latitude-lat(1))*(scaley*1) + y(1); % gps_x is the north-south direction
-gps_x = (longitude-lon(1))*(scalex*1.15) + x(1); % gps_y is the east-west direction
-plot(gps_x,gps_y,'x');
-axis([min(gps_x)-100, max(gps_x)+100, min(gps_y)-100, max(gps_y)+100]);
diff --git a/openair1/EMOS/MATLAB/test_BD.m b/openair1/EMOS/MATLAB/test_BD.m
deleted file mode 100755
index da500b9815..0000000000
--- a/openair1/EMOS/MATLAB/test_BD.m
+++ /dev/null
@@ -1,44 +0,0 @@
-Nfreq = 20;
-Nsamples = 2000;
-SNRdB=10;
-M_Tx=4;
-N_Rx=2;
-SNR=10^(SNRdB/10);
-%%% MMSE regularization factor
-mu = M_Tx/SNR;
-%%% noise variance
-n_p=1/SNR;
-
-Users=4;
-for k=1:Users
- HH_4U_4x1=1/sqrt(2)*complex(randn(N_Rx,M_Tx,Nfreq,Nsamples,k),randn(N_Rx,M_Tx,Nfreq,Nsamples,k));
-end
-
-
-Cap_2U_BD_iid=zeros(Nfreq,Nsamples);
-Cap_2U_BD_WF_iid=zeros(Nfreq,Nsamples);
-
-for k2=1:Nsamples
- for k1=1:Nfreq
- HS = squeeze(HH_4U_4x1(:,:,k1,k2,:));
- [Cap_2U_BD_iid(k1,k2),gain] = BD(HS(1,:,:),n_p,0);
- [Cap_2U_BD_WF_iid(k1,k2),gain] = BD(HS(1,:,:),n_p,1);
-
- end
-end
-
-
-[Cap_2U_BD_iid_f,Cap_2U_BD_iid_x] = ecdf(Cap_2U_BD_iid(:));
-[Cap_2U_BD_WF_iid_f,Cap_2U_BD_WF_iid_x] = ecdf(Cap_2U_BD_WF_iid(:));
-
-
-load Cap_iid_N_Rx=1.mat
-plot(Cap_4U_ZF_iid_x,1-Cap_4U_ZF_iid_f,'r')
-hold on
-plot(Cap_2U_BD_iid_x,1-Cap_2U_BD_iid_f,'k','Linewidth',2)
-plot(Cap_2U_BD_WF_iid_x,1-Cap_2U_BD_WF_iid_f,'y','Linewidth',2)
-
-ylabel('CCDF');
-xlabel('Capacity (bits/ch.use)');
-grid on
-legend('ZF 4x1 iid')
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/textable.m b/openair1/EMOS/MATLAB/textable.m
deleted file mode 100644
index f0d9e712bf..0000000000
--- a/openair1/EMOS/MATLAB/textable.m
+++ /dev/null
@@ -1,217 +0,0 @@
-function textable(FileName, Matrix, varargin)
-% TEXTABLE writes a TeX formatted table to file.
-% TEXTABLE(FILENAME, MATRIX) writes MATRIX in TeX tabular formatted style
-% to the file "FILENAME.tbl"
-%
-% TEXTABLE(..., OPTIONAL ARGUMENTS)
-% 'folder','FOLDERNAME' outputfile is saved in FOLDERNAME\FILENAME.tbl
-%
-% 'line','LINECOMMAND' optional line argument that is placed in
-% between two lines of numbers. Standard is no line.
-%
-% Example: TEXTABLE(...,'line','\hline') --> puts "\hline" between
-% every line of numbers.
-%
-% 'format', 'FORMATARGUMENT' optional argument to change float format
-% to e.g. exponential or integer format. Can be one argument, or one
-% continuous string for single columns. The format 'e' is translated
-% into TeX code as "number\cdot 10^{exponential}"
-%
-% Example 1: TEXTABLE(...,'format', 'i') --> all columns will
-% be integer format
-% Example 2: TEXTABLE(...,'format', 'iefff') --> for every single
-% column the format is defined.
-%
-% 'floatformat', [floatformat] is used to point the function how many
-% digits should be used. This works only in combination with 'format'
-% set to float, exponential or no setting (float 3.2 (###.##) is default).
-%
-% Example 1: TEXTABLE(...,'floatformat', 1.4)
-% Example 2: TEXTABLE(...,'floatformat', [1.4 3.2 4.5]) digits defined per
-% column
-%
-% 'environment', 'ENV' optional argument to point in what TeX environment
-% the table is to be placed: text (TXT) or math (MATH) environment.
-% Default is 'TXT'. This has an effect on the placement of '$' around
-% each element.
-%
-% Example: TEXTABLE(...,'environment','MATH')
-%
-%
-% [JdB] February 27, 2007
-%
-
-% [JdB] October 16, 2006 - first version
-% [JdB] October 20, 2006 - exponential notation 'LaTeX style'
-% - 'line' argument bug fixed
-% [MarkDuppe] November 3, 2006 - 'line' argument backslash bug fixed
-% [JdB] November 24, 2006 - 'floatformat' also works for scientific
-% (exponential) notation.
-% - minor improvements (commenting)
-% [BartekGrychtol] December 10, 2006 - exponential notation algorithm
-% improved
-% [JdB] February 27, 2007 - 'environment' option added -
-% enables the generated tables to be
-% used within math environment
-
-
-% Define standard options -------------------------------------------------
-Folder = '';
-Argument = '';
-FileAndExtension = [FileName, '.tbl']; % .tbl extension is added
-WidthMatrix = size(Matrix,2);
-HeightMatrix = size(Matrix,1);
-Format = 'f'; % standard format is float ('f')
-FloatFormat = 3.2;
-Environment = 'TXT';
-
-% Analyse optional input --------------------------------------------------
-ExtraInput = (nargin-3);
-if(ExtraInput>0) % loop through all optional arguments
- for j = 1:2:ExtraInput
- switch lower(varargin{j})
- case 'folder' % folder is specified
- Folder = varargin{j+1};
- FileAndExtension = [Folder,'/',FileAndExtension];
- case 'line' % there is a between line argument specified
- Argument = varargin{j+1};
- case 'format' % format is specified for:
- switch length(varargin{j+1}) % all columns
- case 1
- Format = varargin{j+1};
- for k=2:WidthMatrix
- Format = [Format, varargin{j+1}];
- end
- otherwise % each column specified
- Format = varargin{j+1};
- end
- case 'floatformat' % numeric format is specified
- FloatFormat = varargin{j+1};
- case 'environment' % environment is specified
- Environment = varargin{j+1};
- end
-
- end
-end
-
-% Process optional input --------------------------------------------------
-switch(Environment)
- case 'TXT' % when TeX text environment, a $ is placed
- EnvOp = '$'; % around each table entry
- case 'MATH' % when TeX math environment, this $ is
- EnvOp = ''; % omitted
-end
-
-if(WidthMatrix>1)
- if(length(Format)==1) % if format scalar,
- for k=2:WidthMatrix % then make array of that scalar (width = columnwidth)
- Format = [Format, Format];
- end
- end
- if(length(FloatFormat)==1) % if floatformat scalar,
- FloatFormat = FloatFormat * ones(1, WidthMatrix); % then make array for every column
- end
-end
-
-%--------------------------------------------------------------------------
-% Module to enable exponential notation in TeX
-%--------------------------------------------------------------------------
-WriteMatrix = Matrix;
-WriteFloatFormat = FloatFormat;
-WriteFormat = Format;
-WriteWidthMatrix = WidthMatrix;
-place = 0;
-for n = 1 : WidthMatrix % loop to insert exponential notation
- place = place+1;
- if(Format(n)=='e')
- for m=1:HeightMatrix
- ExponentialString = sprintf('%e',Matrix(m,n)); % first let matlab put the column in exponential notation
- pos = strfind(ExponentialString,'e'); % find position of 'e'
- Exp = str2double(ExponentialString((pos+1):end)); % extract exponential from this string
- Flo = str2double(ExponentialString(1:pos-1)); % extract float from this string
- ColumnFloatExponential(m,:) = [Flo, Exp]; % element in the matrix is now split into float and exponential
- end
- Etakeout = ColumnFloatExponential; % Etakeout is now a 2 column vector containing
- % on the left side the float and on the right side
- % exponential number.
- % place extra columns
- if(place>1)
- if(place < WriteWidthMatrix)
- WriteMatrix = [ WriteMatrix(:,1:place-1), Etakeout, WriteMatrix(:, place+1:WriteWidthMatrix) ];
- WriteFloatFormat = [ WriteFloatFormat(:,1:place), 1, WriteFloatFormat(:, place+1:WriteWidthMatrix) ];
- WriteFormat = [ WriteFormat(:,1:place-1), 'bx', WriteFormat(:, place+1:WriteWidthMatrix) ];
- else
- WriteMatrix = [ WriteMatrix(:,1:place-1), Etakeout ];
- WriteFloatFormat = [ WriteFloatFormat(:,1:place), 1 ];
- WriteFormat = [ WriteFormat(:,1:place-1), 'bx' ];
- end
- else
- if(place < WriteWidthMatrix)
- WriteMatrix = [Etakeout, WriteMatrix(:,place+1:WriteWidthMatrix) ];
- WriteFloatFormat = [WriteFloatFormat(:,place), 1, WriteFloatFormat(:,place+1:WriteWidthMatrix)];
- WriteFormat = ['bx', WriteFormat(:,place+1:WriteWidthMatrix) ];
- else
- WriteMatrix = Etakeout;
- WriteFloatFormat = [WriteFloatFormat(:,place), 1];
- WriteFormat = 'bx';
- end
- end
- WriteWidthMatrix = size(WriteMatrix,2);
- place = place + 1;
- end
-end
-
-
-%--------------------------------------------------------------------------
-% Create String that writes the matrix in the table file
-%--------------------------------------------------------------------------
-switch(WriteFormat(1)) % first element of WriteFormat
- case 'b'
- PrintFormat = [ EnvOp, '%', num2str(WriteFloatFormat(1)), 'f' ];
- otherwise
- PrintFormat = [ EnvOp, '%', num2str(WriteFloatFormat(1)), WriteFormat(1), EnvOp ];
-end
-if(WriteWidthMatrix>1)
- for i=2:WriteWidthMatrix % rest of elements of WriteFormat
- switch(WriteFormat(i))
- case 'b' % float of exponential
- PrintFormat = [PrintFormat, ' & ', EnvOp, '%', num2str(WriteFloatFormat(i)), 'f' ];
- case 'x' % exponential number
- PrintFormat = [PrintFormat, '\\cdot 10^{%i}', EnvOp ];
- otherwise % other format
- PrintFormat = [PrintFormat, ' & ', EnvOp, '%',num2str(WriteFloatFormat(i)), WriteFormat(i), EnvOp];
- end
- end
-end
-
-%------------------------- Include optional argument & finish 'PrintFormat'
-if(isempty(Argument)==0) % argument not empty
- tw=1;
- for t=1:length(Argument) % loop through Argument string
- if(Argument(t)=='\')
- WriteArgument(tw:tw+1)='\\'; % replace single backslash with double since
- tw=tw+1; % matlab fprintf needs that
- else
- WriteArgument(tw) = Argument(t);
- end
- tw=tw+1;
- end
- PrintFormat = [PrintFormat,' \\\\',WriteArgument, '\n']; % finish format line with \n nextline command
-else % argument empty
- PrintFormat = [PrintFormat,' \\\\\n'];
-end
-
-
-
-%--------------------------------------------------------------------------
-% Write to file
-%--------------------------------------------------------------------------
-try
- fid = fopen(FileAndExtension,'wt'); % open file
- fprintf (fid, PrintFormat, WriteMatrix.'); % write to file
- fclose(fid); % close file
-catch
- disp 'Error while writing to file:'
- disp 'Folder could be nonexisting or file specified could be write-protected'
-end
-
diff --git a/openair1/EMOS/MATLAB/top_ecap.m b/openair1/EMOS/MATLAB/top_ecap.m
deleted file mode 100644
index 916e103d13..0000000000
--- a/openair1/EMOS/MATLAB/top_ecap.m
+++ /dev/null
@@ -1,60 +0,0 @@
-clear all
-close all
-
-%%
-%file_indices = 39:60;
-file_indices = [82:85 87:90 100 1 2];
-%file_indices = [32 50 51];
-
-load('metadata_MU.mat')
-
-Ecap = zeros(max(file_indices),14);
-Mcap = zeros(max(file_indices),14);
-
-for idx = file_indices
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, length(file_indices)));
-
- filename_mat = sprintf('results_v2_idx_%d.mat',idx);
-
- load(filename_mat)
-
- align_matrix = repmat(-1,4,max(framestamp_max(:,idx)) - min(framestamp_min(:,idx)) + 1);
- for u = 1:4
- align_matrix(u,est(u,idx).framestamp_tx - min(framestamp_min(:,idx)) + 1) = est(u,idx).err_ind;
- end
- NFrames_Tx_proc = sum(all(align_matrix==0));
-
- Ecap(idx,1) = mean(CAP_SU1x1_TDMA_ML(:));
- Mcap(idx,1) = median(CAP_SU1x1_TDMA_ML(:));
- Ecap(idx,2) = mean(CAP_SU1x2_TDMA_ML(:));
- Mcap(idx,2) = median(CAP_SU1x2_TDMA_ML(:));
- Ecap(idx,3) = mean(CAP_SU2x2_TDMA_ML(:));
- Mcap(idx,3) = median(CAP_SU2x2_TDMA_ML(:));
- Ecap(idx,4) = mean(CAP_SU_TDMA_DSTTD(:));
- Mcap(idx,4) = median(CAP_SU_TDMA_DSTTD(:));
- Ecap(idx,5) = mean(reshape(CAP_2U_ZF(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,5) = median(reshape(CAP_2U_ZF(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,6) = mean(reshape(CAP_4U_ZF(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,6) = median(reshape(CAP_4U_ZF(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,7) = mean(reshape(CAP_2U_AS_ZF(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,7) = median(reshape(CAP_2U_AS_ZF(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,8) = mean(reshape(CAP_4U_AS_ZF(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,8) = median(reshape(CAP_4U_AS_ZF(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,9) = mean(reshape(CAP_2U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,9) = median(reshape(CAP_2U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,10) = mean(reshape(CAP_4U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,10) = median(reshape(CAP_4U_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,11) = mean(reshape(CAP_2U_AS_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,11) = median(reshape(CAP_2U_AS_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,12) = mean(reshape(CAP_2U2Tx_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,12) = median(reshape(CAP_2U2Tx_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Ecap(idx,13) = mean(reshape(CAP_4U_AS_MMSE(:,1:NFrames_Tx_proc),1,[]));
- Mcap(idx,13) = median(reshape(CAP_4U_AS_MMSE(:,1:NFrames_Tx_proc),1,[]));
- %Ecap(idx,14) = mean(reshape(CAP_2U2Tx_ZF(:,1:NFrames_Tx_proc),1,[]));
- %Mcap(idx,14) = median(reshape(CAP_2U2Tx_ZF(:,1:NFrames_Tx_proc),1,[]));
-
-end
-
-save Ecap Ecap Mcap
-textable('Ecap_table.tex',[file_indices.' Ecap(file_indices,:)]);
-textable('Mcap_table.tex',[file_indices.' Mcap(file_indices,:)]);
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/top_eval_data.m b/openair1/EMOS/MATLAB/top_eval_data.m
deleted file mode 100755
index 03467cec69..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data.m
+++ /dev/null
@@ -1,40 +0,0 @@
-% Skript: top_eval_data.m:
-%
-% This script checks for EMOS data files within the current directory and
-% starts the eval_data.m script to extract all parameters
-% for the automatic generation of a report page of the corresponding
-% measurement run.
-%
-%
-%----------------------------------------------------------------------%
-% %
-% Author: Florian Kaltenberger %
-% Created: 12/10/2007 by FK %
-% Last modification: 12/10/2007 by FK %
-% Organization: Institut Eurecom %
-% 2229 Route des Cretes %
-% B.P. 193 %
-% 06904 Sophia Antipolis Cedex, France %
-% %
-%----------------------------------------------------------------------%
-
-clear all
-close all
-
-if isunix
- mm = imread('/extras/kaltenbe/EMOS/2004_fd0006_250_c_0485.tif');
-else
- mm = imread('\\extras\kaltenbe\EMOS\2004_fd0006_250_c_0485.tif');
-end
-
-d=dir('*.EMOS');
-
-for k=1:size(d,1) % for all files of the directory
- dname=d(k).name;
- dsize=d(k).bytes;
- if dsize>0
- filename_emos = dname
- eval_data; % extract all the parameters of a single measurement file
- end % if b
-end % for k=3:size(d,1)
-
diff --git a/openair1/EMOS/MATLAB/top_eval_data_MU.m b/openair1/EMOS/MATLAB/top_eval_data_MU.m
deleted file mode 100755
index 098a4cab3a..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data_MU.m
+++ /dev/null
@@ -1,116 +0,0 @@
-clear all
-close all
-
-filepath = '.';
-
-% dd = dir(filepath);
-% for d=3:length(dd)
-% dname=num2str(dd(d).name);
-% dsize=num2str(dd(d).bytes);
-% b=findstr(dname,'.EMOS');
-% if ~isempty(b) % if it is a measuremnt file
-% tmp = sscanf(dname,'data_term%d_idx%d_[...].EMOS');
-% term = tmp(1);
-% idx = tmp(2);
-% filenames{term,idx+1} = fullfile(filepath,dname);
-% end
-% end
-
-%setpref('Internet','SMTP_Server','mailhost.eurecom.fr');
-
-addpath('/homes/kaltenbe/Devel/openair_trunk/openair1/EMOS/MATLAB/')
-addpath('/homes/kaltenbe/Devel/openair_trunk/openair1/EMOS/MATLAB/lim_feedback/')
-addpath('/homes/kaltenbe/Devel/openair_trunk/openair1/EMOS/MATLAB/import_filter/')
-addpath('/homes/kaltenbe/Devel/openair_trunk/openair1/EMOS/MATLAB/MAC_to_BC/')
-
-
-%%
-% Measurement 1
-cd /extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/
-% file_indices = [27 28 32 33 50 51 52];
-% file_indices = [32 50 51];
-% file_indices = [34 37 38 40];
-file_indices = 32;
-% SNRdB = 0:5:15;
-SNRdB = 10;
-IFversion = 0.3;
-sched_users = 1:4;
-avail_users = 1:4;
-NTx = 4;
-NRx = 2;
-NUser = 4;
-
-% % Measurement 2
-% cd /extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC
-% % file_indices = [82:85 87:90 100 1 2];
-% file_indices = 100;
-% IFversion = 0.3;
-% SNRdB = 10;
-% sched_users = [1:4];
-% avail_users = [1:4];
-% NUser = 4;
-% NTx = 4;
-% NRx = 2;
-
-% % Measurement 3
-% cd /extras/kaltenbe/EMOS/data/20080213_MU_Outdoor
-% % file_indices = 45:55;
-% % file_indices = 52;
-% file_indices = 50;
-% IFversion = 0.4;
-% SNRdB = 10; %0:5:15;
-% sched_users = [1:4];
-% avail_users = [1:4];
-% NTx = 4;
-% NRx = 2;
-% NUser = 4;
-
-% Measurement 4
-%cd /extras/kaltenbe/EMOS/data/20080617_WHERE
-% % file_indices = 45:55;
-% file_indices = 62:70;
-% IFversion = 0.4;
-% SNRdB = 10;
-% avail_users = [1:2];
-% sched_users = [1:2];
-% NUser = 2;
-
-% % Measurement 20081110
-% cd /extras/kaltenbe/EMOS/data/20081110_MU_Outdoor/
-% file_indices = 25:29;
-% % SNRdB = 0:5:15;
-% SNRdB = 10;
-% IFversion = 2.0;
-% sched_users = 1:2;
-% avail_users = 3:4;
-% NTx = 2;
-% NRx = 2;
-% NUser = 2;
-
-load('metadata_MU.mat');
-
-%%
-NIdx = length(file_indices);
-
-warning('off','MATLAB:nearlySingularMatrix')
-warning('off','MATLAB:SingularMatrix')
-
-for idx = file_indices
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, NIdx));
-
- if IFversion>=2
- for k=1:size(est,1)
- est(k,idx).err_ind = -est(k,idx).crc_status;
- end
- end
-
- %eval_corr_coef
- eval_data_MU
- %eval_data_MU_DPC
- %eval_data_MU_RVQ
- %eval_data_MU_CVQ
- %eval_data_MU_RVQ_multiSNR
-end
-
-warning('on','MATLAB:nearlySingularMatrix')
-warning('on','MATLAB:SingularMatrix')
diff --git a/openair1/EMOS/MATLAB/top_eval_data_MU_plot.m b/openair1/EMOS/MATLAB/top_eval_data_MU_plot.m
deleted file mode 100755
index 18f6336abc..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data_MU_plot.m
+++ /dev/null
@@ -1,56 +0,0 @@
-clear all
-close all
-
-filepath = '';
-
-% dd = dir(filepath);
-% for d=3:length(dd)
-% dname=num2str(dd(d).name);
-% dsize=num2str(dd(d).bytes);
-% b=findstr(dname,'.EMOS');
-% if ~isempty(b) % if it is a measuremnt file
-% tmp = sscanf(dname,'data_term%d_idx%d_[...].EMOS');
-% term = tmp(1);
-% idx = tmp(2);
-% filenames{term,idx+1} = fullfile(filepath,dname);
-% end
-% end
-
-%% load data
-disp('[eval_data_MU] loading metadata');
-load('metadata_MU.mat');
-disp('[eval_data_MU] loading image file');
-mm = imread('E:\2004_fd0006_250_c_0485.tif');
-
-%% generate figures and latex files
-NTx = 4;
-%NFrames_max = 1000;
-NUser = size(filename_emos,1);
-%file_indices = [12 13 14 15 27 28 29 30];
-file_indices = [27 28 32 33 50 51 52];
-NIdx = length(file_indices);
-SNR = 10;
-
-if ~exist('figs','dir')
- mkdir('figs')
-end
-if ~exist('tex','dir')
- mkdir('tex')
-end
-
-fdw = fopen('tex/results.tex','w');
-
-for idx = file_indices
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, NIdx));
- %eval_data_MU_plot
- %EMOS_generate_LaTex_file
- fprintf(fdw,'\\include{idx_%d}\n',idx);
-end
-
-fclose(fdw);
-
-%% compile the latex source
-cd tex
-system('latex SFR_4th_report.tex');
-system('dvips SFR_4th_report.dvi');
-system('ps2pfd SFR_4th_report.ps');
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/top_eval_data_MU_quick.m b/openair1/EMOS/MATLAB/top_eval_data_MU_quick.m
deleted file mode 100755
index 446b6cf3ba..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data_MU_quick.m
+++ /dev/null
@@ -1,81 +0,0 @@
-% Skript: top_eval_data_MU_quick.m:
-%
-% This script checks for EMOS data files within the current directory,
-% loads their metadata and stores the first and last frameindex of the file
-% into a table. It then find the frame indices, where all users have a
-% signal. Further it finds the 10 largest contiguous sets of this region.
-% Finally, the filenames of these regions are stored.
-%
-%
-%----------------------------------------------------------------------%
-% %
-% Author: Florian Kaltenberger %
-% Created: 12/10/2007 by FK %
-% Last modification: 16/11/2007 by FK %
-% Organization: Institut Eurecom %
-% 2229 Route des Cretes %
-% B.P. 193 %
-% 06904 Sophia Antipolis Cedex, France %
-% %
-%----------------------------------------------------------------------%
-
-clear all
-close all
-
-addpath('/homes/kaltenbe/Devel/openair_trunk/openair1/EMOS/MATLAB/import_filter/')
-%cd('/extras/kaltenbe/EMOS/data/20081110_MU_Outdoor/');
-%cd('/extras/kaltenbe/EMOS/data/20081023_CHORIST_BARCELONA/Underground_Parking4');
-%IFversion = 2.0;
-cd('/extras/kaltenbe/EMOS/data/20090506_DualStream_Lab');
-IFversion = 2.1;
-NTx=2;
-
-dd = dir('*.EMOS');
-for d=1:length(dd)
- dname = dd(d).name;
- dsize = dd(d).bytes;
- if dsize > 0 % if it is a measuremnt file
- tmp = sscanf(dname,'data_term%d_idx%d_[...].EMOS');
- u = tmp(1);
- k = tmp(2)+1;
- filename_emos{u,k} = dname;
- disp(dname);
-
- [est(u,k),gps_data(u,k),NFrames(u,k)] = load_estimates2_no_channel(filename_emos{u,k},4,Inf,IFversion);
-
- framenoerror = est(u,k).framestamp_tx(~est(u,k).crc_status);
- if ~isempty(framenoerror)
- framestamp_min(u,k) = framenoerror(1);
- framestamp_max(u,k) = framenoerror(end);
- end
- end
-end
-
-% for u=1:4
-%
-% d=dir(sprintf('data_term%d*.EMOS',u));
-%
-% for k=1:size(d,1) % for all files of the directory
-% filename_emos{u,k} = d(k).name;
-% disp(filename_emos{u,k});
-% % [path,name] = fileparts(filename_emos{u,k});
-% [est(u,k),gps_data(u,k),NFrames(u,k)] = load_estimates_no_channel(filename_emos{u,k},4,Inf,IFversion);
-%
-% framenoerror = est(u,k).framestamp_tx(~est(u,k).err_ind);
-% if ~isempty(framenoerror)
-% framestamp_min(u,k) = framenoerror(1);
-% framestamp_max(u,k) = framenoerror(end);
-% end
-%
-% end % for k=1:size(d,1)
-%
-% end
-
-%%
-if strfind(version,'7.3')
- save('metadata_MU.mat','-V7','framestamp_min','framestamp_max','filename_emos','est','gps_data','NFrames');
-else
- save('metadata_MU.mat','framestamp_min','framestamp_max','filename_emos','est','gps_data','NFrames');
-end
-
-
diff --git a/openair1/EMOS/MATLAB/top_eval_data_MU_quick_plot.m b/openair1/EMOS/MATLAB/top_eval_data_MU_quick_plot.m
deleted file mode 100755
index d0a667d990..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data_MU_quick_plot.m
+++ /dev/null
@@ -1,93 +0,0 @@
-clear all
-close all
-
-%% load the files
-mm = imread('E:\2004_fd0006_250_c_0485.tif');
-
-load('metadata_MU.mat');
-
-Nuser = size(est,1);
-
-%% plot the rx_rssi over time
-h_fig = figure(1);
-%plot_style = {'rx','bx','gx','kx'};
-plot_style = {'c.','m.','b.','g.','k.'};
-for u=1:Nuser
- rx_rssi_dBm = [est(u,:).rx_rssi_dBm ];
- %timestamp_tx = [est(u,:).timestamp_tx];
- %timestamp_tx = timestamp_tx - 4.476e5;
- framestamp_tx = [est(u,:).framestamp_tx];
- err_ind = logical([est(u,:).err_ind]);
-
- plot(framestamp_tx,mean(rx_rssi_dBm,1),plot_style{u});
- hold on
- % plot(framestamp_tx(err_ind),mean(rx_rssi_dBm(:,err_ind),1),'rx');
-
-end
-hold off
-xlabel('Frame')
-ylabel('RSSI [dBm]')
-%xlim([min(framestamp_is),max(framestamp_is)])
-%xlim([framestamp_is(max_start),framestamp_is(max_start+max_length)]);
-legend('User 1','User 2','User 3','User 4')
-
-saveas(h_fig, 'rx_rssi_time.eps', 'psc2');
-
-%% plot the FER over time
-h_fig = figure(2);
-%plot_style = {'rx','bx','gx','kx'};
-plot_style = {'c.','m.','b.','g.','k.'};
-for u=1:Nuser
- %timestamp_tx = [est(u,:).timestamp_tx];
- %timestamp_tx = timestamp_tx - 4.476e5;
- framestamp_tx = [est(u,:).framestamp_tx];
- err_ind = [est(u,:).err_ind];
- fer = sum(reshape(err_ind,100,[]),1);
-
- plot(framestamp_tx(1:100:end),fer,plot_style{u});
- hold on
- % plot(framestamp_tx(err_ind),mean(rx_rssi_dBm(:,err_ind),1),'rx');
-
-end
-hold off
-xlabel('Frame')
-ylabel('FER')
-%xlim([min(framestamp_is),max(framestamp_is)])
-%xlim([framestamp_is(max_start),framestamp_is(max_start+max_length)]);
-legend('User 1','User 2','User 3','User 4')
-
-saveas(h_fig, 'fer_time.eps', 'psc2');
-
-%% plot the maps
-for u = 1:Nuser;
-
- lat = [gps_data(u,:).latitude];
- lon = [gps_data(u,:).longitude];
-
- %%
- rx_rssi_dBm = [est(u,:).rx_rssi_dBm];
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,mean(rx_rssi_dBm(:,1:100:end),1));
- title('Rx RSSI (dBm)')
- saveas(h_fig,sprintf('rx_rssi_term%d.jpg',u))
-
- %%
- rx_snr = [est(u,:).rx_power] - [est(u,:).n0_power];
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,mean(rx_snr(:,1:100:end),1));
- title('Rx SNR (dB)')
- saveas(h_fig,sprintf('rx_snr_term%d.jpg',u))
-
- %%
- % err_ind = [0 diff([est.pdu_errors])];
- % err_ind(err_ind<0) = 0;
- % err_ind(err_ind>1) = 1;
- % err_100 = sum(reshape(err_ind,100,[]),1);
- err_ind_all = [est(u,:).err_ind];
- err_100 = sum(reshape(err_ind_all,100,[]),1);
-
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,err_100(1:end));
- title('Rx FER (%)')
- saveas(h_fig,sprintf('rx_fer_term%d.jpg',u))
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/top_eval_data_quick.m b/openair1/EMOS/MATLAB/top_eval_data_quick.m
deleted file mode 100755
index ac06bf1c71..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data_quick.m
+++ /dev/null
@@ -1,52 +0,0 @@
-% Skript: top_eval_data.m:
-%
-% This script checks for EMOS data files within the current directory,
-% extracts all the metadata out of the files, and stores them to a .mat
-% file.
-%
-%
-%----------------------------------------------------------------------%
-% %
-% Author: Florian Kaltenberger %
-% Created: 21/12/2007 by FK %
-% Last modification: 21/12/2007 by FK %
-% Organization: Institut Eurecom %
-% 2229 Route des Cretes %
-% B.P. 193 %
-% 06904 Sophia Antipolis Cedex, France %
-% %
-%----------------------------------------------------------------------%
-
-clear all
-close all
-
-addpath('/homes/kaltenbe/Devel/openair1/EMOS/MATLAB/import_filter/')
-cd('/extras/kaltenbe/EMOS/data/20081023_CHORIST_BARCELONA/Campus2/');
-IFversion = 2.0;
-NTx=2;
-
-for term = 1:4;
-
- clear est gps_data NFrames
-
- d=dir(sprintf('data_term%d_*.EMOS',term));
- if isempty(d)
- continue
- end
-
- for k=1:size(d,1) % for all files of the directory
- dname=d(k).name;
- dsize=d(k).bytes;
- if (dsize>0) % if it is a measuremnt file
- filename_emos = dname;
- disp(filename_emos);
- %[path,name] = fileparts(filename_emos);
- [est(k),gps_data(k),NFrames(k)] = load_estimates2_no_channel(filename_emos,NTx,Inf,IFversion);
- end % if b
- end % for k=3:size(d,1)
-
- save(sprintf('data_term%d.mat',term));
-
-end
-
-
diff --git a/openair1/EMOS/MATLAB/top_eval_data_quick_plot.m b/openair1/EMOS/MATLAB/top_eval_data_quick_plot.m
deleted file mode 100755
index 08cb33b8ae..0000000000
--- a/openair1/EMOS/MATLAB/top_eval_data_quick_plot.m
+++ /dev/null
@@ -1,61 +0,0 @@
-% Skript: top_eval_data_quick_plot.m:
-%
-% This script visualizes the meatadata prevoiusly read with
-% top_eval_data_quick.
-%
-%
-%----------------------------------------------------------------------%
-% %
-% Author: Florian Kaltenberger %
-% Created: 21/12/2007 by FK %
-% Last modification: 21/12/2007 by FK %
-% Organization: Institut Eurecom %
-% 2229 Route des Cretes %
-% B.P. 193 %
-% 06904 Sophia Antipolis Cedex, France %
-% %
-%----------------------------------------------------------------------%
-
-clear all
-close all
-
-mm = imread('E:\2004_fd0006_250_c_0485.tif');
-
-for term = 1:4;
-
- filename = sprintf('data_term%d.mat',term);
- if ~exist(filename,'file')
- break
- end
- load(filename);
-
- lat = [gps_data.latitude];
- lon = [gps_data.longitude];
-
- %%
- rx_rssi_dBm = [est.rx_rssi_dBm];
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,mean(rx_rssi_dBm(:,1:100:end),1));
- title('Rx RSSI (dBm)')
- saveas(h_fig,sprintf('rx_rssi_term%d.jpg',term))
-
- %%
- rx_snr = [est.rx_power] - [est.n0_power];
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,mean(rx_snr(:,1:100:end),1));
- title('Rx SNR (dB)')
- saveas(h_fig,sprintf('rx_snr_term%d.jpg',term))
-
- %%
- % err_ind = [0 diff([est.pdu_errors])];
- % err_ind(err_ind<0) = 0;
- % err_ind(err_ind>1) = 1;
- % err_100 = sum(reshape(err_ind,100,[]),1);
- err_ind_all = [est.err_ind];
- err_100 = sum(reshape(err_ind_all,100,[]),1);
-
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,err_100(1:end));
- title('Rx FER (%)')
- saveas(h_fig,sprintf('rx_fer_term%d.jpg',term))
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/top_plot_data_MU.m b/openair1/EMOS/MATLAB/top_plot_data_MU.m
deleted file mode 100755
index 0cb081afdd..0000000000
--- a/openair1/EMOS/MATLAB/top_plot_data_MU.m
+++ /dev/null
@@ -1,106 +0,0 @@
-clear all
-close all
-
-filepath_figs = 'figs';
-filepath_tex = 'tex';
-
-% dd = dir(filepath);
-% for d=3:length(dd)
-% dname=num2str(dd(d).name);
-% dsize=num2str(dd(d).bytes);
-% b=findstr(dname,'.EMOS');
-% if ~isempty(b) % if it is a measuremnt file
-% tmp = sscanf(dname,'data_term%d_idx%d_[...].EMOS');
-% term = tmp(1);
-% idx = tmp(2);
-% filenames{term,idx+1} = fullfile(filepath,dname);
-% end
-% end
-
-addpath('/homes/kaltenbe/Devel/openair1/EMOS/MATLAB/import_filter');
-addpath('/homes/kaltenbe/Devel/openair1/EMOS/MATLAB');
-
-%% Select Measurements
-% % MU_Outdoor campaign 20071126
-% cd /extras/kaltenbe/EMOS/data/20071126_MU_Outdoor/
-% file_indices = [32 50 51];
-% file_indices = [32];
-
-% % MU_Indoor campaign 20080129
-% file_indices = [15 16 17 23 25 28 29 30 31];
-
-% % MU_Indoor campaign 20080205
-% cd /extras/kaltenbe/EMOS/data/20080205_MU_Indoor_EN_EC
-% file_indices = [82:85 87:90 100];
-% file_indices = 100;
-
-% MU_Outdoor campaign 20080213
-cd /extras/kaltenbe/EMOS/data/20080213_MU_Outdoor
-% file_indices = [40:44 46:47 49:57 59];
-file_indices = [50];
-
-%cd /extras/kaltenbe/EMOS/data/20080618_WHERE/Walking
-%cd /extras/kaltenbe/EMOS/data/20080618_WHERE/Driving
-%cd /extras/kaltenbe/EMOS/data/20080617_WHERE/
-%file_indices = [5];
-
-%% load data
-disp('[eval_data_MU] loading metadata');
-load('metadata_MU.mat');
-
-% disp('[eval_data_MU] loading image file');
-% if isunix
-% mm = imread('/extras/kaltenbe/EMOS/2004_fd0006_250_c_0485.tif');
-% else
-% mm = imread('\\extras\kaltenbe\EMOS\2004_fd0006_250_c_0485.tif');
-% end
-
-%% generate figures and latex files
-NTx = 4;
-%NFrames_max = 1000;
-NUser = size(filename_emos,1);
-% the indices of the .EMOS files start with 0 whereas
-% the indices of the .mat files start with 1
-% here we use the Matlab convention
-
-NIdx = length(file_indices);
-SNRdB = 10;
-
-if ~exist(filepath_figs,'dir')
- mkdir(filepath_figs)
-end
-if ~exist(filepath_tex,'dir')
- mkdir(filepath_tex)
-end
-
-%%
-%fdw = fopen(fullfile(filepath_tex,'/results.tex'),'w');
-%fdp = fopen('tex/presentation.tex','w');
-%fprintf(fdw,'\\section{Measurement Results}\n');
-
-for idx = file_indices
-%for idx = 1:length(est)
- if ~isempty(est(1,idx).rx_rssi_dBm)
- disp(sprintf('[eval_data_MU] Processing file %d of %d',idx, NIdx));
- plot_gps_data
- end
- plot_data_MU_CVQ
- plot_data_MU_CVQ3
- %plot_data_corrmat
- %pause
- %EMOS_generate_LaTex_file
- %EMOS_generate_LaTex_presentation
- %EMOS_plot_multiple_measurements
- %fprintf(fdw,'\\input{%s/idx_%d.tex}\n',fullfile(pwd,filepath_tex,''),idx);
-end
-
-%fclose(fdw);
-%fclose(fdp);
-
-% %% compile the latex source
-% cd(filepath_tex)
-% %system('latex SFR_4th_report.tex');
-% system('latex SFR_4th_report.tex');
-% system('dvips SFR_4th_report.dvi');
-% system('ps2pdf SFR_4th_report.ps');
-% cd ..
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/top_plot_data_MU_quick.m b/openair1/EMOS/MATLAB/top_plot_data_MU_quick.m
deleted file mode 100755
index 3657d13d75..0000000000
--- a/openair1/EMOS/MATLAB/top_plot_data_MU_quick.m
+++ /dev/null
@@ -1,108 +0,0 @@
-%clear all
-close all
-
-% %% load the files
-% disp('[eval_data_MU] loading image file');
-% if isunix
-% mm = imread('/extras/kaltenbe/EMOS/2004_fd0006_250_c_0485.tif');
-% else
-% mm = imread('\\extras\kaltenbe\EMOS\2004_fd0006_250_c_0485.tif');
-% end
-%
-% %%
-% load('metadata_MU.mat');
-%
-% Nuser = size(est,1);
-
-%% plot the rx_rssi over time
-scrsz = get(0,'ScreenSize');
-h_fig = figure('Position',[1 scrsz(4)/2 scrsz(3) scrsz(4)/2]);
-%h_fig = figure(1);
-%plot_style = {'rx','bx','gx','kx'};
-plot_style = {'c.','m.','b.','g.','k.'};
-for u=3:Nuser
- rx_rssi_dBm = cat(3,est(u,:).rx_rssi_dBm);
- %timestamp_tx = [est(u,:).timestamp_tx];
- %timestamp_tx = timestamp_tx - 4.476e5;
- framestamp_tx = [est(u,:).framestamp_tx];
- err_ind = logical([est(u,:).crc_status]);
-
- plot(framestamp_tx,mean(squeeze(rx_rssi_dBm(1,:,:)),1),plot_style{u});
- hold on
- % plot(framestamp_tx(err_ind),mean(rx_rssi_dBm(:,err_ind),1),'rx');
-
-end
-hold off
-xlabel('File Index')
-ylabel('RSSI [dBm]')
-%xlim([min(framestamp_is),max(framestamp_is)])
-%xlim([framestamp_is(max_start),framestamp_is(max_start+max_length)]);
-xtick = floor(min(min(framestamp_min))/22500)*22500:22500:floor(max(max(framestamp_max))/22500)*22500;
-%xlim([7312500 7987500]) %file index 25 to 55
-set(gca,'xtick',xtick)
-set(gca,'xticklabel',mod(floor(xtick/22500),100))
-[legend_h,object_h,plot_h,text_strings] = legend('User 1','User 2','User 3','User 4','orientation','horizontal','location','south');
-h_legend_line = findobj(object_h,'type','line');
-set(h_legend_line,'LineStyle','-')
-set(h_legend_line,'LineWidth',3)
-grid on
-saveas(h_fig, 'rx_rssi_time.eps', 'psc2');
-
-%% plot the FER over time
-h_fig = figure(2);
-%plot_style = {'rx','bx','gx','kx'};
-plot_style = {'c.','m.','b.','g.','k.'};
-for u=3:Nuser
- %timestamp_tx = [est(u,:).timestamp_tx];
- %timestamp_tx = timestamp_tx - 4.476e5;
- framestamp_tx = [est(u,:).framestamp_tx];
- err_ind = [est(u,:).crc_status];
- fer = sum(reshape(err_ind,100,[]),1);
-
- plot(framestamp_tx(1:100:end),fer,plot_style{u});
- hold on
- % plot(framestamp_tx(err_ind),mean(rx_rssi_dBm(:,err_ind),1),'rx');
-
-end
-hold off
-xlabel('Frame')
-ylabel('FER')
-%xlim([min(framestamp_is),max(framestamp_is)])
-%xlim([framestamp_is(max_start),framestamp_is(max_start+max_length)]);
-legend('User 1','User 2','User 3','User 4')
-
-saveas(h_fig, 'fer_time.eps', 'psc2');
-
-%% plot the maps
-for u = 3:Nuser;
-
- lat = [gps_data(u,:).latitude];
- lon = [gps_data(u,:).longitude];
-
- %%
- rx_rssi_dBm = cat(3,est(u,:).rx_rssi_dBm);
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,mean(squeeze(rx_rssi_dBm(1,:,1:100:end)),1));
- title('Rx RSSI (dBm)')
- saveas(h_fig,sprintf('rx_rssi_term%d.jpg',u))
-
- %%
- rx_snr = cat(3,est(u,:).rx_power) - cat(3,est(u,:).n0_power);
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,mean(squeeze(rx_snr(1,:,1:100:end)),1));
- title('Rx SNR (dB)')
- saveas(h_fig,sprintf('rx_snr_term%d.jpg',u))
-
- %%
- % err_ind = [0 diff([est.pdu_errors])];
- % err_ind(err_ind<0) = 0;
- % err_ind(err_ind>1) = 1;
- % err_100 = sum(reshape(err_ind,100,[]),1);
- err_ind_all = [est(u,:).crc_status];
- err_100 = sum(reshape(err_ind_all,100,[]),1);
-
- h_fig = figure;
- plot_gps_coordinates_sophia(mm,lon,lat,err_100(1:end));
- title('Rx FER (%)')
- saveas(h_fig,sprintf('rx_fer_term%d.jpg',u))
-end
\ No newline at end of file
diff --git a/openair1/EMOS/MATLAB/top_plot_data_quick.m b/openair1/EMOS/MATLAB/top_plot_data_quick.m
deleted file mode 100755
index c9dd6460ac..0000000000
--- a/openair1/EMOS/MATLAB/top_plot_data_quick.m
+++ /dev/null
@@ -1,64 +0,0 @@
-% Skript: top_eval_data_quick_plot.m:
-%
-% This script visualizes the meatadata prevoiusly read with
-% top_eval_data_quick.
-%
-%
-%----------------------------------------------------------------------%
-% %
-% Author: Florian Kaltenberger %
-% Created: 21/12/2007 by FK %
-% Last modification: 21/12/2007 by FK %
-% Organization: Institut Eurecom %
-% 2229 Route des Cretes %
-% B.P. 193 %
-% 06904 Sophia Antipolis Cedex, France %
-% %
-%----------------------------------------------------------------------%
-
-clear all
-close all
-
-addpath('/homes/kaltenbe/Devel/openair1/EMOS/MATLAB/')
-%mm = imread('E:\2004_fd0006_250_c_0485.tif');
-mm = imread('/extras/kaltenbe/EMOS/bellaterra_north.jpg');
-cd('/extras/kaltenbe/EMOS/data/20081023_CHORIST_BARCELONA/Campus2/');
-
-for term = 3 %1:4;
-
- filename = sprintf('data_term%d.mat',term);
- if ~exist(filename,'file')
- continue
- end
- load(filename);
-
- lat = [gps_data.latitude];
- lon = [gps_data.longitude];
-
- %%
- rx_rssi_dBm = cat(3,est.rx_rssi_dBm);
- h_fig = figure;
- plot_gps_coordinates_bellaterra(mm,lon,lat,mean(rx_rssi_dBm(1,:,1:100:end),2));
- title('Rx RSSI (dBm)')
- saveas(h_fig,sprintf('rx_rssi_term%d.jpg',term))
-
- %%
- rx_snr = cat(3,est.rx_power_dB) - cat(3,est.n0_power_dB);
- h_fig = figure;
- plot_gps_coordinates_bellaterra(mm,lon,lat,mean(rx_snr(1,:,1:100:end),2));
- title('Rx SNR (dB)')
- saveas(h_fig,sprintf('rx_snr_term%d.jpg',term))
-
- %%
- % err_ind = [0 diff([est.pdu_errors])];
- % err_ind(err_ind<0) = 0;
- % err_ind(err_ind>1) = 1;
- % err_100 = sum(reshape(err_ind,100,[]),1);
- err_ind_all = [est.crc_status];
- err_100 = sum(reshape(err_ind_all,100,[]),1);
-
- h_fig = figure;
- plot_gps_coordinates_bellaterra(mm,lon,lat,err_100(1:end));
- title('Rx FER (%)')
- saveas(h_fig,sprintf('rx_fer_term%d.jpg',term))
-end
\ No newline at end of file
diff --git a/openair1/EMOS/SIM/COPYING b/openair1/EMOS/SIM/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/SIM/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/SIM/Makefile b/openair1/EMOS/SIM/Makefile
deleted file mode 100755
index ff1e2c4718..0000000000
--- a/openair1/EMOS/SIM/Makefile
+++ /dev/null
@@ -1,69 +0,0 @@
-include $(OPENAIR_HOME)/common/utils/Makefile.inc
-
-TOP_DIR =../..
-PHY_DIR =../../PHY
-PHY_INIT_DIR =$(PHY_DIR)/INIT
-PHY_MODULATION_DIR =$(PHY_DIR)/MODULATION
-PHY_CODING_DIR =$(PHY_DIR)/CODING
-PHY_ESTIMATION_DIR =$(PHY_DIR)/ESTIMATION
-PHY_CONFIG_DIR =$(PHY_DIR)/CONFIG
-PHY_TOOLS_DIR =$(PHY_DIR)/TOOLS
-PHY_TRANSPORT_DIR =$(PHY_DIR)/TRANSPORT
-SIM_TOOLS_DIR =../../SIMULATION/TOOLS
-PHY_MAC_INTERFACE_DIR =../MAC_INTERFACE
-SCHED_DIR =../SCHED
-
-
-CFLAGS += -DEMOS -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DNB_ANTENNAS_TXRX=2 -DMAX_MODULES=1 -DPHY_CONTEXT=1 -I/usr/realtime/include/
-#-DICC
-
-ifdef DEBUGPHY
-CFLAGS += -DDEBUG_PHY
-endif
-
-
-# PHY Initialization routines
-PHY_OBJS = $(PHY_INIT_DIR)/init.o
-
-# PHY Modulation routines
-PHY_OBJS += $(PHY_MODULATION_DIR)/ofdm_mod.o
-
-# PHY Coding routines
-PHY_OBJS += $(PHY_CODING_DIR)/ccoding_byte.o $(PHY_CODING_DIR)/crc_byte.o $(PHY_CODING_DIR)/viterbi.o
-
-# PHY Transport routines
-PHY_OBJS += $(PHY_TRANSPORT_DIR)/chsch.o $(PHY_TRANSPORT_DIR)/chbch.o $(PHY_TRANSPORT_DIR)/sch.o $(PHY_TRANSPORT_DIR)/sach.o $(PHY_TRANSPORT_DIR)/mrbch.o
-
-# PHY Estimation routines
-PHY_OBJS += $(PHY_ESTIMATION_DIR)/synch_time.o $(PHY_ESTIMATION_DIR)/channel_estimation.o $(PHY_ESTIMATION_DIR)/channel_estimation_emos.o
-
-# Utility routines
-UTIL_OBJS +=$(PHY_TOOLS_DIR)/dB_routines.o $(PHY_TOOLS_DIR)/file_output.o $(PHY_TOOLS_DIR)/memory_routines.o $(PHY_TOOLS_DIR)/signal_energy.o $(PHY_TOOLS_DIR)/sqrt.o $(PHY_TOOLS_DIR)/log2_approx.o $(SIM_TOOLS_DIR)/random_channel.o $(SIM_TOOLS_DIR)/rangen_double.o $(PHY_TOOLS_DIR)/fft.o $(PHY_TOOLS_DIR)/cmult_sv.o $(PHY_TOOLS_DIR)/cmult_vv.o $(PHY_TOOLS_DIR)/phase_comp.o $(TOP_DIR)/PHY/TOOLS/cmult_vvh.o $(TOP_DIR)/PHY/TOOLS/cmult_mm.o $(TOP_DIR)/PHY/TOOLS/cadd_sv.o
-
-# CONFIG routines
-CONFIG_OBJS +=$(PHY_CONFIG_DIR)/openair_configure.o $(PHY_CONFIG_DIR)/openair_readconfigfile.o
-
-OBJ = $(PHY_OBJS) $(UTIL_OBJS) $(CONFIG_OBJS)
-
-$(OBJ) : %.o : %.c
- $(CC) -c $(CFLAGS) -I$(TOP_DIR) -o $@ $<
-
-emos_sim : $(OBJ) emos_sim.c
- $(CC) emos_sim.c -I$(TOP_DIR) -o emos_sim $(CFLAGS) $(PHY_OBJS) $(UTIL_OBJS) $(CONFIG_OBJS) -lm
-
-all: emos_sim
-
-clean:
- rm -f emos_sim
- rm -f *.o
- rm -f $(PHY_DIR)/*.o
- rm -f $(PHY_INIT_DIR)/*.o
- rm -f $(PHY_MODULATION_DIR)/*.o
- rm -f $(PHY_CODING_DIR)/*.o
- rm -f $(PHY_ESTIMATION_DIR)/*.o
- rm -f $(PHY_CONFIG_DIR)/*.o
- rm -f $(PHY_TOOLS_DIR)/*.o
- rm -f $(PHY_TRANSPORT_DIR)/*.o
- rm -f $(PHY_MAC_INTERFACE_DIR)/*.o
- rm -f $(SCHED_DIR)/*.o
-
diff --git a/openair1/EMOS/SIM/emos_sim.c b/openair1/EMOS/SIM/emos_sim.c
deleted file mode 100644
index 81e55f9d17..0000000000
--- a/openair1/EMOS/SIM/emos_sim.c
+++ /dev/null
@@ -1,408 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-// EMOS simulator for testing of the routines to be used in the real-time
-// acquisition mode.
-//
-// Leonardo S. Cardoso 20070808 - sampaio@eurecom.fr
-//
-
-#include "PHY/types.h"
-#include "PHY/defs.h"
-#include "PHY/vars.h"
-#include "PHY/CONFIG/vars.h"
-#include "MAC_INTERFACE/vars.h"
-#include "PHY/TOOLS/defs.h"
-
-//#include "dlc_engine.h"
-//#include "MAC_defs.h"
-
-#include
-//#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-// Leosam 08/08: What are these?
-#define BW 5.0
-#define Td 1.0
-
-void help ();
-void error ();
-
-// Leosam 08/08: What are the arguments?
-int
-main (int argc, char **argv)
-{
-
- // Command line parsing
- int input_val = 1000; // Value serving as an input relatad to the SNR
- int max_num_ofdm_sym = 64; // Index of the last frame for the channel estimation
- int be_verbose = 0; // Operate in verbose mode
- int index;
- int c;
- unsigned int rx_energy[NB_ANTENNAS], n0_energy[NB_ANTENNAS];
-
- if (argc == 1) {
- error ();
- exit (-1);
- }
-
- while ((c = getopt (argc, argv, "hVv:n:")) != -1) {
- switch (c) {
- case 'h':
- help ();
- exit (1);
-
- case 'V':
- be_verbose = 1;
- break;
-
- case 'v':
- input_val = atoi (optarg);
- break;
- return 1;
-
- case 'n':
- max_num_ofdm_sym = atoi (optarg);
- break;
- return 1;
-
- default:
- error ();
- exit (-1);
- }
- }
-
- //
- // Initialization stuff
- //
-
- int i, ii, j, ret, delay, l;
- short seed[3];
-
- // Leosam 08/08: What is this amps?
- double amps[8] = { 1.0, .8, .4, .2, .1, .05, .025, .01 };
- struct complex ch[NB_ANTENNAS * NB_ANTENNAS][10 + (int) (1 + 2 * BW * Td)];
- struct complex rx_tmp, tx, n, phase;
-
- char *chbch_pdu;
- int chbch_size;
- int extension;
- unsigned char dummy_mac_pdu[120];
-
-#ifdef USER_MODE
- char fname[40], vname[40];
-#endif // USER_MODE
-
- if (be_verbose)
- printf ("Allocating memory for PHY_VARS\n");
-
- // Memory allocation for PHY and MAC structures
- PHY_vars = malloc (sizeof (PHY_VARS));
- PHY_config = malloc (sizeof (PHY_CONFIG));
- mac_xface = malloc (sizeof (MAC_xface));
-
- // Loading of the configuration data
- if ((config = fopen ("config.cfg", "r")) == NULL) { // this can be configured
- if (be_verbose)
- printf ("[Main USER] The openair configuration file could not be found!\n");
-
- exit (0);
- }
-
- if ((scenario = fopen ("scenario.scn", "r")) == NULL) {
- if (be_verbose)
- printf ("[Main USER] The openair scenario file could not be found!\n");
-
- exit (0);
- }
-
- if (be_verbose)
- printf ("Opened configuration files\n");
-
- reconfigure_MACPHY (scenario);
-
- if (be_verbose)
- dump_config ();
-
- // Leosam 08/08: This is repeated bellow. Is it necessary?
- mac_xface->is_cluster_head = 0;
-
- // Initialize the PHY and MAC variables
- phy_init (NB_ANTENNAS_TX);
-
- if (be_verbose)
- printf ("Initialized PHY variables\n");
-
-
- // Fill MAC PDU buffer for CHBCH
- seed[0] = (short) time (NULL);
- seed[1] = (short) time (NULL);
- seed[2] = (short) time (NULL);
- seed48 (&seed[0]);
-
- randominit ();
-
- /*
- * for (i=0;imac_tch->bch_tx[0].size-4;i++) {
- * mac_xface->mac_tch->bch_tx[0].data[i] = i;//(u8)lrand48();
- * }
- *
- *
- * printf("Filled CHBCH PDU with random data\n");
- *
- * // Generate one CHBCH
- * phy_generate_chbch(0);
- *
- */
-
- //
- // Preparation for the TX procedure
- //
-
- // Creation of the CHBCH
- chbch_size = (NUMBER_OF_CARRIERS_PER_GROUP * (NUMBER_OF_CHBCH_SYMBOLS) * 16) >> 3;
-
- if (be_verbose)
- printf ("chbch_size = %d\n", chbch_size);
-
- chbch_pdu = malloc (chbch_size);
-
- for (i = 0; i < chbch_size - 4; i++) {
- chbch_pdu[i] = i;
- }
-
- if (be_verbose)
- printf ("Filled CHBCH PDU (%d bytes) with data\n", chbch_size);
-
- // Leosam 08/08: O.o
- delay = 1032;
- // delay = 0;
-
- // Generation of the CHBCH
- phy_generate_chbch (0, 1, NB_ANTENNAS_TX, chbch_pdu);
-
- // Generation of the pilot symbols
- for (i = 16; i < max_num_ofdm_sym; i++) {
- phy_generate_sch (0, i, 0xFFFF, 1, NB_ANTENNAS_TX);
- }
-
- mac_xface->is_cluster_head = 0;
-
- if (be_verbose) {
- for (ii=0; iitx_vars[ii].TX_DMA_BUFFER,
- NUMBER_OF_SYMBOLS_PER_FRAME * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES, 1, 1);
- }
- }
-
-
- // generate channels
- if (be_verbose)
- printf ("Generating MIMO Channels\n");
-
- phase.r = 0;
- phase.i = 0;
-
- printf("Phase pointer %0x\n",&phase);
-
- for (i = 0; i < NB_ANTENNAS; i++) {
- for (j = 0; j < NB_ANTENNAS; j++) {
- random_channel (amps, Td, 8, BW, ch[j + (i * NB_ANTENNAS)],0.0,&phase);
- }
- }
-
- if (be_verbose)
- printf ("chbch_pdu %x (%d)\n", PHY_vars->chbch_data[0].demod_pdu, chbch_size);
-
- if (be_verbose) {
- for (l = 0; l < (1 + 2 * BW * Td); l++) {
- printf ("(%f,%f)\n", ch[0][l]);
- }
- }
-
- //
- // TX procedure
- //
-
- // Transmission
- //
- //////////////////////////
-
- // Foreach symbol
- for (i = 0; i < (max_num_ofdm_sym) * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES; i++) {
- // Foreach RX antenna
- for (ii = 0; ii < NB_ANTENNAS; ii++) {
- rx_tmp.r = 0;
- rx_tmp.i = 0;
- n.r = gaussdouble (0.0, 10.0);
- n.i = gaussdouble (0.0, 10.0);
-
- // Foreach TX antenna
- for (j = 0; j < NB_ANTENNAS; j++) {
-
- // Foreach symbol
- for (l = 0; l < (1 + 2 * BW * Td); l++) {
-
- tx.r = (double) (((s16 *) & PHY_vars->tx_vars[j].
- TX_DMA_BUFFER[0 *
- OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES])
- [2 * (i - l)]) / sqrt (1.0 * input_val);
- tx.i = (double) (((s16 *) & PHY_vars->tx_vars[j].
- TX_DMA_BUFFER[0 *
- OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES])
- [1 +
- (2 * (i - l))]) / sqrt (1.0 * input_val);
-
- rx_tmp.r +=
- (tx.r * ch[j + (ii * NB_ANTENNAS)][l].r) -
- (tx.i * ch[j + (ii * NB_ANTENNAS)][l].i);
- rx_tmp.i +=
- (tx.i * ch[j + (ii * NB_ANTENNAS)][l].r) +
- (tx.r * ch[j + (ii * NB_ANTENNAS)][l].i);
-
- }
- }
-
- ((s16 *) & PHY_vars->rx_vars[ii].
- RX_DMA_BUFFER[delay + (0 * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES)])[2 * i] =
- (short) (rx_tmp.r + n.r);
- ((s16 *) & PHY_vars->rx_vars[ii].
- RX_DMA_BUFFER[delay + (0 * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES)])[1 +
- (2 * i)] =
- (short) (rx_tmp.i + n.i);
- }
- }
-
- if (be_verbose) {
- for (ii=0; iirx_vars[ii].RX_DMA_BUFFER,
- NUMBER_OF_SYMBOLS_PER_FRAME * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES, 1, 1);
- }
- }
-
- //
- // RX procedure
- //
-
- if (be_verbose)
- printf ("Starting RX\n");
-
- // Sync
- phy_synch_time (PHY_vars->rx_vars[0].RX_DMA_BUFFER,
- &sync_pos,
- FRAME_LENGTH_COMPLEX_SAMPLES,
- 768,
- CHSCH,
- 0);
-
- // Forcing sync to 0 since were running offline
- if (be_verbose)
- msg ("sync_pos = %d\n", sync_pos);
-
- PHY_vars->rx_vars[0].offset = 0; //sync_pos;
-
- // estamte the signal and noise energy
- for (ii=0; ii < NB_ANTENNAS; ii++) {
- rx_energy[ii] = signal_energy((int *)&PHY_vars->rx_vars[ii].RX_DMA_BUFFER[PHY_vars->rx_vars[0].offset+CYCLIC_PREFIX_LENGTH],
- OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
- n0_energy[ii] = signal_energy((int *)&PHY_vars->rx_vars[ii].RX_DMA_BUFFER[PHY_vars->rx_vars[0].offset+CYCLIC_PREFIX_LENGTH +
- (NUMBER_OF_CHSCH_SYMBOLS+NUMBER_OF_CHBCH_SYMBOLS+1) * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES],
- OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
- //msg("CYCLIC_PREFIX_LENGTH=%d, NUMBER_OF_CHSCH_SYMBOLS=%d, NUMBER_OF_CHBCH_SYMBOLS=%d, OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES=%d\n", CYCLIC_PREFIX_LENGTH, NUMBER_OF_CHSCH_SYMBOLS, NUMBER_OF_CHBCH_SYMBOLS, OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
- msg("symbol = %d\n", PHY_vars->rx_vars[ii].RX_DMA_BUFFER[PHY_vars->rx_vars[0].offset+CYCLIC_PREFIX_LENGTH +
- (NUMBER_OF_CHSCH_SYMBOLS+NUMBER_OF_CHBCH_SYMBOLS) * OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES]);
- msg("SNR Ant %d = %d / %d \n", ii, rx_energy[ii], n0_energy[ii]);
- }
-
- // CHBCH channel estimation
- phy_channel_estimation_top(PHY_vars->rx_vars[0].offset,0,0,0,NB_ANTENNAS,0);
- //phy_channel_estimation_top (PHY_vars->rx_vars[0].offset, 0, 0, 0);
-
- phy_decode_chbch (0, &dummy_mac_pdu[0], NB_ANTENNAS, NB_ANTENNAS_TX, 120);
-
- if (be_verbose) {
- for (i = 0; i < chbch_size; i++) {
- msg ("Data %x : %x\n", i, PHY_vars->chbch_data[0].demod_pdu[i]);
- }
- }
-
- printf("PERROR_SHIFT: %d\n", PERROR_SHIFT);
-
- //
- // Channel estimation procedure
- //
- // for (i = 0; i < max_num_ofdm_sym; i++)
- // {
- // phy_channel_estimation_top(PHY_vars->rx_vars[0].offset,i,0,0,1);
- // }
-
- phy_channel_est_emos(16, 16, max_num_ofdm_sym-1, TRUE, 0);
-
- phy_cleanup ();
-
- if (be_verbose)
- printf ("Exiting\n");
-
-}
-
-void
-help ()
-{
- printf ("Usage: emos_sim [OPTIONS] [ARGUMENTS]\n");
- printf ("Simulates the transmission of frames using the EMOS system\n\n");
- printf ("-h shows this help\n");
- printf ("-V be verbose\n");
- printf ("-v value related to SNR\n");
- printf ("-n number of OFDM symbols to average (1~48)\n");
- printf ("\nLeonardo S. Cardoso \n");
-}
-
-void
-error ()
-{
- printf ("Wrong option or argument. Try -h to see the valid options.\n");
-}
diff --git a/openair1/EMOS/UTIL/COPYING b/openair1/EMOS/UTIL/COPYING
deleted file mode 100644
index 818433ecc0..0000000000
--- a/openair1/EMOS/UTIL/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/openair1/EMOS/UTIL/split_emos_files.c b/openair1/EMOS/UTIL/split_emos_files.c
deleted file mode 100644
index 2dd3fd001b..0000000000
--- a/openair1/EMOS/UTIL/split_emos_files.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- OpenAirInterface
- Copyright(c) 1999 - 2014 Eurecom
-
- OpenAirInterface is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
-
- OpenAirInterface is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with OpenAirInterface.The full GNU General Public License is
- included in this distribution in the file called "COPYING". If not,
- see .
-
- Contact Information
- OpenAirInterface Admin: openair_admin@eurecom.fr
- OpenAirInterface Tech : openair_tech@eurecom.fr
- OpenAirInterface Dev : openair4g-devel@eurecom.fr
-
- Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include
-#include
-#include
-
-#include "phy_procedures_emos.h"
-
-fifo_dump_emos *fifo_output = NULL;
-char *fifo_buffer = NULL;
-char *fifo_ptr = NULL;
-char dumpfile_dir[1024] = "/tmp/";
-FILE *dumpfile_id = NULL;
-
-int open_dumpfile()
-{
- char dumpfile_name[1024];
- char temp_label[1024];
-
- // create the dumpfile buffer
- // allocate memory for NO_FRAMES_DISK channes estimations
- fifo_buffer = malloc(NO_ESTIMATES_DISK*CHANNEL_BUFFER_SIZE);
- fifo_ptr = fifo_buffer;
-
- if(fifo_buffer == NULL) {
- printf( "Could not allocate memory for fifo2file_buffer\n");
- return(-1);
- }
-
- // open the dumpfile
- time_t starttime_tmp;
- struct tm starttime;
-
- time(&starttime_tmp);
- localtime_r(&starttime_tmp,&starttime);
- snprintf(dumpfile_name,1024,"%sdata_term%d_idx%d_%d%0.2d%0.2d_%0.2d%0.2d%0.2d.EMOS",dumpfile_dir,terminal_idx,file_index,1900+starttime.tm_year, starttime.tm_mon+1, starttime.tm_mday,
- starttime.tm_hour, starttime.tm_min, starttime.tm_sec);
-
- dumpfile_id = fopen(dumpfile_name,"w");
-
- if (dumpfile_id == NULL) {
- printf("Error opening dumpfile %s\n", dumpfile_name);
- return(-1);
- } else {
- printf("Openend dumpfile %s\n", dumpfile_name);
- }
-
- return 0;
-}
-
-
-
-int main(int argc, char *argv[])
-{
-
- FILE *infile = NULL;
- FILE *outfile = NULL;
-
- char* infile_name = argv[1];
- char outfile_name[1024];
-
- fifo_dump_emos frame_data;
- struct gps_fix_t gps_data;
-
- int frame_read = 0;
- int rec_frame_counter = 0;
-
- // open the file
- infile = fopen(infile_name,"r");
-
- if (infile == NULL) {
- fprintf(stderr,"opening of file failes\n");
- return -1;
- }
-
- while ~feof(infile) {
-
- // read frame
- fread(&frame_data, sizeof(char), sizeof(fifo_dump_emos), infile);
- frame_read++;
-
- //read GPS data
- if (frame_read % NO_ESTIMATES_DISK == 0 )
- fread(&gps_data, sizeof(char), sizeof(struct gps_fix_t), infile);
-
- rec_frame_counter = frame_data->PHY_measurements.frame_tx[0];
-
- if (rec_frame_counter % REC_FRAMES_MAX == 0) {
-
- // release the buffer
- free(fifo_buffer);
- fifo_buffer = NULL;
- fifo_output = NULL;
- fifo_ptr = NULL;
-
- // close the dumpfile
- fclose(dumpfile_id);
- dumpfile_id = NULL;
-
- // open another dumpfile
- if (open_dumpfile() != 0) {
- printf("Error opening dumpfile\n");
- return(-1);
- }
- }
-
-
- if (rec_frame_counter % REC_FRAMES_MAX < REC_FRAMES_PER_FILE)
- record_multi = REC_ON;
- else
- record_multi = REC_OFF;
-
- if (record_multi == REC_ON) {
-
- // store data to disk
- if (fwrite(&frame_data, sizeof(char), CHANNEL_BUFFER_SIZE, dumpfile_id) != CHANNEL_BUFFER_SIZE) {
- printf("Error writing to dumpfile, stopping recording\n");
- return(-1);
- }
-
- // write GPS data to disk
- if (rec_frame_counter%NO_ESTIMATES_DISK==0)
- if (gps_data) {
- if (fwrite(&(gps_data->fix), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- printf("Error writing to dumpfile, stopping recording\n");
- return(-1);
- }
- } else {
- printf("WARNING: No GPS data available, storing dummy packet\n");
-
- if (fwrite(&(dummy_gps_data), sizeof(char), sizeof(struct gps_fix_t), dumpfile_id) != sizeof(struct gps_fix_t)) {
- printf("Error writing to dumpfile, stopping recording\n");
- return(-1);
- }
- }
- }
- }
-}
-