Delete luci directory
@ -1,64 +0,0 @@
|
||||
# Contributing Guidelines
|
||||
|
||||
## Translations
|
||||
|
||||
Use [Weblate](https://hosted.weblate.org/engage/openwrt/?utm_source=widget) instead of direct editing of the `*.po` files.
|
||||
|
||||
## Patches and Pull requests:
|
||||
|
||||
If you want to contribute a change to LuCI, please either send a patch using git send-email
|
||||
or open a "pull request" against the openwrt/luci repository.
|
||||
|
||||
Regardless of whether you send a patch or open a pull request, please try to follow these rules:
|
||||
|
||||
* Have a useful subject prefixed with the component name
|
||||
(E.g.: "luci-mod-admin-full: fix wifi channel selection on multiple STA networks")
|
||||
* Shortly explain the changes made and - if applicable - the reasoning behind them
|
||||
* Commit message of each commit should include a Signed-off-by line
|
||||
(See <https://openwrt.org/submitting-patches#sign_your_work>)
|
||||
|
||||
In case you like to send patches by mail, please use the [OpenWrt Development List](https://lists.openwrt.org/mailman/listinfo/openwrt-devel), although patches to luci are preferred in [the luci repo on GitHub](https://github.com/openwrt/luci/pulls).
|
||||
|
||||
If you send via the OpenWrt list, include a `[luci]` tag in your subject line.
|
||||
For general information on patch submission, follow the [OpenWrt patch submission guideline](https://openwrt.org/submitting-patches).
|
||||
|
||||
## Advice on pull requests:
|
||||
|
||||
Pull requests are the easiest way to contribute changes to git repos at Github. They are the preferred contribution method, as they offer a nice way for commenting and amending the proposed changes.
|
||||
|
||||
* You need a local "fork" of the Github repo.
|
||||
* Use a "feature branch" for your changes. That separates the changes in the pull request from your other changes and makes it easy to edit/amend commits in the pull request. Workflow using `feature_x` as the example:
|
||||
- Update your local git fork to the tip (of the master, usually)
|
||||
- Create the feature branch with `git checkout -b feature_x`
|
||||
- Edit changes and commit them locally
|
||||
- Push them to your Github fork by `git push -u origin feature_x`. That creates the `feature_x` branch at your Github fork and sets it as the remote of this branch
|
||||
- When you now visit Github, you should see a proposal to create a pull request
|
||||
|
||||
* If you later need to add new commits to the pull request, you can simply commit the changes to the local branch and then use `git push` to automatically update the pull request.
|
||||
|
||||
* If you need to change something in the existing pull request (e.g. to add a missing signed-off-by line to the commit message), you can use `git push -f` to overwrite the original commits. That is easy and safe when using a feature branch. Example workflow:
|
||||
- Checkout the feature branch by `git checkout feature_x`
|
||||
- Edit changes and commit them locally. If you are just updating the commit message in the last commit, you can use `git commit --amend` to do that
|
||||
- If you added several new commits or made other changes that require cleaning up, you can use `git rebase -i HEAD~X` (X = number of commits to edit) to possibly squash some commits
|
||||
- Push the changed commits to Github with `git push -f` to overwrite the original commits in the "feature_x" branch with the new ones. The pull request gets automatically updated
|
||||
|
||||
## If you have commit access:
|
||||
|
||||
* Do NOT use `git push --force`.
|
||||
* Use Pull Requests if you are unsure and to suggest changes to other developers.
|
||||
|
||||
## Gaining commit access:
|
||||
|
||||
* Commit access will be granted to responsible contributors who have made
|
||||
useful pull requests and / or feedback or patches to this repository or
|
||||
OpenWrt in general. Please include your request for commit access in your
|
||||
next pull request or ticket.
|
||||
|
||||
## Release Branches:
|
||||
|
||||
* Branches named `openwrt-xx.yy` (e.g. `openwrt-18.06`) are release branches.
|
||||
* These branches are built with the respective OpenWrt release and are created
|
||||
during the release stabilisation phase.
|
||||
* Please ONLY cherry-pick or commit security and bug-fixes to these branches.
|
||||
* Do NOT add new packages and do NOT do major upgrades of packages here.
|
||||
* If you are unsure if your change is suitable, please use a pull request.
|
201
luci/LICENSE
@ -1,201 +0,0 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
@ -1,9 +0,0 @@
|
||||
LuCI - Lua Configuration Interface
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
|
||||
Licensed under the Apache License, Version 2.0.
|
||||
|
||||
Contains code from:
|
||||
coxpcall - Copyright 2005 - Kepler Project (www.keplerproject.org)
|
||||
ltn12/luasocket - Copyright 2004-2007 Diego Nehab
|
||||
axTLS - Copyright 2008 Cameron Rich
|
@ -1,45 +0,0 @@
|
||||
# OpenWrt luci feed
|
||||
|
||||
[](https://hosted.weblate.org/engage/openwrt/?utm_source=widget)
|
||||
|
||||
## Description
|
||||
|
||||
This is the OpenWrt "luci"-feed containing LuCI - OpenWrt Configuration Interface.
|
||||
|
||||
## Usage
|
||||
|
||||
This feed is enabled by default. Your feeds.conf.default (or feeds.conf) should contain a line like:
|
||||
```
|
||||
src-git luci https://github.com/openwrt/luci.git
|
||||
```
|
||||
|
||||
To install all its package definitions, run:
|
||||
```
|
||||
./scripts/feeds update luci
|
||||
./scripts/feeds install -a -p luci
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
You can browse the generated API documentation directly on Github.
|
||||
|
||||
- [Server side Lua APIs](http://openwrt.github.io/luci/api/index.html)
|
||||
- [Client side JavaScript APIs](http://openwrt.github.io/luci/jsapi/index.html)
|
||||
|
||||
## Development
|
||||
|
||||
Documentation for developing and extending LuCI can be found [in the Wiki](https://github.com/openwrt/luci/wiki)
|
||||
|
||||
## License
|
||||
|
||||
See [LICENSE](LICENSE) file.
|
||||
|
||||
## Package Guidelines
|
||||
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) file.
|
||||
|
||||
## Translation status
|
||||
|
||||
Use [Weblate](https://hosted.weblate.org/engage/openwrt/?utm_source=widget) instead of direct editing of the `*.po` files.
|
||||
|
||||
[](https://hosted.weblate.org/engage/openwrt/?utm_source=widget)
|
@ -1,674 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
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.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
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:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
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
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
@ -1,19 +0,0 @@
|
||||
#
|
||||
# Copyright 2021-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
# Licensed to the GNU General Public License v3.0.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI JS Support for 3ginfo-lite
|
||||
LUCI_DESCRIPTION:=LuCI JS interface for the 3ginfo-lite. The package allows you to view the parameters of the mobile internet connection.
|
||||
LUCI_DEPENDS:=+sms-tool +comgt +kmod-usb-serial-option
|
||||
|
||||
PKG_NAME:=luci-app-3ginfo-lite
|
||||
PKG_VERSION:=1.0.74.20240827
|
||||
PKG_MAINTAINER:=Rafał Wabik <4Rafal@gmail.com>
|
||||
|
||||
include ../../luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 8.3 KiB |
@ -1,83 +0,0 @@
|
||||
'use strict';
|
||||
'require form';
|
||||
'require fs';
|
||||
'require view';
|
||||
'require uci';
|
||||
'require ui';
|
||||
'require tools.widgets as widgets'
|
||||
|
||||
/*
|
||||
Copyright 2021-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
Licensed to the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
return view.extend({
|
||||
load: function() {
|
||||
return fs.list('/dev').then(function(devs) {
|
||||
return devs.filter(function(dev) {
|
||||
return dev.name.match(/^ttyUSB/) || dev.name.match(/^cdc-wdm/) || dev.name.match(/^ttyACM/) || dev.name.match(/^mhi_/) || dev.name.match(/^wwan/);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
render: function(devs) {
|
||||
var m, s, o;
|
||||
m = new form.Map('3ginfo', _('Configuration 3ginfo-lite'), _('Configuration panel for the 3ginfo-lite application.'));
|
||||
|
||||
s = m.section(form.TypedSection, '3ginfo', '', null);
|
||||
s.anonymous = true;
|
||||
|
||||
/* Old config
|
||||
o = s.option(widgets.DeviceSelect, 'network', _('Interface'),
|
||||
_('Network interface for Internet access.')
|
||||
);
|
||||
o.noaliases = false;
|
||||
o.default = 'wan';
|
||||
o.rmempty = false;
|
||||
*/
|
||||
|
||||
o = s.option(widgets.NetworkSelect, 'network', _('Interface'),
|
||||
_('Network interface for Internet access.')
|
||||
);
|
||||
o.exclude = s.section;
|
||||
o.nocreate = true;
|
||||
o.rmempty = false;
|
||||
o.default = 'wan';
|
||||
|
||||
o = s.option(form.Value, 'device',
|
||||
_('IP adress / Port for communication with the modem'),
|
||||
_("Select the appropriate settings. <br /> \
|
||||
<br />Traditional modem. <br /> \
|
||||
Select one of the available ttyUSBX ports.<br /> \
|
||||
<br />HiLink modem. <br /> \
|
||||
Enter the IP address 192.168.X.X under which the modem is available."));
|
||||
devs.sort((a, b) => a.name > b.name);
|
||||
devs.forEach(dev => o.value('/dev/' + dev.name));
|
||||
o.placeholder = _('Please select a port');
|
||||
o.rmempty = true;
|
||||
|
||||
s = m.section(form.TypedSection, '3ginfo', null);
|
||||
s.anonymous = true;
|
||||
s.addremove = false;
|
||||
|
||||
s.tab('bts1', _('BTS search settings'));
|
||||
s.anonymous = true;
|
||||
|
||||
o = s.taboption('bts1', form.DummyValue, '_dummy');
|
||||
o.rawhtml = true;
|
||||
o.default = '<div class="cbi-section-descr">' +
|
||||
_('Hint: To set up a BTS search engine, all you have to do is select the dedicated website for your location.') +
|
||||
'</div>';
|
||||
|
||||
o = s.taboption('bts1',form.ListValue, 'website', _('Website to search for BTS'),
|
||||
_('Select a website for searching.')
|
||||
);
|
||||
o.value('http://www.btsearch.pl/szukaj.php?mode=std&search=', _('btsearch.pl'));
|
||||
o.value('https://lteitaly.it/internal/map.php#bts=', _('lteitaly.it'));
|
||||
o.default = 'http://www.btsearch.pl/szukaj.php?mode=std&search=';
|
||||
o.modalonly = true;
|
||||
|
||||
return m.render();
|
||||
}
|
||||
});
|
@ -1,182 +0,0 @@
|
||||
'use strict';
|
||||
'require view';
|
||||
'require dom';
|
||||
'require fs';
|
||||
'require ui';
|
||||
'require uci';
|
||||
|
||||
/*
|
||||
Copyright 2021-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
Licensed to the GNU General Public License v3.0.
|
||||
*/
|
||||
|
||||
return view.extend({
|
||||
handleCommand: function(exec, args) {
|
||||
var buttons = document.querySelectorAll('.diag-action > .cbi-button');
|
||||
|
||||
for (var i = 0; i < buttons.length; i++)
|
||||
buttons[i].setAttribute('disabled', 'true');
|
||||
|
||||
return fs.exec(exec, args).then(function(res) {
|
||||
var out = document.querySelector('textarea');
|
||||
out.style.display = '';
|
||||
|
||||
dom.content(out, [ res.stdout || '', res.stderr || '' ]);
|
||||
fs.write('/tmp/debug_result.txt', [ res.stdout || '' ]);
|
||||
}).catch(function(err) {
|
||||
ui.addNotification(null, E('p', [ err ]))
|
||||
}).finally(function() {
|
||||
var viewbc = document.getElementById('clear');
|
||||
viewbc.style.display = '';
|
||||
var viewbd = document.getElementById('download');
|
||||
viewbd.style.display = '';
|
||||
|
||||
for (var i = 0; i < buttons.length; i++)
|
||||
buttons[i].removeAttribute('disabled');
|
||||
});
|
||||
},
|
||||
|
||||
handleUSB: function(ev, cmd) {
|
||||
return this.handleCommand('/bin/cat', ['/sys/kernel/debug/usb/devices']);
|
||||
},
|
||||
|
||||
handleTTY: function(ev, cmd) {
|
||||
return this.handleCommand('/bin/ls', ['/dev']);
|
||||
},
|
||||
|
||||
handleDBG: function(ev, cmd) {
|
||||
return this.handleCommand('/bin/sh', ['-x', '/usr/share/3ginfo-lite/3ginfo.sh']);
|
||||
},
|
||||
|
||||
handleClear: function(ev) {
|
||||
var out = document.getElementById('pre');
|
||||
out.style.display = 'none';
|
||||
var viewbc = document.getElementById('clear');
|
||||
viewbc.style.display = 'none';
|
||||
var viewbd = document.getElementById('download');
|
||||
viewbd.style.display = 'none';
|
||||
fs.write('/tmp/debug_result.txt', '');
|
||||
},
|
||||
|
||||
handleDownload: function(ev) {
|
||||
return L.resolveDefault(fs.read_direct('/tmp/debug_result.txt'), null).then(function (res) {
|
||||
if (res) {
|
||||
var link = E('a', {
|
||||
'download': 'debug_result.txt',
|
||||
'href': URL.createObjectURL(
|
||||
new Blob([ res ], { type: 'text/plain' })),
|
||||
});
|
||||
link.click();
|
||||
URL.revokeObjectURL(link.href);
|
||||
}
|
||||
}).catch(() => {
|
||||
ui.addNotification(null, E('p', {}, _('Download error') + ': ' + err.message));
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
load: function() {
|
||||
return L.resolveDefault(uci.load('luci'));
|
||||
},
|
||||
|
||||
render: function(res) {
|
||||
|
||||
var table = E('table', { 'class': 'table' }, [
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'style': 'overflow:initial' }, [
|
||||
E('label', { 'class': 'cbi-value-title' },
|
||||
_("USB debug information")
|
||||
),
|
||||
E('p'),
|
||||
E('label', { 'class': 'cbi-value-title' },
|
||||
_("<code>cat /sys/kernel/debug/usb/devices</code>.")
|
||||
),
|
||||
E('p'),
|
||||
E('span', { 'class': 'diag-action' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-action',
|
||||
'click': ui.createHandlerFn(this, 'handleUSB')
|
||||
}, [ _('Show devices') ])
|
||||
])
|
||||
]),
|
||||
|
||||
E('td', { 'class': 'td left', 'style': 'overflow:initial' }, [
|
||||
E('label', { 'class': 'cbi-value-title' },
|
||||
_("Check availability of ttyX ports.")
|
||||
),
|
||||
E('p'),
|
||||
E('label', { 'class': 'cbi-value-title' },
|
||||
_("<code>ls /dev</code>.")
|
||||
),
|
||||
E('p'),
|
||||
E('span', { 'class': 'diag-action' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-action',
|
||||
'click': ui.createHandlerFn(this, 'handleTTY')
|
||||
}, [ _('Show devices') ])
|
||||
])
|
||||
]),
|
||||
|
||||
E('td', { 'class': 'td left' }, [
|
||||
E('label', { 'class': 'cbi-value-title' },
|
||||
_("Check data read by the 3ginfo scripts.")
|
||||
),
|
||||
E('p'),
|
||||
E('label', { 'class': 'cbi-value-title' },
|
||||
_("<code>sh -x /usr/share/3ginfo-lite/3ginfo.sh</code>.")
|
||||
),
|
||||
E('p'),
|
||||
E('span', { 'class': 'diag-action' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-action',
|
||||
'click': ui.createHandlerFn(this, 'handleDBG')
|
||||
}, [ _('Debug') ])
|
||||
])
|
||||
]),
|
||||
])
|
||||
]);
|
||||
|
||||
|
||||
var info = _('More information about the 3ginfo on the %seko.one.pl forum%s.').format('<a href="https://eko.one.pl/?p=openwrt-3ginfo" target="_blank">', '</a>');
|
||||
|
||||
var view = E('div', { 'class': 'cbi-map'}, [
|
||||
E('h2', {}, [ _('Diagnostics') ]),
|
||||
E('div', { 'class': 'cbi-map-descr'}, _('Execution of various commands to check the availability of the modem and eliminate errors in the data collected by the scripts.') + '<br />' + info),
|
||||
table,
|
||||
E('hr'),
|
||||
E('div', {'class': 'cbi-section'}, [
|
||||
E('p'),
|
||||
E('textarea', {
|
||||
'id': 'pre',
|
||||
'style':'display:none; border: 1px solid var(--border-color-medium); border-radius: 5px; font-family: monospace; font-size:12px; white-space:pre; width: 100%; resize: none;',
|
||||
'readonly': true,
|
||||
'wrap': 'off',
|
||||
'rows': '25'
|
||||
}, []),
|
||||
E('p'),
|
||||
E('div', { 'class': 'right' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-remove',
|
||||
'id': 'clear',
|
||||
'style': 'display:none',
|
||||
'click': ui.createHandlerFn(this, 'handleClear')
|
||||
}, [ _('Clear') ]),
|
||||
'\xa0\xa0\xa0',
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-apply important',
|
||||
'id': 'download',
|
||||
'style': 'display:none',
|
||||
'click': ui.createHandlerFn(this, 'handleDownload')
|
||||
}, [ _('Download') ]),
|
||||
]),
|
||||
])
|
||||
]);
|
||||
|
||||
return view;
|
||||
},
|
||||
|
||||
handleSaveApply: null,
|
||||
handleSave: null,
|
||||
handleReset: null
|
||||
});
|
@ -1,154 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Information about 3G/4G/5G connection"
|
||||
msgstr "Informationen über die 3G/4G/5G-Verbindung"
|
||||
|
||||
msgid "More information about the 3ginfo on the %seko.one.pl forum%s."
|
||||
msgstr "Mehr informationen zu 3ginfo unter %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "Forum eko.one.pl"
|
||||
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
msgid "USB debug information"
|
||||
msgstr "USB-Debug-Informationen"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguration"
|
||||
|
||||
msgid "General Information"
|
||||
msgstr "allgemeine Informationen"
|
||||
|
||||
msgid "Modem Information"
|
||||
msgstr "Modem Informationen"
|
||||
|
||||
msgid "Cell / Signal Information"
|
||||
msgstr "Zellen-/Signalinformationen"
|
||||
|
||||
msgid "Technology"
|
||||
msgstr "Technologie"
|
||||
|
||||
msgid "Operator"
|
||||
msgstr "Netzbetreiber"
|
||||
|
||||
msgid "Signal strength"
|
||||
msgstr "Signalstärke"
|
||||
|
||||
msgid "Connection statistics"
|
||||
msgstr "Verbindungsstatistik"
|
||||
|
||||
msgid "Modem type"
|
||||
msgstr "Modemtyp"
|
||||
|
||||
msgid "Additional information"
|
||||
msgstr "zusätzliche Informationen"
|
||||
|
||||
msgid "Revision / Firmware"
|
||||
msgstr "Revision / Firmware"
|
||||
|
||||
msgid "IP adress / Communication Port"
|
||||
msgstr "IP-Adresse / Verbindungsport"
|
||||
|
||||
msgid "Chip Temperature"
|
||||
msgstr "Chiptemperatur"
|
||||
|
||||
msgid "Configuration 3ginfo-lite"
|
||||
msgstr "Konfiguration 3ginfo-lite"
|
||||
|
||||
msgid "Configuration panel for the 3ginfo-lite application."
|
||||
msgstr "Konfigurationspanel für 3ginfo-lite."
|
||||
|
||||
msgid "Network"
|
||||
msgstr "Netzwerk"
|
||||
|
||||
msgid "IP adress / Port for communication with the modem"
|
||||
msgstr "IP-Adresse / Verbindungsport mit dem Modem"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "Protokoll"
|
||||
|
||||
msgid ""
|
||||
"Select the appropriate settings. <br /> <br />Traditional "
|
||||
"modem. <br /> Select one of the available ttyUSBX "
|
||||
"ports.<br /> <br />HiLink modem. <br /> Enter the IP address "
|
||||
"192.168.X.X under which the modem is available."
|
||||
msgstr ""
|
||||
"Passende Einstellung wählen. <br /> <br />Traditionelles "
|
||||
"modem. <br /> Einen der verfügbaren ttyUSBX"
|
||||
"Port wählen.<br /> <br />MHiLink Modem. <br /> IP-Adresse wie"
|
||||
"192.168.X.X angeben, unter der das Modem erreichbar ist."
|
||||
|
||||
msgid "Very good"
|
||||
msgstr "Sehr gut"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Gut"
|
||||
|
||||
msgid "Weak"
|
||||
msgstr "Schwach"
|
||||
|
||||
msgid "Very weak"
|
||||
msgstr "Sehr schwach"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "Exzellent"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Gut"
|
||||
|
||||
msgid "Mid cell"
|
||||
msgstr "Zellmitte"
|
||||
|
||||
msgid "Cell edge"
|
||||
msgstr "Zellrand"
|
||||
|
||||
msgid "SIM status"
|
||||
msgstr "SIM-Status"
|
||||
|
||||
msgid "Not registered"
|
||||
msgstr "Nicht registriert"
|
||||
|
||||
msgid "Registered"
|
||||
msgstr "Registriert"
|
||||
|
||||
msgid "Registered (roaming)"
|
||||
msgstr "Registriert (roaming)"
|
||||
|
||||
msgid "Searching.."
|
||||
msgstr "Suche.."
|
||||
|
||||
msgid "Registering denied"
|
||||
msgstr "Registrierung abgelehnt"
|
||||
|
||||
msgid "Waiting to read data from the modem..."
|
||||
msgstr "Daten des Modems werden gelesen..."
|
||||
|
||||
msgid "Waiting for connection data..."
|
||||
msgstr "Auf Datenverbindung warten..."
|
||||
|
||||
msgid "BTS Search"
|
||||
msgstr "BTS-Suche"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
msgid "Search BTS using Cell ID"
|
||||
msgstr "BTS-Suche mit der Cell ID"
|
||||
|
||||
msgid "Hint: To set up a BTS search engine, all you have to do is select the dedicated website for your location."
|
||||
msgstr "Hinweis: Um eine BTS-Suchmaschine einzustellen muss nur eine Webseite für den aktuellen Standort angegeben werden."
|
||||
|
||||
msgid "BTS search settings"
|
||||
msgstr "Einstellungen BTS-Suche"
|
||||
|
||||
msgid "Website to search for BTS"
|
||||
msgstr "Webseite für BTS-Suche"
|
||||
|
||||
msgid "Select a website for searching."
|
||||
msgstr "Webseite für dir Suche auswählen."
|
||||
|
||||
msgid "SIM Slot"
|
||||
msgstr "SIM-Slot"
|
@ -1,167 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Information about 3G/4G/5G connection"
|
||||
msgstr "Informazioni sulla connessione 3G/4G/5G"
|
||||
|
||||
msgid "More information about the 3ginfo on the %seko.one.pl forum%s."
|
||||
msgstr "Ulteriori informazioni su 3ginfo sul %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "forum eko.one.pl"
|
||||
|
||||
msgid "Details"
|
||||
msgstr "Dettagli"
|
||||
|
||||
msgid "USB debug information"
|
||||
msgstr "Informazioni di debug USB"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "Configurazione"
|
||||
|
||||
msgid "General Information"
|
||||
msgstr "Informazioni generali"
|
||||
|
||||
msgid "Modem Information"
|
||||
msgstr "Informazioni sul modem"
|
||||
|
||||
msgid "Cell / Signal Information"
|
||||
msgstr "Informazioni sulla cella / segnale"
|
||||
|
||||
msgid "Technology"
|
||||
msgstr "Tecnologia"
|
||||
|
||||
msgid "Operator"
|
||||
msgstr "Operatore"
|
||||
|
||||
msgid "Signal strength"
|
||||
msgstr "Potenza segnale"
|
||||
|
||||
msgid "Connection statistics"
|
||||
msgstr "Statistiche di connessione"
|
||||
|
||||
msgid "Modem type"
|
||||
msgstr "Tipo di modem"
|
||||
|
||||
msgid "Additional information"
|
||||
msgstr "Informazioni aggiuntive"
|
||||
|
||||
msgid "Revision / Firmware"
|
||||
msgstr "Revisione / Firmware"
|
||||
|
||||
msgid "IP adress / Communication Port"
|
||||
msgstr "Indirizzo IP / Porta di comunicazione"
|
||||
|
||||
msgid "Chip Temperature"
|
||||
msgstr "Temperatura del chip"
|
||||
|
||||
msgid "Configuration 3ginfo-lite"
|
||||
msgstr "Configurazione 3ginfo-lite"
|
||||
|
||||
msgid "Configuration panel for the 3ginfo-lite application."
|
||||
msgstr "Pannello di configurazione per l'applicazione 3ginfo-lite."
|
||||
|
||||
msgid "Network"
|
||||
msgstr "Rete"
|
||||
|
||||
msgid "IP adress / Port for communication with the modem"
|
||||
msgstr "Indirizzo IP / Porta per la comunicazione con il modem"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "Protocollo"
|
||||
|
||||
msgid ""
|
||||
"Select the appropriate settings. <br /> <br />Traditional "
|
||||
"modem. <br /> Select one of the available ttyUSBX "
|
||||
"ports.<br /> <br />HiLink modem. <br /> Enter the IP address "
|
||||
"192.168.X.X under which the modem is available."
|
||||
msgstr ""
|
||||
"Seleziona le impostazioni appropriate. <br /> <br />Modem "
|
||||
"tradizionale. <br /> Seleziona una delle porte ttyUSBX "
|
||||
"disponibili.<br /> <br />Modem HiLink. <br /> Inserisci l'indirizzo IP "
|
||||
"192.168.X.X sotto il quale il modem è disponibile."
|
||||
|
||||
msgid "Very good"
|
||||
msgstr "Molto buono"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Buono"
|
||||
|
||||
msgid "Weak"
|
||||
msgstr "Debole"
|
||||
|
||||
msgid "Very weak"
|
||||
msgstr "Molto debole"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "Eccellente"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Buono"
|
||||
|
||||
msgid "Mid cell"
|
||||
msgstr "Cella media"
|
||||
|
||||
msgid "Cell edge"
|
||||
msgstr "Margine della cella"
|
||||
|
||||
msgid "SIM status"
|
||||
msgstr "Stato SIM"
|
||||
|
||||
msgid "Not registered"
|
||||
msgstr "Non registrato"
|
||||
|
||||
msgid "Registered"
|
||||
msgstr "Registrato"
|
||||
|
||||
msgid "Registered (roaming)"
|
||||
msgstr "Registrato (in roaming)"
|
||||
|
||||
msgid "Searching.."
|
||||
msgstr "Ricerca.."
|
||||
|
||||
msgid "Registering denied"
|
||||
msgstr "Registrazione negata"
|
||||
|
||||
msgid "Waiting to read data from the modem..."
|
||||
msgstr "In attesa di leggere i dati dal modem..."
|
||||
|
||||
msgid "Waiting for connection data..."
|
||||
msgstr "In attesa dei dati di connessione..."
|
||||
|
||||
msgid "BTS Search"
|
||||
msgstr "Ricerca BTS"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
msgid "Search BTS using Cell ID"
|
||||
msgstr "Cerca la BTS utilizzando l'ID della cella"
|
||||
|
||||
msgid "Hint: To set up a BTS search engine, all you have to do is select the dedicated website for your location."
|
||||
msgstr "Suggerimento: Per configurare un motore di ricerca BTS, devi solo selezionare il sito web dedicato alla tua posizione."
|
||||
|
||||
msgid "BTS search settings"
|
||||
msgstr "Impostazioni di ricerca BTS"
|
||||
|
||||
msgid "Website to search for BTS"
|
||||
msgstr "Sito web per cercare BTS"
|
||||
|
||||
msgid "Select a website for searching."
|
||||
msgstr "Seleziona un sito web per la ricerca."
|
||||
|
||||
msgid "SIM Slot"
|
||||
msgstr "Slot SIM"
|
||||
|
||||
msgid "Customizing the appearance of the package"
|
||||
msgstr "Personalizzazione dell'aspetto del pacchetto"
|
||||
|
||||
msgid "Hint: The settings below allow you to customize the appearance of the progress bars."
|
||||
msgstr "Suggerimento: Le impostazioni qui sotto ti consentono di personalizzare l'aspetto delle barre di avanzamento."
|
||||
|
||||
msgid "The width of the progress bars"
|
||||
msgstr "Larghezza delle barre di avanzamento"
|
||||
|
||||
msgid "Select the width of the progress bars."
|
||||
msgstr "Seleziona la larghezza delle barre di avanzamento."
|
||||
|
@ -1,223 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Information about 3G/4G/5G connection"
|
||||
msgstr "Informacja o statusie połączenia 3G/4G/5G"
|
||||
|
||||
msgid "More information about the 3ginfo on the %seko.one.pl forum%s."
|
||||
msgstr "Więcej informacji o 3ginfo na %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "forum eko.one.pl"
|
||||
|
||||
msgid "Details"
|
||||
msgstr "Szczegóły"
|
||||
|
||||
msgid "USB debug information"
|
||||
msgstr "Debugowanie portu USB"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracja"
|
||||
|
||||
msgid "General Information"
|
||||
msgstr "Informacje ogólne"
|
||||
|
||||
msgid "Modem Information"
|
||||
msgstr "Informacje o modemie"
|
||||
|
||||
msgid "Cell / Signal Information"
|
||||
msgstr "Informacje o sieci / sygnale"
|
||||
|
||||
msgid "Technology"
|
||||
msgstr "Technologia"
|
||||
|
||||
msgid "Operator"
|
||||
msgstr "Operator"
|
||||
|
||||
msgid "Signal strength"
|
||||
msgstr "Siła sygnału"
|
||||
|
||||
msgid "Connection statistics"
|
||||
msgstr "Statystyki połączenia"
|
||||
|
||||
msgid "Modem type"
|
||||
msgstr "Typ modemu"
|
||||
|
||||
msgid "Additional information"
|
||||
msgstr "Informacje dodatkowe"
|
||||
|
||||
msgid "Revision / Firmware"
|
||||
msgstr "Rewizja / Wersja firmware"
|
||||
|
||||
msgid "IP adress / Communication Port"
|
||||
msgstr "Adres IP / Port do komunikacji"
|
||||
|
||||
msgid "Chip Temperature"
|
||||
msgstr "Temperatura układu"
|
||||
|
||||
msgid "Configuration 3ginfo-lite"
|
||||
msgstr "Konfiguracja 3ginfo-lite"
|
||||
|
||||
msgid "Configuration panel for the 3ginfo-lite application."
|
||||
msgstr "Panel konfiguracyjny dla aplikacji 3ginfo-lite."
|
||||
|
||||
msgid "Network"
|
||||
msgstr "Sieć"
|
||||
|
||||
msgid "IP adress / Port for communication with the modem"
|
||||
msgstr "Adres IP / Port do komunikacji z modemem"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "Protokół"
|
||||
|
||||
msgid ""
|
||||
"Select the appropriate settings. <br /> <br />Traditional "
|
||||
"modem. <br /> Select one of the available ttyUSBX "
|
||||
"ports.<br /> <br />HiLink modem. <br /> Enter the IP address "
|
||||
"192.168.X.X under which the modem is available."
|
||||
msgstr ""
|
||||
"Wybierz odpowiednie ustawienia. <br /> <br />Tradycyjny "
|
||||
"modem. <br /> Wybierz jeden z dostępnych portów "
|
||||
"ttyUSBX.<br /> <br />Modem typu HiLink. <br /> Wprowadź adres IP "
|
||||
"192.168.X.X pod którym dostępny jest modem."
|
||||
|
||||
msgid "Very good"
|
||||
msgstr "Bardzo dobry"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Dobry"
|
||||
|
||||
msgid "Weak"
|
||||
msgstr "Słaby"
|
||||
|
||||
msgid "Very weak"
|
||||
msgstr "Bardzo słaby"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "Doskonały"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Dobry"
|
||||
|
||||
msgid "Mid cell"
|
||||
msgstr "Średni zasięg"
|
||||
|
||||
msgid "Cell edge"
|
||||
msgstr "Na krawędzi zasięgu"
|
||||
|
||||
msgid "SIM status"
|
||||
msgstr "Status karty SIM"
|
||||
|
||||
msgid "Not registered"
|
||||
msgstr "Nie zalogowana do sieci"
|
||||
|
||||
msgid "Registered"
|
||||
msgstr "Zalogowana do sieci"
|
||||
|
||||
msgid "Registered (roaming)"
|
||||
msgstr "Zalogowana do sieci (roaming)"
|
||||
|
||||
msgid "Registered, only SMS"
|
||||
msgstr "Zalogowana do sieci, tylko SMS"
|
||||
|
||||
msgid "Registered (roaming), only SMS"
|
||||
msgstr "Zalogowana do sieci (roaming), tylko SMS"
|
||||
|
||||
msgid "Searching.."
|
||||
msgstr "Wyszukiwanie.."
|
||||
|
||||
msgid "Registering denied"
|
||||
msgstr "Odmowa zalogowana do sieci"
|
||||
|
||||
msgid "Waiting to read data from the modem..."
|
||||
msgstr "Oczekiwanie na odczyt danych z modemu..."
|
||||
|
||||
msgid "Waiting for connection data..."
|
||||
msgstr "Oczekiwanie na dane połączenia..."
|
||||
|
||||
msgid "BTS Search"
|
||||
msgstr "Lokalizacja stacji bazowej"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
msgid "Search BTS using Cell ID"
|
||||
msgstr "Wyszukaj BTS po Cell ID"
|
||||
|
||||
msgid "Hint: To set up a BTS search engine, all you have to do is select the dedicated website for your location."
|
||||
msgstr "Wskazówka: Aby skonfigurować wyszukiwarkę BTS, wystarczy wybrać stronę odpowiednią dla swojej lokalizacji."
|
||||
|
||||
msgid "BTS search settings"
|
||||
msgstr "Ustawienia wyszukiwania stacji bazowej"
|
||||
|
||||
msgid "Website to search for BTS"
|
||||
msgstr "Strona do wyszukiwania BTS"
|
||||
|
||||
msgid "Select a website for searching."
|
||||
msgstr "Wybierz stronę internetową służącą do wyszukiwania."
|
||||
|
||||
msgid "SIM Slot"
|
||||
msgstr "Slot SIM"
|
||||
|
||||
msgid "Problem with registering to the network, check the SIM card."
|
||||
msgstr "Problem z rejestracją do sieci, sprawdź kartę SIM."
|
||||
|
||||
msgid "SIM PIN required"
|
||||
msgstr "Wymagany jest kod PIN dla karty SIM"
|
||||
|
||||
msgid "SIM PUK required"
|
||||
msgstr "Wymagany jest kod PUK dla karty SIM"
|
||||
|
||||
msgid "SIM failure"
|
||||
msgstr "Awaria karty SIM"
|
||||
|
||||
msgid "SIM busy"
|
||||
msgstr "Karta SIM jest zajęta"
|
||||
|
||||
msgid "SIM wrong"
|
||||
msgstr "Nieprawidłowa karta SIM"
|
||||
|
||||
msgid "SIM PIN2 required"
|
||||
msgstr "Wymagany jest kod PIN2 dla karty SIM"
|
||||
|
||||
msgid "SIM PUK2 required"
|
||||
msgstr "Wymagany jest kod PUK2 dla karty SIM"
|
||||
|
||||
msgid ""
|
||||
"There is a problem reading data from the modem. <br /><br /><b>Please "
|
||||
"check:</b> <ul><li>1. Modem availability in the system.</li><li>2. The correct "
|
||||
"installation of the SIM card in the modem.</li><li> 3. Port for communication with the modem.</li><li><ul>"
|
||||
msgstr ""
|
||||
"Wystąpił problem z odczytem danych z modemu. <br /><br /><b>Proszę "
|
||||
"sprawdzić:</b> <ul><li>1. Dostępność modemu w systemie.</li><li>2. Poprawność "
|
||||
"montażu karty SIM w modemie.</li><li> 3. Port do komunikacji z modemem.</li><li><ul>"
|
||||
|
||||
msgid ""
|
||||
"There is a problem reading connection data. <br /><br /><b>Please "
|
||||
"check:</b> <ul><li>1. Connection of the modem to the internet, the correctness of the entered APN. Some modems need to force the APN on the modem using at commands "
|
||||
"to connect to internet.</li><li> 2. Check that the correct interface assigned to the modem is selected. The default name of the interface in the package is wan.</li><li><ul>"
|
||||
msgstr ""
|
||||
"Wystąpił problem z odczytem danych połączenia. <br /><br /><b>Proszę "
|
||||
"sprawdzić:</b> <ul><li>1. Połączenie modemu z internetem, poprawność wprowadzonego APN. Niektóre modemy wymagają wymuszenia APN w modemie za pomocą komend at, aby "
|
||||
"połączyć się z internetem.</li><li> 2. Sprawdź, czy wybrany został właściwy interfejs przypisany do modemu. Domyślną nazwą interfejsu w pakiecie jest wan.</li><li><ul>"
|
||||
|
||||
msgid "Defined modems"
|
||||
msgstr "Zdefiniowane modemy"
|
||||
|
||||
msgid "Interface for selecting user defined modems."
|
||||
msgstr "Interfejs wyboru modemów zdefiniowanych przez użytkownika."
|
||||
|
||||
msgid "Modem selection menu"
|
||||
msgstr "Menu wyboru modemu"
|
||||
|
||||
msgid "SIM card menu"
|
||||
msgstr "Menu karty SIM"
|
||||
|
||||
msgid "Information read from the SIM card and device."
|
||||
msgstr "Informacje odczytane z karty SIM oraz z urządzenia."
|
||||
|
||||
msgid "Hint"
|
||||
msgstr "Podpowiedź"
|
||||
|
||||
msgid "CLICK ME TO SEE NEW MENU"
|
||||
msgstr "KLIKNIJ MNIE, ABY ZOBACZYĆ NOWE MENU"
|
@ -1,247 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Information about 3G/4G/5G connection"
|
||||
msgstr "Informacja o statusie połączenia 3G/4G/5G"
|
||||
|
||||
msgid "More information about the 3ginfo on the %seko.one.pl forum%s."
|
||||
msgstr "Więcej informacji o 3ginfo na %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "forum eko.one.pl"
|
||||
|
||||
msgid "Details"
|
||||
msgstr "Szczegóły"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracja"
|
||||
|
||||
msgid "General Information"
|
||||
msgstr "Informacje ogólne"
|
||||
|
||||
msgid "Modem Information"
|
||||
msgstr "Informacje o modemie"
|
||||
|
||||
msgid "Cell / Signal Information"
|
||||
msgstr "Informacje o sieci / sygnale"
|
||||
|
||||
msgid "Technology"
|
||||
msgstr "Technologia"
|
||||
|
||||
msgid "Operator"
|
||||
msgstr "Operator"
|
||||
|
||||
msgid "Signal strength"
|
||||
msgstr "Siła sygnału"
|
||||
|
||||
msgid "Connection statistics"
|
||||
msgstr "Statystyki połączenia"
|
||||
|
||||
msgid "Modem type"
|
||||
msgstr "Typ modemu"
|
||||
|
||||
msgid "Additional information"
|
||||
msgstr "Informacje dodatkowe"
|
||||
|
||||
msgid "Revision / Firmware"
|
||||
msgstr "Rewizja / Wersja firmware"
|
||||
|
||||
msgid "IP adress / Communication Port"
|
||||
msgstr "Adres IP / Port do komunikacji"
|
||||
|
||||
msgid "Chip Temperature"
|
||||
msgstr "Temperatura układu"
|
||||
|
||||
msgid "Configuration 3ginfo-lite"
|
||||
msgstr "Konfiguracja 3ginfo-lite"
|
||||
|
||||
msgid "Configuration panel for the 3ginfo-lite application."
|
||||
msgstr "Panel konfiguracyjny dla aplikacji 3ginfo-lite."
|
||||
|
||||
msgid "Network"
|
||||
msgstr "Sieć"
|
||||
|
||||
msgid "IP adress / Port for communication with the modem"
|
||||
msgstr "Adres IP / Port do komunikacji z modemem"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "Protokół"
|
||||
|
||||
msgid ""
|
||||
"Select the appropriate settings. <br /> <br />Traditional "
|
||||
"modem. <br /> Select one of the available ttyUSBX "
|
||||
"ports.<br /> <br />HiLink modem. <br /> Enter the IP address "
|
||||
"192.168.X.X under which the modem is available."
|
||||
msgstr ""
|
||||
"Wybierz odpowiednie ustawienia. <br /> <br />Tradycyjny "
|
||||
"modem. <br /> Wybierz jeden z dostępnych portów "
|
||||
"ttyUSBX.<br /> <br />Modem typu HiLink. <br /> Wprowadź adres IP "
|
||||
"192.168.X.X pod którym dostępny jest modem."
|
||||
|
||||
msgid "Very good"
|
||||
msgstr "Bardzo dobry"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Dobry"
|
||||
|
||||
msgid "Weak"
|
||||
msgstr "Słaby"
|
||||
|
||||
msgid "Very weak"
|
||||
msgstr "Bardzo słaby"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "Doskonały"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Dobry"
|
||||
|
||||
msgid "Mid cell"
|
||||
msgstr "Średni zasięg"
|
||||
|
||||
msgid "Cell edge"
|
||||
msgstr "Na krawędzi zasięgu"
|
||||
|
||||
msgid "SIM status"
|
||||
msgstr "Status karty SIM"
|
||||
|
||||
msgid "Not registered"
|
||||
msgstr "Nie zalogowana do sieci"
|
||||
|
||||
msgid "Registered"
|
||||
msgstr "Zalogowana do sieci"
|
||||
|
||||
msgid "Registered (roaming)"
|
||||
msgstr "Zalogowana do sieci (roaming)"
|
||||
|
||||
msgid "Registered, only SMS"
|
||||
msgstr "Zalogowana do sieci, tylko SMS"
|
||||
|
||||
msgid "Registered (roaming), only SMS"
|
||||
msgstr "Zalogowana do sieci (roaming), tylko SMS"
|
||||
|
||||
msgid "Searching.."
|
||||
msgstr "Wyszukiwanie.."
|
||||
|
||||
msgid "Registering denied"
|
||||
msgstr "Odmowa zalogowana do sieci"
|
||||
|
||||
msgid "Waiting to read data from the modem..."
|
||||
msgstr "Oczekiwanie na odczyt danych z modemu..."
|
||||
|
||||
msgid "Waiting for connection data..."
|
||||
msgstr "Oczekiwanie na dane połączenia..."
|
||||
|
||||
msgid "BTS Search"
|
||||
msgstr "Lokalizacja stacji bazowej"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
msgid "Search BTS using Cell ID"
|
||||
msgstr "Wyszukaj BTS po Cell ID"
|
||||
|
||||
msgid "Hint: To set up a BTS search engine, all you have to do is select the dedicated website for your location."
|
||||
msgstr "Wskazówka: Aby skonfigurować wyszukiwarkę BTS, wystarczy wybrać stronę odpowiednią dla swojej lokalizacji."
|
||||
|
||||
msgid "BTS search settings"
|
||||
msgstr "Ustawienia wyszukiwania stacji bazowej"
|
||||
|
||||
msgid "Website to search for BTS"
|
||||
msgstr "Strona do wyszukiwania BTS"
|
||||
|
||||
msgid "Select a website for searching."
|
||||
msgstr "Wybierz stronę internetową służącą do wyszukiwania."
|
||||
|
||||
msgid "SIM Slot"
|
||||
msgstr "Slot SIM"
|
||||
|
||||
msgid "Problem with registering to the network, check the SIM card."
|
||||
msgstr "Problem z rejestracją do sieci, sprawdź kartę SIM."
|
||||
|
||||
msgid "SIM PIN required"
|
||||
msgstr "Wymagany jest kod PIN dla karty SIM"
|
||||
|
||||
msgid "SIM PUK required"
|
||||
msgstr "Wymagany jest kod PUK dla karty SIM"
|
||||
|
||||
msgid "SIM failure"
|
||||
msgstr "Awaria karty SIM"
|
||||
|
||||
msgid "SIM busy"
|
||||
msgstr "Karta SIM jest zajęta"
|
||||
|
||||
msgid "SIM wrong"
|
||||
msgstr "Nieprawidłowa karta SIM"
|
||||
|
||||
msgid "SIM PIN2 required"
|
||||
msgstr "Wymagany jest kod PIN2 dla karty SIM"
|
||||
|
||||
msgid "SIM PUK2 required"
|
||||
msgstr "Wymagany jest kod PUK2 dla karty SIM"
|
||||
|
||||
msgid ""
|
||||
"There is a problem reading data from the modem. <br /><br /><b>Please "
|
||||
"check:</b> <ul><li>1. Modem availability in the system.</li><li>2. The correct "
|
||||
"installation of the SIM card in the modem.</li><li> 3. Port for communication with the modem.</li><li><ul>"
|
||||
msgstr ""
|
||||
"Wystąpił problem z odczytem danych z modemu. <br /><br /><b>Proszę "
|
||||
"sprawdzić:</b> <ul><li>1. Dostępność modemu w systemie.</li><li>2. Poprawność "
|
||||
"montażu karty SIM w modemie.</li><li> 3. Port do komunikacji z modemem.</li><li><ul>"
|
||||
|
||||
msgid ""
|
||||
"There is a problem reading connection data. <br /><br /><b>Please "
|
||||
"check:</b> <ul><li>1. Connection of the modem to the internet, the correctness of the entered APN. Some modems need to force the APN on the modem using at commands "
|
||||
"to connect to internet.</li><li> 2. Check that the correct interface assigned to the modem is selected. The default name of the interface in the package is wan.</li><li><ul>"
|
||||
msgstr ""
|
||||
"Wystąpił problem z odczytem danych połączenia. <br /><br /><b>Proszę "
|
||||
"sprawdzić:</b> <ul><li>1. Połączenie modemu z internetem, poprawność wprowadzonego APN. Niektóre modemy wymagają wymuszenia APN w modemie za pomocą komend at, aby "
|
||||
"połączyć się z internetem.</li><li> 2. Sprawdź, czy wybrany został właściwy interfejs przypisany do modemu. Domyślną nazwą interfejsu w pakiecie jest wan.</li><li><ul>"
|
||||
|
||||
msgid "Defined modems"
|
||||
msgstr "Zdefiniowane modemy"
|
||||
|
||||
msgid "Interface for selecting user defined modems."
|
||||
msgstr "Interfejs wyboru modemów zdefiniowanych przez użytkownika."
|
||||
|
||||
msgid "Modem selection menu"
|
||||
msgstr "Menu wyboru modemu"
|
||||
|
||||
msgid "SIM card menu"
|
||||
msgstr "Menu karty SIM"
|
||||
|
||||
msgid "Information read from the SIM card and device."
|
||||
msgstr "Informacje odczytane z karty SIM oraz z urządzenia."
|
||||
|
||||
msgid "Hint"
|
||||
msgstr "Podpowiedź"
|
||||
|
||||
msgid "CLICK ME TO SEE NEW MENU"
|
||||
msgstr "KLIKNIJ MNIE, ABY ZOBACZYĆ NOWE MENU"
|
||||
|
||||
msgid "Diagnostics"
|
||||
msgstr "Diagnostyka"
|
||||
|
||||
msgid "Execution of various commands to check the availability of the modem and eliminate errors in the data collected by the scripts."
|
||||
msgstr "Wykonywanie różnych poleceń sprawdzających dostępność modemu i eliminujących błędy w danych zbieranych przez skrypty."
|
||||
|
||||
msgid "USB debug information"
|
||||
msgstr "Debugowanie portu USB"
|
||||
|
||||
msgid "Show devices"
|
||||
msgstr "Pokaż urządzenia"
|
||||
|
||||
msgid "Check availability of ttyX ports."
|
||||
msgstr "Sprawdź dostępność portów ttyX."
|
||||
|
||||
msgid "Check data read by the 3ginfo scripts."
|
||||
msgstr "Sprawdź dane odczytywane przez skrypty 3ginfo."
|
||||
|
||||
msgid "Debug"
|
||||
msgstr "Debugowanie"
|
||||
|
||||
msgid "Clear"
|
||||
msgstr "Wyczyść"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
@ -1,223 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Information about 3G/4G/5G connection"
|
||||
msgstr "Информация о статусе соединения 3G/4G/5G"
|
||||
|
||||
msgid "More information about the 3ginfo on the %seko.one.pl forum%s."
|
||||
msgstr "Вся информация о 3ginfo на %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "форум eko.one.pl"
|
||||
|
||||
msgid "Details"
|
||||
msgstr "Подробности"
|
||||
|
||||
msgid "USB debug information"
|
||||
msgstr "Отладка порта USB"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "Конфигурация"
|
||||
|
||||
msgid "General Information"
|
||||
msgstr "Общая информация"
|
||||
|
||||
msgid "Modem Information"
|
||||
msgstr "Информация о модеме"
|
||||
|
||||
msgid "Cell / Signal Information"
|
||||
msgstr "Информация о соте / сигнале"
|
||||
|
||||
msgid "Technology"
|
||||
msgstr "Технология"
|
||||
|
||||
msgid "Operator"
|
||||
msgstr "Оператор"
|
||||
|
||||
msgid "Signal strength"
|
||||
msgstr "Качество сигнала"
|
||||
|
||||
msgid "Connection statistics"
|
||||
msgstr "Статистика соединения"
|
||||
|
||||
msgid "Modem type"
|
||||
msgstr "Тип модема"
|
||||
|
||||
msgid "Additional information"
|
||||
msgstr "Дополнительная информация"
|
||||
|
||||
msgid "Revision / Firmware"
|
||||
msgstr "Ревизия / Прошивка"
|
||||
|
||||
msgid "IP adress / Communication Port"
|
||||
msgstr "Адрес IP / Порт связи"
|
||||
|
||||
msgid "Chip Temperature"
|
||||
msgstr "Температура чипа"
|
||||
|
||||
msgid "Configuration 3ginfo-lite"
|
||||
msgstr "Конфигурация 3ginfo-lite"
|
||||
|
||||
msgid "Configuration panel for the 3ginfo-lite application."
|
||||
msgstr "Панель конфигурации приложения 3ginfo-lite."
|
||||
|
||||
msgid "Network"
|
||||
msgstr "Сеть"
|
||||
|
||||
msgid "IP adress / Port for communication with the modem"
|
||||
msgstr "IP-адрес / Порт связи с модемом"
|
||||
|
||||
msgid "Protocol"
|
||||
msgstr "Протокол"
|
||||
|
||||
msgid ""
|
||||
"Select the appropriate settings. <br /> <br />Traditional "
|
||||
"modem. <br /> Select one of the available ttyUSBX "
|
||||
"ports.<br /> <br />HiLink modem. <br /> Enter the IP address "
|
||||
"192.168.X.X under which the modem is available."
|
||||
msgstr ""
|
||||
"Выберите соответствующие настройки. <br /> <br />Обычный "
|
||||
"модем. <br /> Выберите один из доступных портов "
|
||||
"ttyUSBX.<br /> <br />Модем типа HiLink. <br /> Введите IP-адрес "
|
||||
"192.168.X.X под которым доступен модем."
|
||||
|
||||
msgid "Very good"
|
||||
msgstr "Очень хороший"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Хороший"
|
||||
|
||||
msgid "Weak"
|
||||
msgstr "Слабый"
|
||||
|
||||
msgid "Very weak"
|
||||
msgstr "Очень слабый"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "Отлично"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "Хорошо"
|
||||
|
||||
msgid "Mid cell"
|
||||
msgstr "Удовлетворительно"
|
||||
|
||||
msgid "Cell edge"
|
||||
msgstr "На грани"
|
||||
|
||||
msgid "SIM status"
|
||||
msgstr "Статус SIM-карты"
|
||||
|
||||
msgid "Not registered"
|
||||
msgstr "Не зарегистрирован в сети"
|
||||
|
||||
msgid "Registered"
|
||||
msgstr "Зарегистрирован в сети"
|
||||
|
||||
msgid "Registered (roaming)"
|
||||
msgstr "Зарегистрирован в другой сети (роуминг)"
|
||||
|
||||
msgid "Registered, only SMS"
|
||||
msgstr "Зарегистрирован в сети, только SMS"
|
||||
|
||||
msgid "Registered (roaming), only SMS"
|
||||
msgstr "Зарегистрирован в другой сети (роуминг), только SMS"
|
||||
|
||||
msgid "Searching.."
|
||||
msgstr "Поиск.."
|
||||
|
||||
msgid "Registering denied"
|
||||
msgstr "Отказано в регистрации в сети"
|
||||
|
||||
msgid "Waiting to read data from the modem..."
|
||||
msgstr "Ожидание считывания данных с модема..."
|
||||
|
||||
msgid "Waiting for connection data..."
|
||||
msgstr "Ожидание данных для соединения..."
|
||||
|
||||
msgid "BTS Search"
|
||||
msgstr "Поиск базовой станции"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
msgid "Search BTS using Cell ID"
|
||||
msgstr "Поиск базовой станции по Cell ID"
|
||||
|
||||
msgid "Hint: To set up a BTS search engine, all you have to do is select the dedicated website for your location."
|
||||
msgstr "Совет: Чтобы настроить поиск базовой станции, просто выберите сайт, соответствующий вашему местоположению."
|
||||
|
||||
msgid "BTS search settings"
|
||||
msgstr "Настройки поиска базовой станции"
|
||||
|
||||
msgid "Website to search for BTS"
|
||||
msgstr "Сайт для поиска базовой станции"
|
||||
|
||||
msgid "Select a website for searching."
|
||||
msgstr "Выберите сайт для поиска."
|
||||
|
||||
msgid "SIM Slot"
|
||||
msgstr "Слот SIM"
|
||||
|
||||
msgid "Problem with registering to the network, check the SIM card."
|
||||
msgstr "Проблема с регистрацией в сети оператора, проверьте SIM-карту."
|
||||
|
||||
msgid "SIM PIN required"
|
||||
msgstr "Требуется код PUK2 для SIM-карты"
|
||||
|
||||
msgid "SIM PUK required"
|
||||
msgstr "Требуется код PUK для SIM-карты"
|
||||
|
||||
msgid "SIM failure"
|
||||
msgstr "Сбой SIM-карты"
|
||||
|
||||
msgid "SIM busy"
|
||||
msgstr "SIM-карта занята"
|
||||
|
||||
msgid "SIM wrong"
|
||||
msgstr "Некорректная SIM-карта"
|
||||
|
||||
msgid "SIM PIN2 required"
|
||||
msgstr "Требуется код PIN2 для SIM-карты"
|
||||
|
||||
msgid "SIM PUK2 required"
|
||||
msgstr "Требуется код PUK2 для SIM-карты"
|
||||
|
||||
msgid ""
|
||||
"There is a problem reading data from the modem. <br /><br /><b>Please "
|
||||
"check:</b> <ul><li>1. Modem availability in the system.</li><li>2. The correct "
|
||||
"installation of the SIM card in the modem.</li><li> 3. Port for communication with the modem.</li><li><ul>"
|
||||
msgstr ""
|
||||
"Возникла проблема со считыванием данных с модема. <br /><br /><b>Пожалуйста "
|
||||
"проверьте:</b> <ul><li>1. Наличие модема в системе.</li><li>2. Правильность "
|
||||
"установки SIM-карты в модем.</li><li> 3. Правильно указан порт для связи с модемом.</li><li><ul>"
|
||||
|
||||
msgid ""
|
||||
"There is a problem reading connection data. <br /><br /><b>Please "
|
||||
"check:</b> <ul><li>1. Connection of the modem to the internet, the correctness of the entered APN. Some modems need to force the APN on the modem using at commands "
|
||||
"to connect to internet.</li><li> 2. Check that the correct interface assigned to the modem is selected. The default name of the interface in the package is wan.</li><li><ul>"
|
||||
msgstr ""
|
||||
"При чтении данных о соединении возникла проблема. <br /><br /><b>Пожалуйста "
|
||||
"проверьте:</b> <ul><li>1. Подключение модема к Интернету, правильность введенного APN. Некоторые модемы требуют ввести APN на модеме с помощью AT команд, чтобы "
|
||||
"подключиться к Интернету.</li><li> 2. Убедитесь, что выбран правильный интерфейс, назначенный модему. По умолчанию в комплекте поставки используется имя интерфейса wan.</li><li><ul>"
|
||||
|
||||
msgid "Defined modems"
|
||||
msgstr "Добавленные модемы"
|
||||
|
||||
msgid "Interface for selecting user defined modems."
|
||||
msgstr "Интерфейс выбора добавленных пользователем модемов."
|
||||
|
||||
msgid "Modem selection menu"
|
||||
msgstr "Меню выбора модема"
|
||||
|
||||
msgid "SIM card menu"
|
||||
msgstr "Меню SIM-карты"
|
||||
|
||||
msgid "Information read from the SIM card and device."
|
||||
msgstr "Чтение информации с SIM-карты и устройства."
|
||||
|
||||
msgid "Hint"
|
||||
msgstr "Подсказка"
|
||||
|
||||
msgid "CLICK ME TO SEE NEW MENU"
|
||||
msgstr "НАЖМИ МЕНЯ ЧТОБЫ УВИДЕТЬ НОВОЕ МЕНЮ"
|
@ -1,78 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/controller/modem/3ginfo.lua:9
|
||||
msgid "Information about 3G/4G connection"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/controller/modem/3ginfo.lua:10
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/controller/modem/3ginfo.lua:11
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:106
|
||||
msgid "Information about 3G/4G connection"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:110
|
||||
msgid "Status:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:111
|
||||
msgid "Connection time:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:112
|
||||
msgid "Downloaded:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:113
|
||||
msgid "Uploaded:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:114
|
||||
msgid "Mode:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:115
|
||||
msgid "Operator:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:117
|
||||
msgid "Signal strength:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:119
|
||||
msgid "Modem type:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/view/modem/3gdetail.lua:124
|
||||
msgid "Additional information"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/model/cbi/modem/3gconfig.lua:11
|
||||
msgid "Configuration 3ginfo"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/model/cbi/modem/3gconfig.lua:12
|
||||
msgid "Configuration panel for the 3ginfo application."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/model/cbi/modem/3gconfig.lua:17
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/model/cbi/modem/3gconfig.lua:20
|
||||
msgid "Device"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/model/cbi/modem/3gconfig.lua:28
|
||||
msgid "SIM PIN (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-3ginfo/luasrc/model/cbi/modem/3gconfig.lua:31
|
||||
msgid "Language"
|
||||
msgstr ""
|
@ -1,506 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: luci-app-3ginfo-lite\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh_Hans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1067
|
||||
msgid "(Received Signal Strength Indicator)"
|
||||
msgstr "(接收信号强度指示)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1079
|
||||
msgid "(Reference Signal Receive Power)"
|
||||
msgstr "(参考信号接收功率)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1103
|
||||
msgid "(Reference Signal Received Quality)"
|
||||
msgstr "(参考信号接收质量)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1055
|
||||
msgid "(Signal Strength)"
|
||||
msgstr "(信号强度)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1091
|
||||
msgid "(Signal to Interference plus Noise Ratio)"
|
||||
msgstr "(信噪比)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:536
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:936
|
||||
msgid "3ginfo-lite"
|
||||
msgstr "3ginfo-lite"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:93
|
||||
msgid "<code>cat /sys/kernel/debug/usb/devices</code>."
|
||||
msgstr "<code>cat /sys/kernel/debug/usb/devices</code>。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:110
|
||||
msgid "<code>ls /dev</code>."
|
||||
msgstr "<code>ls /dev</code>。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:127
|
||||
msgid "<code>sh -x /usr/share/3ginfo-lite/3ginfo.sh</code>."
|
||||
msgstr "<code>sh -x /usr/share/3ginfo-lite/3ginfo.sh</code>。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1141
|
||||
msgid "BTS Search"
|
||||
msgstr "基站搜索"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:64
|
||||
msgid "BTS search settings"
|
||||
msgstr "基站搜索设置"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1117
|
||||
msgid "CA band (SCC1)"
|
||||
msgstr "载波聚合频段(SCC1)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1121
|
||||
msgid "CA band (SCC2)"
|
||||
msgstr "载波聚合频段(SCC2)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1125
|
||||
msgid "CA band (SCC3)"
|
||||
msgstr "载波聚合频段(SCC3)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1129
|
||||
msgid "CA band (SCC4)"
|
||||
msgstr "载波聚合频段(SCC4)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:188
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:196
|
||||
msgid "CLICK ME TO SEE NEW MENU"
|
||||
msgstr "点此查看新菜单"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1054
|
||||
msgid "CSQ"
|
||||
msgstr "载波信号质量"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:314
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1033
|
||||
msgid "Cell / Signal Information"
|
||||
msgstr "基站 / 信号信息"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1040
|
||||
msgid "Cell ID"
|
||||
msgstr "基站 ID"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:139
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:171
|
||||
msgid "Cell edge"
|
||||
msgstr "边缘基站"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:106
|
||||
msgid "Check availability of ttyX ports."
|
||||
msgstr "检查 ttyX 端口的可用性。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:123
|
||||
msgid "Check data read by the 3ginfo scripts."
|
||||
msgstr "检查 3ginfo 脚本读取的数据。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1029
|
||||
msgid "Chip Temperature"
|
||||
msgstr "芯片温度"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:164
|
||||
msgid "Clear"
|
||||
msgstr "清空"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:433
|
||||
msgid "Close"
|
||||
msgstr "关闭"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/root/usr/share/luci/menu.d/luci-app-3ginfo-lite.json:43
|
||||
msgid "Configuration"
|
||||
msgstr "配置"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:26
|
||||
msgid "Configuration 3ginfo-lite"
|
||||
msgstr "3ginfo-lite 配置"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:26
|
||||
msgid "Configuration panel for the 3ginfo-lite application."
|
||||
msgstr "3ginfo-lite 配置面板。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1002
|
||||
msgid "Connection statistics"
|
||||
msgstr "连接统计"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:134
|
||||
msgid "Debug"
|
||||
msgstr "调试"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:471
|
||||
msgid "Defined modems"
|
||||
msgstr "已定义的模块"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/root/usr/share/luci/menu.d/luci-app-3ginfo-lite.json:25
|
||||
msgid "Details"
|
||||
msgstr "详细信息"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:144
|
||||
#: applications/luci-app-3ginfo-lite/root/usr/share/luci/menu.d/luci-app-3ginfo-lite.json:34
|
||||
msgid "Diagnostics"
|
||||
msgstr "诊断"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:171
|
||||
msgid "Download"
|
||||
msgstr "下载"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:74
|
||||
msgid "Download error"
|
||||
msgstr "下载错误"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:931
|
||||
msgid "Error:"
|
||||
msgstr "错误:"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:124
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:156
|
||||
msgid "Excellent"
|
||||
msgstr "优秀"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:145
|
||||
msgid ""
|
||||
"Execution of various commands to check the availability of the modem and "
|
||||
"eliminate errors in the data collected by the scripts."
|
||||
msgstr "执行各种命令以检查模块的可用性,并消除脚本收集的数据中的错误。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:958
|
||||
msgid "General Information"
|
||||
msgstr "常规信息"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:33
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:65
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:98
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:129
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:161
|
||||
msgid "Good"
|
||||
msgstr "良好"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/root/usr/share/rpcd/acl.d/luci-app-3ginfo-lite.json:3
|
||||
msgid "Grant access to LuCI app 3ginfo-lite"
|
||||
msgstr "授予访问 LuCI 应用 3ginfo-lite 的权限"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:188
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:196
|
||||
msgid "Hint"
|
||||
msgstr "提示"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:70
|
||||
msgid ""
|
||||
"Hint: To set up a BTS search engine, all you have to do is select the "
|
||||
"dedicated website for your location."
|
||||
msgstr "提示:要设置基站搜索引擎,您只需选择适合您所在位置的专用网站即可。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1021
|
||||
msgid "IP adress / Communication Port"
|
||||
msgstr "IP 地址 / 通信端口"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:49
|
||||
msgid "IP adress / Port for communication with the modem"
|
||||
msgstr "用于与模块通信的 IP 地址 / 端口"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/root/usr/share/luci/menu.d/luci-app-3ginfo-lite.json:12
|
||||
msgid "Information about 3G/4G/5G connection"
|
||||
msgstr "3G/4G/5G 连接信息"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:477
|
||||
msgid "Information read from the SIM card and device."
|
||||
msgstr "从 SIM 卡和设备读取的信息。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:40
|
||||
msgid "Interface"
|
||||
msgstr "接口"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:472
|
||||
msgid "Interface for selecting user defined modems."
|
||||
msgstr "用于选择用户定义的模块的接口。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1048
|
||||
msgid "LAC"
|
||||
msgstr "位置区域码"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:357
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:445
|
||||
msgid "Loading"
|
||||
msgstr "加载中"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1036
|
||||
msgid "MCC MNC"
|
||||
msgstr "MCC MNC"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:134
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:166
|
||||
msgid "Mid cell"
|
||||
msgstr "中间基站"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:292
|
||||
#: applications/luci-app-3ginfo-lite/root/usr/share/luci/menu.d/luci-app-3ginfo-lite.json:3
|
||||
msgid "Modem"
|
||||
msgstr "模块"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:187
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:195
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:416
|
||||
msgid "Modem IMEI"
|
||||
msgstr "模块 IMEI"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1010
|
||||
msgid "Modem Information"
|
||||
msgstr "调制解调器信息"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:950
|
||||
msgid "Modem selection menu"
|
||||
msgstr "模块选择菜单"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1013
|
||||
msgid "Modem type"
|
||||
msgstr "模块类型"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:141
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:935
|
||||
msgid "More information about the 3ginfo on the %seko.one.pl forum%s."
|
||||
msgstr "有关 3ginfo 的更多信息,请访问 %seko.one.pl 论坛%s。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:41
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "用于访问互联网的网络接口。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:617
|
||||
msgid "Not registered"
|
||||
msgstr "未注册"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:965
|
||||
msgid "Operator"
|
||||
msgstr "运营商"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:57
|
||||
msgid "Please select a port"
|
||||
msgstr "请选择一个端口"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1113
|
||||
msgid "Primary band (PCC) | PCI & EARFCN"
|
||||
msgstr "主要频段(PCC) | PCI & EARFCN"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:489
|
||||
msgid "Problem with registering to the network, check the SIM card."
|
||||
msgstr "注册到网络时出现问题,请检查 SIM 卡。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1025
|
||||
msgid "Protocol"
|
||||
msgstr "协议"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1078
|
||||
msgid "RSRP"
|
||||
msgstr "RSRP"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1102
|
||||
msgid "RSRQ"
|
||||
msgstr "RSRQ"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1066
|
||||
msgid "RSSI"
|
||||
msgstr "RSSI"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:620
|
||||
msgid "Registered"
|
||||
msgstr "已注册"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:629
|
||||
msgid "Registered (roaming)"
|
||||
msgstr "已注册(漫游)"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:635
|
||||
msgid "Registered (roaming), only SMS"
|
||||
msgstr "已注册(漫游),仅短信"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:632
|
||||
msgid "Registered, only SMS"
|
||||
msgstr "已注册,仅短信"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:626
|
||||
msgid "Registering denied"
|
||||
msgstr "注册被拒绝"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1017
|
||||
msgid "Revision / Firmware"
|
||||
msgstr "版本 / 固件"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:186
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:194
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:408
|
||||
msgid "SIM ICCID"
|
||||
msgstr "SIM ICCID"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:185
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:193
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:400
|
||||
msgid "SIM IMSI"
|
||||
msgstr "SIM IMSI"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:492
|
||||
msgid "SIM PIN required"
|
||||
msgstr "需要 SIM PIN"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:507
|
||||
msgid "SIM PIN2 required"
|
||||
msgstr "需要 SIM PIN2"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:495
|
||||
msgid "SIM PUK required"
|
||||
msgstr "需要 SIM PUK"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:510
|
||||
msgid "SIM PUK2 required"
|
||||
msgstr "需要 SIM PUK2"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:184
|
||||
msgid "SIM Slot"
|
||||
msgstr "SIM 卡槽"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:501
|
||||
msgid "SIM busy"
|
||||
msgstr "SIM 卡忙"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:476
|
||||
msgid "SIM card menu"
|
||||
msgstr "SIM 卡菜单"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:498
|
||||
msgid "SIM failure"
|
||||
msgstr "SIM 卡故障"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:974
|
||||
msgid "SIM status"
|
||||
msgstr "SIM 卡状态"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:504
|
||||
msgid "SIM wrong"
|
||||
msgstr "SIM 卡错误"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1090
|
||||
msgid "SINR"
|
||||
msgstr "SINR"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:321
|
||||
msgid "Save"
|
||||
msgstr "保存"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1146
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1145
|
||||
msgid "Search BTS using Cell ID"
|
||||
msgstr "使用基站 ID 搜索"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:623
|
||||
msgid "Searching.."
|
||||
msgstr "搜索中..."
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:74
|
||||
msgid "Select a website for searching."
|
||||
msgstr "选择一个用于搜索的网站。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:50
|
||||
msgid ""
|
||||
"Select the appropriate settings. <br /> <br />Traditional modem. <br /> "
|
||||
"Select one of the available ttyUSBX ports.<br /> <br />HiLink modem. <br /> "
|
||||
"Enter the IP address 192.168.X.X under which the modem is available."
|
||||
msgstr ""
|
||||
"选择适当的设置。 <br /> <br />传统模块。 <br /> 选择一个可用的 ttyUSBX 端口。"
|
||||
"<br /> <br />HiLink 模块。 <br /> 输入模块可用的 IP 地址 192.168.X.X。"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:100
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:117
|
||||
msgid "Show devices"
|
||||
msgstr "显示设备"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:961
|
||||
msgid "Signal strength"
|
||||
msgstr "信号强度"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1044
|
||||
msgid "TAC"
|
||||
msgstr "跟踪区域码"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:1006
|
||||
msgid "Technology"
|
||||
msgstr "技术"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:520
|
||||
msgid ""
|
||||
"There is a problem reading connection data. <br /><br /><b>Please check:</b> "
|
||||
"<ul><li>1. Connection of the modem to the internet, the correctness of the "
|
||||
"entered APN. Some modems need to force the APN on the modem using at "
|
||||
"commands to connect to internet.</li><li> 2. Check that the correct "
|
||||
"interface assigned to the modem is selected. The default name of the "
|
||||
"interface in the package is wan.</li><li><ul>"
|
||||
msgstr ""
|
||||
"读取连接数据时出现问题。 <br /><br /><b>请检查:</b> <ul><li>1. 模块是否已经"
|
||||
"连接到互联网,输入的 APN 是否正确。某些模块需要使用 AT 命令强制在模块上设置 "
|
||||
"APN 才能连接到互联网。</li><li>2. 检查是否选择了正确的接口。默认接口名称为 "
|
||||
"wan。</li><li><ul>"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:513
|
||||
msgid ""
|
||||
"There is a problem reading data from the modem. <br /><br /><b>Please check:"
|
||||
"</b> <ul><li>1. Modem availability in the system.</li><li>2. The correct "
|
||||
"installation of the SIM card in the modem.</li><li> 3. Port for "
|
||||
"communication with the modem.</li><li><ul>"
|
||||
msgstr ""
|
||||
"读取模块数据时出现问题。 <br /><br /><b>请检查:</b> <ul><li>1. 系统中模块是"
|
||||
"否可用。</li><li>2. 模块中 SIM 卡是否正确安装。</li><li>3. 与模块通信的端口。"
|
||||
"</li><li><ul>"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdebug.js:89
|
||||
msgid "USB debug information"
|
||||
msgstr "USB 调试信息"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:28
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:60
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:93
|
||||
msgid "Very good"
|
||||
msgstr "非常好"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:43
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:75
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:108
|
||||
msgid "Very weak"
|
||||
msgstr "非常弱"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:579
|
||||
msgid "Waiting for connection data..."
|
||||
msgstr "等待连接数据..."
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:537
|
||||
msgid "Waiting to read data from the modem..."
|
||||
msgstr "等待从模块读取数据..."
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:38
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:70
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:103
|
||||
msgid "Weak"
|
||||
msgstr "弱"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:73
|
||||
msgid "Website to search for BTS"
|
||||
msgstr "用于搜索基站的网站"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:76
|
||||
msgid "btsearch.pl"
|
||||
msgstr "btsearch.pl"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gconfig.js:77
|
||||
msgid "lteitaly.it"
|
||||
msgstr "lteitaly.it"
|
||||
|
||||
#: applications/luci-app-3ginfo-lite/htdocs/luci-static/resources/view/modem/3gdetail.js:955
|
||||
msgid "☰"
|
||||
msgstr "☰"
|
@ -1,4 +0,0 @@
|
||||
|
||||
config 3ginfo
|
||||
option device ''
|
||||
option website 'http://www.btsearch.pl/szukaj.php?mode=std&search='
|
@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Copyright 2020-2024 Rafał Wabik (IceG) - From eko.one.pl forum
|
||||
# MIT License
|
||||
|
||||
chmod +x /usr/share/3ginfo-lite/3ginfo.sh 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/detect.sh 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/check.gcom 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/info.gcom 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/vendorproduct.gcom 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/modem/hilink/alcatel_hilink.sh 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/modem/hilink/huawei_hilink.sh 2>&1 &
|
||||
chmod +x /usr/share/3ginfo-lite/modem/hilink/zte.sh 2>&1 &
|
||||
rm -rf /tmp/luci-indexcache 2>&1 &
|
||||
rm -rf /tmp/luci-modulecache/ 2>&1 &
|
||||
|
||||
exit 0
|
||||
|
@ -1,515 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# (c) 2010-2024 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
# (c) 2021-2024 modified by Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
|
||||
|
||||
band4g() {
|
||||
# see https://en.wikipedia.org/wiki/LTE_frequency_bands
|
||||
echo -n "B${1}"
|
||||
case "${1}" in
|
||||
"1") echo " (2100 MHz)";;
|
||||
"2") echo " (1900 MHz)";;
|
||||
"3") echo " (1800 MHz)";;
|
||||
"4") echo " (1700 MHz)";;
|
||||
"5") echo " (850 MHz)";;
|
||||
"7") echo " (2600 MHz)";;
|
||||
"8") echo " (900 MHz)";;
|
||||
"11") echo " (1500 MHz)";;
|
||||
"12") echo " (700 MHz)";;
|
||||
"13") echo " (700 MHz)";;
|
||||
"14") echo " (700 MHz)";;
|
||||
"17") echo " (700 MHz)";;
|
||||
"18") echo " (850 MHz)";;
|
||||
"19") echo " (850 MHz)";;
|
||||
"20") echo " (800 MHz)";;
|
||||
"21") echo " (1500 MHz)";;
|
||||
"24") echo " (1600 MHz)";;
|
||||
"25") echo " (1900 MHz)";;
|
||||
"26") echo " (850 MHz)";;
|
||||
"28") echo " (700 MHz)";;
|
||||
"29") echo " (700 MHz)";;
|
||||
"30") echo " (2300 MHz)";;
|
||||
"31") echo " (450 MHz)";;
|
||||
"32") echo " (1500 MHz)";;
|
||||
"34") echo " (2000 MHz)";;
|
||||
"37") echo " (1900 MHz)";;
|
||||
"38") echo " (2600 MHz)";;
|
||||
"39") echo " (1900 MHz)";;
|
||||
"40") echo " (2300 MHz)";;
|
||||
"41") echo " (2500 MHz)";;
|
||||
"42") echo " (3500 MHz)";;
|
||||
"43") echo " (3700 MHz)";;
|
||||
"46") echo " (5200 MHz)";;
|
||||
"47") echo " (5900 MHz)";;
|
||||
"48") echo " (3500 MHz)";;
|
||||
"50") echo " (1500 MHz)";;
|
||||
"51") echo " (1500 MHz)";;
|
||||
"53") echo " (2400 MHz)";;
|
||||
"54") echo " (1600 MHz)";;
|
||||
"65") echo " (2100 MHz)";;
|
||||
"66") echo " (1700 MHz)";;
|
||||
"67") echo " (700 MHz)";;
|
||||
"69") echo " (2600 MHz)";;
|
||||
"70") echo " (1700 MHz)";;
|
||||
"71") echo " (600 MHz)";;
|
||||
"72") echo " (450 MHz)";;
|
||||
"73") echo " (450 MHz)";;
|
||||
"74") echo " (1500 MHz)";;
|
||||
"75") echo " (1500 MHz)";;
|
||||
"76") echo " (1500 MHz)";;
|
||||
"85") echo " (700 MHz)";;
|
||||
"87") echo " (410 MHz)";;
|
||||
"88") echo " (410 MHz)";;
|
||||
"103") echo " (700 MHz)";;
|
||||
"106") echo " (900 MHz)";;
|
||||
"*") echo "";;
|
||||
esac
|
||||
}
|
||||
|
||||
band5g() {
|
||||
# see https://en.wikipedia.org/wiki/5G_NR_frequency_bands
|
||||
echo -n "n${1}"
|
||||
case "${1}" in
|
||||
"1") echo " (2100 MHz)";;
|
||||
"2") echo " (1900 MHz)";;
|
||||
"3") echo " (1800 MHz)";;
|
||||
"5") echo " (850 MHz)";;
|
||||
"7") echo " (2600 MHz)";;
|
||||
"8") echo " (900 MHz)";;
|
||||
"12") echo " (700 MHz)";;
|
||||
"13") echo " (700 MHz)";;
|
||||
"14") echo " (700 MHz)";;
|
||||
"18") echo " (850 MHz)";;
|
||||
"20") echo " (800 MHz)";;
|
||||
"24") echo " (1600 MHz)";;
|
||||
"25") echo " (1900 MHz)";;
|
||||
"26") echo " (850 MHz)";;
|
||||
"28") echo " (700 MHz)";;
|
||||
"29") echo " (700 MHz)";;
|
||||
"30") echo " (2300 MHz)";;
|
||||
"34") echo " (2100 MHz)";;
|
||||
"38") echo " (2600 MHz)";;
|
||||
"39") echo " (1900 MHz)";;
|
||||
"40") echo " (2300 MHz)";;
|
||||
"41") echo " (2500 MHz)";;
|
||||
"46") echo " (5200 MHz)";;
|
||||
"47") echo " (5900 MHz)";;
|
||||
"48") echo " (3500 MHz)";;
|
||||
"50") echo " (1500 MHz)";;
|
||||
"51") echo " (1500 MHz)";;
|
||||
"53") echo " (2400 MHz)";;
|
||||
"54") echo " (1600 MHz)";;
|
||||
"65") echo " (2100 MHz)";;
|
||||
"66") echo " (1700/2100 MHz)";;
|
||||
"67") echo " (700 MHz)";;
|
||||
"70") echo " (2000 MHz)";;
|
||||
"71") echo " (600 MHz)";;
|
||||
"74") echo " (1500 MHz)";;
|
||||
"75") echo " (1500 MHz)";;
|
||||
"76") echo " (1500 MHz)";;
|
||||
"77") echo " (3700 MHz)";;
|
||||
"78") echo " (3500 MHz)";;
|
||||
"79") echo " (4700 MHz)";;
|
||||
"80") echo " (1800 MHz)";;
|
||||
"81") echo " (900 MHz)";;
|
||||
"82") echo " (800 MHz)";;
|
||||
"83") echo " (700 MHz)";;
|
||||
"84") echo " (2100 MHz)";;
|
||||
"85") echo " (700 MHz)";;
|
||||
"86") echo " (1700 MHz)";;
|
||||
"89") echo " (850 MHz)";;
|
||||
"90") echo " (2500 MHz)";;
|
||||
"91") echo " (800/1500 MHz)";;
|
||||
"92") echo " (800/1500 MHz)";;
|
||||
"93") echo " (900/1500 MHz)";;
|
||||
"94") echo " (900/1500 MHz)";;
|
||||
"95") echo " (2100 MHz)";;
|
||||
"96") echo " (6000 MHz)";;
|
||||
"97") echo " (2300 MHz)";;
|
||||
"98") echo " (1900 MHz)";;
|
||||
"99") echo " (1600 MHz)";;
|
||||
"100") echo " (900 MHz)";;
|
||||
"101") echo " (1900 MHz)";;
|
||||
"102") echo " (6200 MHz)";;
|
||||
"104") echo " (6700 MHz)";;
|
||||
"105") echo " (600 MHz)";;
|
||||
"106") echo " (900 MHz)";;
|
||||
"109") echo " (700/1500 MHz)";;
|
||||
"257") echo " (28 GHz)";;
|
||||
"258") echo " (26 GHz)";;
|
||||
"259") echo " (41 GHz)";;
|
||||
"260") echo " (39 GHz)";;
|
||||
"261") echo " (28 GHz)";;
|
||||
"262") echo " (47 GHz)";;
|
||||
"263") echo " (60 GHz)";;
|
||||
"*") echo "";;
|
||||
esac
|
||||
}
|
||||
|
||||
getdevicevendorproduct() {
|
||||
devname="$(basename $1)"
|
||||
case "$devname" in
|
||||
'wwan'*'at'*)
|
||||
devpath="$(readlink -f /sys/class/wwan/$devname/device)"
|
||||
T=${devpath%/*/*/*}
|
||||
if [ -e $T/vendor ] && [ -e $T/device ]; then
|
||||
V=$(cat $T/vendor)
|
||||
D=$(cat $T/device)
|
||||
echo "pci/${V/0x/}${D/0x/}"
|
||||
fi
|
||||
;;
|
||||
'ttyACM'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
T=${devpath%/*}
|
||||
echo "usb/$(cat $T/idVendor)$(cat $T/idProduct)"
|
||||
;;
|
||||
'tty'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
T=${devpath%/*/*}
|
||||
echo "usb/$(cat $T/idVendor)$(cat $T/idProduct)"
|
||||
;;
|
||||
*)
|
||||
devpath="$(readlink -f /sys/class/usbmisc/$devname/device)"
|
||||
T=${devpath%/*}
|
||||
echo "usb/$(cat $T/idVendor)$(cat $T/idProduct)"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
RES="/usr/share/3ginfo-lite"
|
||||
|
||||
DEVICE=$($RES/detect.sh)
|
||||
if [ -z "$DEVICE" ]; then
|
||||
echo '{"error":"Device not found"}'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
O=""
|
||||
if [ -e /usr/bin/sms_tool ]; then
|
||||
O=$(sms_tool -D -d $DEVICE at "AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?")
|
||||
else
|
||||
O=$(gcom -d $DEVICE -s $RES/info.gcom 2>/dev/null)
|
||||
fi
|
||||
|
||||
getpath() {
|
||||
devname="$(basename $1)"
|
||||
case "$devname" in
|
||||
'wwan'*'at'*)
|
||||
devpath="$(readlink -f /sys/class/wwan/$devname/device)"
|
||||
P=${devpath%/*/*/*}
|
||||
;;
|
||||
'ttyACM'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
P=${devpath%/*}
|
||||
;;
|
||||
'tty'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
P=${devpath%/*/*}
|
||||
;;
|
||||
*)
|
||||
devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
|
||||
P=${devpath%/*}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# --- modemdefine - WAN config ---
|
||||
CONFIG=modemdefine
|
||||
MODEMZ=$(uci show $CONFIG 2>/dev/null | grep -o "@modemdefine\[[0-9]*\]\.modem" | wc -l | xargs)
|
||||
if [[ $MODEMZ -gt 1 ]]; then
|
||||
SEC=$(uci -q get modemdefine.@general[0].main_network)
|
||||
fi
|
||||
if [[ $MODEMZ -eq 0 ]]; then
|
||||
SEC=$(uci -q get 3ginfo.@3ginfo[0].network)
|
||||
fi
|
||||
if [[ $MODEMZ -eq 1 ]]; then
|
||||
SEC=$(uci -q get modemdefine.@modemdefine[0].network)
|
||||
fi
|
||||
|
||||
if [ -z "$SEC" ]; then
|
||||
getpath $DEVICE
|
||||
PORIG=$P
|
||||
for DEV in /sys/class/tty/* /sys/class/usbmisc/*; do
|
||||
getpath "/dev/"${DEV##/*/}
|
||||
if [ "x$PORIG" == "x$P" ]; then
|
||||
SEC=$(uci show network | grep "/dev/"${DEV##/*/} | cut -f2 -d.)
|
||||
[ -n "$SEC" ] && break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# --- modemdefine config ---
|
||||
|
||||
CONN_TIME="-"
|
||||
RX="-"
|
||||
TX="-"
|
||||
|
||||
NETUP=$(ifstatus $SEC | grep "\"up\": true")
|
||||
if [ -n "$NETUP" ]; then
|
||||
|
||||
CT=$(uci -q -P /var/state/ get network.$SEC.connect_time)
|
||||
if [ -z $CT ]; then
|
||||
CT=$(ifstatus $SEC | awk -F[:,] '/uptime/ {print $2}' | xargs)
|
||||
else
|
||||
UPTIME=$(cut -d. -f1 /proc/uptime)
|
||||
CT=$((UPTIME-CT))
|
||||
fi
|
||||
if [ ! -z $CT ]; then
|
||||
|
||||
D=$(expr $CT / 60 / 60 / 24)
|
||||
H=$(expr $CT / 60 / 60 % 24)
|
||||
M=$(expr $CT / 60 % 60)
|
||||
S=$(expr $CT % 60)
|
||||
CONN_TIME=$(printf "%dd, %02d:%02d:%02d" $D $H $M $S)
|
||||
CONN_TIME_SINCE=$(date "+%Y%m%d%H%M%S" -d "@$(($(date +%s) - CT))")
|
||||
|
||||
fi
|
||||
|
||||
IFACE=$(ifstatus $SEC | awk -F\" '/l3_device/ {print $4}')
|
||||
if [ -n "$IFACE" ]; then
|
||||
RX=$(ifconfig $IFACE | awk -F[\(\)] '/bytes/ {printf "%s",$2}')
|
||||
TX=$(ifconfig $IFACE | awk -F[\(\)] '/bytes/ {printf "%s",$4}')
|
||||
fi
|
||||
fi
|
||||
|
||||
# CSQ
|
||||
CSQ=$(echo "$O" | awk -F[,\ ] '/^\+CSQ/ {print $2}')
|
||||
|
||||
[ "x$CSQ" == "x" ] && CSQ=-1
|
||||
if [ $CSQ -ge 0 -a $CSQ -le 31 ]; then
|
||||
CSQ_PER=$(($CSQ * 100/31))
|
||||
else
|
||||
CSQ=""
|
||||
CSQ_PER=""
|
||||
fi
|
||||
|
||||
# COPS numeric
|
||||
# see https://mcc-mnc.com/
|
||||
# Update: 28/04/2024 items: 2970
|
||||
COPS=""
|
||||
COPS_MCC=""
|
||||
COPS_MNC=""
|
||||
COPS_NUM=$(echo "$O" | awk -F[\"] '/^\+COPS:\s*.,2/ {print $2}')
|
||||
if [ -n "$COPS_NUM" ]; then
|
||||
COPS_MCC=${COPS_NUM:0:3}
|
||||
COPS_MNC=${COPS_NUM:3:3}
|
||||
fi
|
||||
|
||||
TCOPS=$(echo "$O" | awk -F[\"] '/^\+COPS:\s*.,0/ {print $2}')
|
||||
[ "x$TCOPS" != "x" ] && COPS="$TCOPS"
|
||||
|
||||
if [ -z "$COPS" ]; then
|
||||
if [ -n "$COPS_NUM" ]; then
|
||||
COPS=$(awk -F[\;] '/^'$COPS_NUM';/ {print $3}' $RES/mccmnc.dat | xargs)
|
||||
LOC=$(awk -F[\;] '/^'$COPS_NUM';/ {print $2}' $RES/mccmnc.dat)
|
||||
fi
|
||||
fi
|
||||
[ -z "$COPS" ] && COPS=$COPS_NUM
|
||||
case "$COPS" in
|
||||
*\ *)
|
||||
COPS=$(echo "$COPS" | awk '{if(NF==2 && tolower($1)==tolower($2)){print $1}else{print $0}}')
|
||||
;;
|
||||
esac
|
||||
|
||||
isp=$(sms_tool -d "$DEVICE" at "AT+COPS?" | sed -n '2p' | cut -d '"' -f2 | tr -d '\r')
|
||||
isp_num="$COPS_MCC $COPS_MNC"
|
||||
isp_numws="$COPS_MCC$COPS_MNC"
|
||||
|
||||
case "$COPS" in
|
||||
*[!0-9]* | '')
|
||||
# Non-numeric characters or is blank
|
||||
;;
|
||||
*)
|
||||
if [ "$COPS" = "$isp_num" ] || [ "$COPS" = "$isp_numws" ]; then
|
||||
if [ -n "$isp" ]; then
|
||||
COPS=$(awk -F[\;] '/^'"$isp"';/ {print $3}' $RES/mccmnc.dat | xargs)
|
||||
LOC=$(awk -F[\;] '/^'"$isp"';/ {print $2}' $RES/mccmnc.dat)
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# operator location from temporary config
|
||||
LOCATIONFILE=/tmp/location
|
||||
if [ -e "$LOCATIONFILE" ]; then
|
||||
touch $LOCATIONFILE
|
||||
LOC=$(cat $LOCATIONFILE)
|
||||
if [ -n "$LOC" ]; then
|
||||
LOC=$(cat $LOCATIONFILE)
|
||||
if [[ $LOC == "-" ]]; then
|
||||
rm $LOCATIONFILE
|
||||
LOC=$(awk -F[\;] '/^'$COPS_NUM';/ {print $2}' $RES/mccmnc.dat)
|
||||
if [ -n "$LOC" ]; then
|
||||
echo "$LOC" > /tmp/location
|
||||
fi
|
||||
else
|
||||
LOC=$(awk -F[\;] '/^'$COPS_NUM';/ {print $2}' $RES/mccmnc.dat)
|
||||
if [ -n "$LOC" ]; then
|
||||
echo "$LOC" > /tmp/location
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
case "$COPS_MCC$COPS_MNC" in
|
||||
*[!0-9]* | '')
|
||||
# Non-numeric characters or is blank
|
||||
;;
|
||||
*)
|
||||
if [ -n "$LOC" ]; then
|
||||
LOC=$(awk -F[\;] '/^'"$COPS_MCC$COPS_MNC"';/ {print $2}' $RES/mccmnc.dat)
|
||||
echo "$LOC" > /tmp/location
|
||||
else
|
||||
echo "-" > /tmp/location
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,\ ] '/^\+CPIN:/ {print $0;exit}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ "$T" == "+CPIN: READY" ] || REG=$(echo "$T" | cut -f2 -d: | xargs)
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,\ ] '/^\+CME ERROR:/ {print $0;exit}')
|
||||
if [ -n "$T" ]; then
|
||||
case "$T" in
|
||||
"+CME ERROR: 10"*) REG="SIM not inserted";;
|
||||
"+CME ERROR: 11"*) REG="SIM PIN required";;
|
||||
"+CME ERROR: 12"*) REG="SIM PUK required";;
|
||||
"+CME ERROR: 13"*) REG="SIM failure";;
|
||||
"+CME ERROR: 14"*) REG="SIM busy";;
|
||||
"+CME ERROR: 15"*) REG="SIM wrong";;
|
||||
"+CME ERROR: 17"*) REG="SIM PIN2 required";;
|
||||
"+CME ERROR: 18"*) REG="SIM PUK2 required";;
|
||||
*) REG=$(echo "$T" | cut -f2 -d: | xargs);;
|
||||
esac
|
||||
fi
|
||||
|
||||
# CREG
|
||||
eval $(echo "$O" | awk -F[,] '/^\+CREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";LAC_HEX=\"%X\";CID_HEX=\"%X\";LAC_DEC=\"%d\";CID_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, "0x"$4, "0x"$3, "0x"$4, $5}')
|
||||
case "$T" in
|
||||
0*) REG="0";;
|
||||
1*) REG="1";;
|
||||
2*) REG="2";;
|
||||
3*) REG="3";;
|
||||
5*) REG="5";;
|
||||
6*) REG="6";;
|
||||
7*) REG="7";;
|
||||
*) REG="";;
|
||||
esac
|
||||
|
||||
# MODE
|
||||
if [ -z "$MODE_NUM" ] || [ "x$MODE_NUM" == "x0" ]; then
|
||||
MODE_NUM=$(echo "$O" | awk -F[,] '/^\+COPS/ {print $4;exit}' | xargs)
|
||||
fi
|
||||
case "$MODE_NUM" in
|
||||
2*) MODE="UMTS";;
|
||||
3*) MODE="EDGE";;
|
||||
4*) MODE="HSDPA";;
|
||||
5*) MODE="HSUPA";;
|
||||
6*) MODE="HSPA";;
|
||||
7*) MODE="LTE";;
|
||||
*) MODE="-";;
|
||||
esac
|
||||
|
||||
# TAC
|
||||
OTX=$(sms_tool -d $DEVICE at "at+cereg")
|
||||
TAC=$(echo "$OTX" | awk -F[,] '/^\+CEREG/ {printf "%s", toupper($3)}' | sed 's/[^A-F0-9]//g')
|
||||
if [ "x$TAC" != "x" ]; then
|
||||
TAC_HEX=$(printf %d 0x$TAC)
|
||||
else
|
||||
TAC="-"
|
||||
TAC_HEX="-"
|
||||
fi
|
||||
|
||||
CONF_DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
|
||||
if echo "x$CONF_DEVICE" | grep -q "192.168."; then
|
||||
if grep -q "Vendor=1bbb" /sys/kernel/debug/usb/devices; then
|
||||
. $RES/modem/hilink/alcatel_hilink.sh $DEVICE
|
||||
fi
|
||||
if grep -q "Vendor=12d1" /sys/kernel/debug/usb/devices; then
|
||||
. $RES/modem/hilink/huawei_hilink.sh $DEVICE
|
||||
fi
|
||||
if grep -q "Vendor=19d2" /sys/kernel/debug/usb/devices; then
|
||||
. $RES/modem/hilink/zte.sh $DEVICE
|
||||
fi
|
||||
SEC=$(uci -q get 3ginfo.@3ginfo[0].network)
|
||||
SEC=${SEC:-wan}
|
||||
else
|
||||
|
||||
if [ -e /usr/bin/sms_tool ]; then
|
||||
REGOK=0
|
||||
[ "x$REG" == "x1" ] || [ "x$REG" == "x5" ] || [ "x$REG" == "x6" ] || [ "x$REG" == "x7" ] && REGOK=1
|
||||
VIDPID=$(getdevicevendorproduct $DEVICE)
|
||||
if [ -e "$RES/modem/$VIDPID" ]; then
|
||||
case $(cat /tmp/sysinfo/board_name) in
|
||||
"zte,mf289f")
|
||||
. "$RES/modem/usb/19d21485"
|
||||
;;
|
||||
*)
|
||||
. "$RES/modem/$VIDPID"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
cat <<EOF
|
||||
{
|
||||
"conn_time":"$CONN_TIME",
|
||||
"conn_time_sec":"$CT",
|
||||
"conn_time_since":"$CONN_TIME_SINCE",
|
||||
"rx":"$RX",
|
||||
"tx":"$TX",
|
||||
"modem":"$MODEL",
|
||||
"mtemp":"$TEMP",
|
||||
"firmware":"$FW",
|
||||
"cport":"$DEVICE",
|
||||
"protocol":"$PROTO",
|
||||
"csq":"$CSQ",
|
||||
"signal":"$CSQ_PER",
|
||||
"operator_name":"$COPS",
|
||||
"operator_mcc":"$COPS_MCC",
|
||||
"operator_mnc":"$COPS_MNC",
|
||||
"location":"$LOC",
|
||||
"mode":"$MODE",
|
||||
"registration":"$REG",
|
||||
"simslot":"$SSIM",
|
||||
"imei":"$NR_IMEI",
|
||||
"imsi":"$NR_IMSI",
|
||||
"iccid":"$NR_ICCID",
|
||||
"lac_dec":"$LAC_DEC",
|
||||
"lac_hex":"$LAC_HEX",
|
||||
"tac_dec":"$TAC_DEC",
|
||||
"tac_hex":"$TAC_HEX",
|
||||
"tac_h":"$T_HEX",
|
||||
"tac_d":"$T_DEC",
|
||||
"cid_dec":"$CID_DEC",
|
||||
"cid_hex":"$CID_HEX",
|
||||
"pci":"$PCI",
|
||||
"earfcn":"$EARFCN",
|
||||
"pband":"$PBAND",
|
||||
"s1band":"$S1BAND",
|
||||
"s1pci":"$S1PCI",
|
||||
"s1earfcn":"$S1EARFCN",
|
||||
"s2band":"$S2BAND",
|
||||
"s2pci":"$S2PCI",
|
||||
"s2earfcn":"$S2EARFCN",
|
||||
"s3band":"$S3BAND",
|
||||
"s3pci":"$S3PCI",
|
||||
"s3earfcn":"$S3EARFCN",
|
||||
"s4band":"$S4BAND",
|
||||
"s4pci":"$S4PCI",
|
||||
"s4earfcn":"$S4EARFCN",
|
||||
"rsrp":"$RSRP",
|
||||
"rsrq":"$RSRQ",
|
||||
"rssi":"$RSSI",
|
||||
"sinr":"$SINR"
|
||||
}
|
||||
EOF
|
||||
exit 0
|
@ -1,13 +0,0 @@
|
||||
opengt
|
||||
set com 115200n81
|
||||
set comecho off
|
||||
set senddelay 0.01
|
||||
waitquiet 0.01 0.01
|
||||
|
||||
send "AT+CPIN?^m"
|
||||
waitfor 2 "OK" "+CME ERROR"
|
||||
if % = -1 goto timeout
|
||||
exit 0
|
||||
|
||||
:timeout
|
||||
exit 1
|
@ -1,104 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# (c) 2023-2024 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
# (c) 2023-2024 modified by Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# from config modemdefine
|
||||
#
|
||||
CONFIG=modemdefine
|
||||
MODEMZ=$(uci show $CONFIG 2>/dev/null | grep -o "@modemdefine\[[0-9]*\]\.modem" | wc -l | xargs)
|
||||
if [ -n "$MODEMZ" ]; then
|
||||
|
||||
if [[ $MODEMZ = 0 ]]; then
|
||||
DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
|
||||
if [ -n "$DEVICE" ]; then
|
||||
echo $DEVICE
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $MODEMZ = 1 ]]; then
|
||||
DEVICE=$(uci -q get modemdefine.@modemdefine[0].comm_port)
|
||||
if [ -n "$DEVICE" ]; then
|
||||
echo $DEVICE
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $MODEMZ > 1 ]]; then
|
||||
DEVICE=$(uci -q get modemdefine.@general[0].main_modem)
|
||||
if [ -n "$DEVICE" ]; then
|
||||
echo $DEVICE
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
getdevicepath() {
|
||||
devname="$(basename $1)"
|
||||
case "$devname" in
|
||||
'wwan'*'at'*)
|
||||
devpath="$(readlink -f /sys/class/wwan/$devname/device)"
|
||||
echo ${devpath%/*/*/*}
|
||||
;;
|
||||
'ttyACM'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
echo ${devpath%/*}
|
||||
;;
|
||||
'tty'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
echo ${devpath%/*/*}
|
||||
;;
|
||||
*)
|
||||
devpath="$(readlink -f /sys/class/usbmisc/$devname/device)"
|
||||
echo ${devpath%/*}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# from config
|
||||
DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
|
||||
if [ -n "$DEVICE" ]; then
|
||||
echo $DEVICE
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# from temporary config
|
||||
MODEMFILE=/tmp/modem
|
||||
touch $MODEMFILE
|
||||
DEVICE=$(cat $MODEMFILE)
|
||||
if [ -n "$DEVICE" ]; then
|
||||
echo $DEVICE
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# find any device
|
||||
DEVICES=$(find /dev -name "ttyUSB*" -o -name "ttyACM*" -o -name "wwan*at*" | sort -r)
|
||||
# limit to devices from the modem
|
||||
WAN=$(uci -q get network.wan.device)
|
||||
if [ -e "$WAN" ]; then
|
||||
DEVPATH=$(getdevicepath "$WAN")
|
||||
DEVICESFOUND=""
|
||||
for DEVICE in $DEVICES; do
|
||||
T=$(getdevicepath $DEVICE)
|
||||
[ "x$T" = "x$DEVPATH" ] && DEVICESFOUND="$DEVICESFOUND $DEVICE"
|
||||
done
|
||||
DEVICES="$DEVICESFOUND"
|
||||
fi
|
||||
|
||||
for DEVICE in $DEVICES; do
|
||||
gcom -d $DEVICE -s /usr/share/3ginfo-lite/check.gcom >/dev/null 2>&1
|
||||
if [ $? = 0 ]; then
|
||||
echo "$DEVICE" | tee $MODEMFILE
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
exit 0
|
@ -1,51 +0,0 @@
|
||||
opengt
|
||||
set com 115200n81
|
||||
set comecho off
|
||||
set senddelay 0.01
|
||||
waitquiet 0.01 0.01
|
||||
|
||||
let $c="AT+CSQ^m"
|
||||
let $r="+CSQ"
|
||||
gosub readatcmd
|
||||
|
||||
let $c="AT+COPS=3,0;+COPS?^m"
|
||||
let $r="+COPS"
|
||||
gosub readatcmd
|
||||
|
||||
let $c="AT+COPS=3,2;+COPS?^m"
|
||||
let $r="+COPS"
|
||||
gosub readatcmd
|
||||
|
||||
let $c="AT+CREG=2;+CREG?^m"
|
||||
let $r="+CREG"
|
||||
gosub readatcmd
|
||||
|
||||
let $c="AT+CPIN?^m"
|
||||
let $r="+CPIN"
|
||||
gosub readatcmd
|
||||
|
||||
exit 0
|
||||
|
||||
:readatcmd
|
||||
let i=15
|
||||
send $c
|
||||
:loop
|
||||
get 0.1 "^m" $s
|
||||
let l=len($r)
|
||||
if len($s) < l goto loop1
|
||||
if $mid($s,1,l) <> $r goto loop1
|
||||
print $s
|
||||
return
|
||||
|
||||
:loop1
|
||||
if len($s) < 2 goto loop2
|
||||
if $mid($s,1,2) = "ER" return
|
||||
if $mid($s,1,2) = "CO" return
|
||||
if len($s) < 10 goto loop2
|
||||
if $mid($s,1,10) != "+CME ERROR" goto loop2
|
||||
print $s
|
||||
return
|
||||
:loop2
|
||||
if i = 0 exit 0
|
||||
let i=i-1
|
||||
goto loop
|
@ -1,63 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# (c) 2010-2021 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
# (c) 2021 modified by Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
|
||||
IP=$1
|
||||
[ -z "$IP" ] && exit 0
|
||||
[ -e /usr/bin/wget ] || exit 0
|
||||
|
||||
getvaluen() {
|
||||
echo $(sed 's!.*"'$2'":\([^,]*\).*!\1!g' /tmp/$1)
|
||||
}
|
||||
|
||||
getvalue() {
|
||||
echo $(sed 's!.*"'$2'":"\([^"]*\).*!\1!g' /tmp/$1)
|
||||
}
|
||||
|
||||
rand=`awk 'BEGIN{srand();print int(rand()*(99000-1000))+1000 }'`
|
||||
|
||||
files="getWanInfo getImgInfo getSysteminfo"
|
||||
for f in $files; do
|
||||
wget -t 3 -O /tmp/$f "http://$IP/goform/$f?rand=$rand" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
MODEN=$(getvaluen getWanInfo "network_type")
|
||||
case $MODEN in
|
||||
1) MODE="GPRS";;
|
||||
2) MODE="EDGE";;
|
||||
3) MODE="HSDPA";;
|
||||
4) MODE="HSUPA";;
|
||||
5) MODE="UMTS";;
|
||||
9) MODE="GSM";;
|
||||
11) MODE="LTE";;
|
||||
12) MODE="HSPA+";;
|
||||
13) MODE="DC HSPA+";;
|
||||
*) MODE="-";;
|
||||
esac
|
||||
echo "^SYSINFOEX:x,x,x,x,,x,\"$MODE\",$MODEN,\"$MODE\""
|
||||
|
||||
COPS=$(getvalue getWanInfo "network_name")
|
||||
echo "+COPS: 0,0,\"$OPER\",x"
|
||||
|
||||
SIGNAL=$(getvaluen getImgInfo "signal")
|
||||
case $SIGNAL in
|
||||
1) CSQ="6";;
|
||||
2) CSQ="12";;
|
||||
3) CSQ="18";;
|
||||
4) CSQ="24";;
|
||||
5) CSQ="31";;
|
||||
*) CSQ="0";;
|
||||
esac
|
||||
echo "+CSQ: $CSQ,99"
|
||||
|
||||
MODEL=$(getvalue getSysteminfo "dev_name")
|
||||
echo MODEL="Alcatel $MODEL"
|
||||
|
||||
if [ "x$2" != "xdebug" ]; then
|
||||
for f in $files; do
|
||||
rm /tmp/$f
|
||||
done
|
||||
fi
|
@ -1,248 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# (c) 2010-2021 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
# (c) 2024 modified by Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
|
||||
IP=$1
|
||||
[ -z "$IP" ] && exit 0
|
||||
[ -e /usr/bin/wget ] || exit 0
|
||||
getvaluen() {
|
||||
echo $(awk -F[\<\>] '/<'$2'>/ {print $3}' /tmp/$1 | sed 's/[^0-9]//g')
|
||||
}
|
||||
|
||||
getvaluens() {
|
||||
echo $(awk -F[\<\>] '/<'$2'>/ {print $3}' /tmp/$1 | sed 's/[^0-9-]//g')
|
||||
}
|
||||
|
||||
getvalue() {
|
||||
echo $(awk -F[\<\>] '/<'$2'>/ {print $3}' /tmp/$1)
|
||||
}
|
||||
|
||||
cookie=$(mktemp)
|
||||
/usr/bin/wget -t 25 -O /tmp/webserver-token "http://$IP/api/webserver/token" >/dev/null 2>&1
|
||||
token=$(getvaluen webserver-token token)
|
||||
if [ -z "$token" ]; then
|
||||
/usr/bin/wget -t 25 -O /tmp/webserver-token "http://$IP/api/webserver/SesTokInfo" >/dev/null 2>&1
|
||||
sesinfo=$(getvalue webserver-token SesInfo)
|
||||
fi
|
||||
if [ -z "$sesinfo" ]; then
|
||||
/usr/bin/wget -q -O /dev/null --keep-session-cookies --save-cookies $cookie "http://$IP/html/home.html"
|
||||
fi
|
||||
|
||||
files="device/signal monitoring/status net/current-plmn net/signal-para device/information device/basic_information"
|
||||
for f in $files; do
|
||||
nf=$(echo $f | sed 's!/!-!g')
|
||||
if [ -n "$token" ]; then
|
||||
/usr/bin/wget -t 3 -O /tmp/$nf "http://$IP/api/$f" --header "__RequestVerificationToken: $token" >/dev/null 2>&1
|
||||
elif [ -n "$sesinfo" ]; then
|
||||
/usr/bin/wget -t 3 -O /tmp/$nf "http://$IP/api/$f" --header "Cookie: $sesinfo" >/dev/null 2>&1
|
||||
else
|
||||
/usr/bin/wget -t 3 -O /tmp/$nf "http://$IP/api/$f" --load-cookies=$cookie >/dev/null 2>&1
|
||||
fi
|
||||
done
|
||||
|
||||
# Protocol
|
||||
# Driver=qmi_wwan & Driver=cdc_mbim & Driver=cdc_ether & Driver=huawei_cdc_ncm
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=12d1 ProdID=' '{print $2}' | cut -c-1108)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
elif echo "$PVCUT" | grep -q "Driver=huawei_cdc_ncm"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
||||
|
||||
RSSI=$(getvalue device-signal rssi)
|
||||
if [ "$RSSI" == "<=-113dBm" ]; then
|
||||
RSSI=
|
||||
else
|
||||
RSSI=$(echo "$RSSI" | sed 's/[^0-9]//g')
|
||||
fi
|
||||
if [ -n "$RSSI" ]; then
|
||||
CSQ=$(((-1*RSSI + 113)/2))
|
||||
CSQ_PER=$(($CSQ * 100/31))
|
||||
else
|
||||
CSQ_PER=$(getvaluen monitoring-status SignalStrength)
|
||||
if [ -z "$CSQ_PER" ]; then
|
||||
CSQ_PER=$(getvaluen monitoring-status SignalIcon)
|
||||
if [ -n "$CSQ_PER" ]; then
|
||||
CSQ_PER=$((($CSQ_PER * 20) - 19))
|
||||
fi
|
||||
fi
|
||||
if [ -n "$CSQ_PER" ]; then
|
||||
CSQ=$((($CSQ_PER*31)/100))
|
||||
fi
|
||||
fi
|
||||
|
||||
MODEN=$(getvaluen monitoring-status CurrentNetworkType)
|
||||
case $MODEN in
|
||||
0) MODE="NOSERVICE";;
|
||||
1) MODE="GSM";;
|
||||
2) MODE="GPRS";;
|
||||
3) MODE="EDGE";;
|
||||
4) MODE="WCDMA";;
|
||||
5) MODE="HSDPA";;
|
||||
6) MODE="HSUPA";;
|
||||
7) MODE="HSPA";;
|
||||
8) MODE="TDSCDMA";;
|
||||
9) MODE="HSPA+";;
|
||||
10) MODE="EVDO rev. 0";;
|
||||
11) MODE="EVDO rev. A";;
|
||||
12) MODE="EVDO rev. B";;
|
||||
13) MODE="1xRTT";;
|
||||
14) MODE="UMB";;
|
||||
15) MODE="1xEVDV";;
|
||||
16) MODE="3xRTT";;
|
||||
17) MODE="HSPA+64QAM";;
|
||||
18) MODE="HSPA+MIMO";;
|
||||
19) MODE="LTE";;
|
||||
21) MODE="IS95A";;
|
||||
22) MODE="IS95B";;
|
||||
23) MODE="CDMA1x";;
|
||||
24) MODE="EVDO rev. 0";;
|
||||
25) MODE="EVDO rev. A";;
|
||||
26) MODE="EVDO rev. B";;
|
||||
27) MODE="Hybrydowa CDMA1x";;
|
||||
28) MODE="Hybrydowa EVDO rev. 0";;
|
||||
29) MODE="Hybrydowa EVDO rev. A";;
|
||||
30) MODE="Hybrydowa EVDO rev. B";;
|
||||
31) MODE="EHRPD rev. 0";;
|
||||
32) MODE="EHRPD rev. A";;
|
||||
33) MODE="EHRPD rev. B";;
|
||||
34) MODE="Hybrydowa EHRPD rev. 0";;
|
||||
35) MODE="Hybrydowa EHRPD rev. A";;
|
||||
36) MODE="Hybrydowa EHRPD rev. B";;
|
||||
41) MODE="WCDMA (UMTS)";;
|
||||
42) MODE="HSDPA";;
|
||||
43) MODE="HSUPA";;
|
||||
44) MODE="HSPA";;
|
||||
45) MODE="HSPA+";;
|
||||
46) MODE="DC-HSPA+";;
|
||||
61) MODE="TD SCDMA";;
|
||||
62) MODE="TD HSDPA";;
|
||||
63) MODE="TD HSUPA";;
|
||||
64) MODE="TD HSPA";;
|
||||
65) MODE="TD HSPA+";;
|
||||
81) MODE="802.16E";;
|
||||
101) MODE="LTE";;
|
||||
*) MODE="-";;
|
||||
esac
|
||||
|
||||
if [ "x$MODE" = "xLTE" ] || [ "x$MODE" = "xNOSERVICE"]; then
|
||||
RSRP=$(getvaluens device-signal rsrp)
|
||||
SINR=$(getvaluens device-signal sinr)
|
||||
RSRQ=$(getvaluens device-signal rsrq)
|
||||
fi
|
||||
|
||||
MODEL=$(getvalue device-information DeviceName)
|
||||
if [ -n "$MODEL" ]; then
|
||||
class=$(getvalue device-information Classify)
|
||||
MODEL="Huawei $MODEL ($class)"
|
||||
else
|
||||
MODEL=$(getvalue device-basic_information devicename)
|
||||
class=$(getvalue device-basic_information classify)
|
||||
[ -n "$MODEL" ] && MODEL="Huawei $MODEL ($class)"
|
||||
fi
|
||||
|
||||
FW=$(getvalue device-information SoftwareVersion)
|
||||
if [ -n "$FW" ]; then
|
||||
rev=$(getvalue device-information HardwareVersion)
|
||||
FW="$rev / $FW"
|
||||
fi
|
||||
|
||||
if [ -z "$FW" ]
|
||||
then
|
||||
FW='-'
|
||||
fi
|
||||
|
||||
if [ -z "$TEMP" ]
|
||||
then
|
||||
TEMP='-'
|
||||
fi
|
||||
|
||||
COPSA=$(getvaluen net-current-plmn Numeric)
|
||||
COPSB=$(echo "${COPSA}" | cut -c1-3)
|
||||
COPSC=$(echo -n $COPSA | tail -c 2)
|
||||
COPS_MCC="$COPSB"
|
||||
COPS_MNC="$COPSC"
|
||||
|
||||
COPS=$(getvalue net-current-plmn ShortName)
|
||||
|
||||
if [[ $COPSA =~ ^[0-9]+$ ]]; then
|
||||
if [ -z "$COPS" ]
|
||||
then
|
||||
COPS=$(awk -F[\;] '/^'$COPSA';/ {print $3}' $RES/mccmnc.dat | xargs)
|
||||
fi
|
||||
LOC=$(awk -F[\;] '/^'$COPSA';/ {print $2}' $RES/mccmnc.dat)
|
||||
fi
|
||||
|
||||
# operator location from temporary config
|
||||
LOCATIONFILE=/tmp/location
|
||||
if [ -e "$LOCATIONFILE" ]; then
|
||||
touch $LOCATIONFILE
|
||||
LOC=$(cat $LOCATIONFILE)
|
||||
if [ -n "$LOC" ]; then
|
||||
LOC=$(cat $LOCATIONFILE)
|
||||
if [[ $LOC == "-" ]]; then
|
||||
rm $LOCATIONFILE
|
||||
LOC=$(awk -F[\;] '/^'$COPSA';/ {print $2}' $RES/mccmnc.dat)
|
||||
if [ -n "$LOC" ]; then
|
||||
echo "$LOC" > /tmp/location
|
||||
fi
|
||||
else
|
||||
LOC=$(awk -F[\;] '/^'$COPSA';/ {print $2}' $RES/mccmnc.dat)
|
||||
if [ -n "$LOC" ]; then
|
||||
echo "$LOC" > /tmp/location
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "$COPS_MCC$COPS_MNC" =~ ^[0-9]+$ ]]; then
|
||||
if [ -n "$LOC" ]; then
|
||||
LOC=$(awk -F[\;] '/^'$COPS_MCC$COPS_MNC';/ {print $2}' $RES/mccmnc.dat)
|
||||
echo "$LOC" > /tmp/location
|
||||
else
|
||||
echo "-" > /tmp/location
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
LAC_HEX=$(getvalue net-signal-para Lac)
|
||||
if [ -z "$LAC_HEX" ]; then
|
||||
/usr/bin/wget -t 3 -O /tmp/add-param "http://$IP/config/deviceinformation/add_param.xml" > /dev/null 2>&1
|
||||
LAC_HEX=$(getvalue add-param lac)
|
||||
rm /tmp/add-param
|
||||
fi
|
||||
if [ -z "$LAC_HEX" ]
|
||||
then
|
||||
LAC_HEX='-'
|
||||
fi
|
||||
|
||||
CID_HEX=$(getvalue net-signal-para CellID)
|
||||
if [ -z "$CID_HEX" ]; then
|
||||
CID_HEX=$(getvalue device-signal cell_id)
|
||||
[ -n "$CID_HEX" ] && CID_HEX=$(printf %0X $CID_HEX)
|
||||
fi
|
||||
|
||||
if [ -z "$CID_HEX" ]
|
||||
then
|
||||
CID_HEX='-'
|
||||
fi
|
||||
|
||||
if [ -z "$CID_DEC" ]
|
||||
then
|
||||
[ -n "$CID_HEX" ] && CID_DEC=$(echo $((0x$CID_HEX)))
|
||||
fi
|
||||
|
||||
rm $cookie
|
||||
break
|
||||
|
@ -1,62 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# (c) 2010-2021 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
# (c) 2021 modified by Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
|
||||
IP=$1
|
||||
[ -z "$IP" ] && exit 0
|
||||
|
||||
T=$(mktemp)
|
||||
wget -q -O $T "http://$IP/goform/goform_get_cmd_process?multi_data=1&cmd=manufacturer_name,model_name,network_provider,network_type,lte_rsrp,lte_rsrq,lte_rssi,lte_snr,cell_id,lac_code,hmcc,hmnc,rmcc,rmnc,rssi,rscp,ecio"
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
json_load "$(cat $T)"
|
||||
|
||||
json_get_vars manufacturer_name model_name network_provider network_type lte_rsrp lte_rsrq lte_rssi lte_snr cell_id lac_code hmcc hmnc rmcc rmnc rssi rscp ecio
|
||||
|
||||
if [ -n "$lte_rssi" ]; then
|
||||
RSSI=$lte_rssi
|
||||
fi
|
||||
if [ -n "$rssi" ]; then
|
||||
CSQ=$(((rssi+113)/2))
|
||||
CSQ_PER=$(($CSQ * 100/31))
|
||||
else
|
||||
CSQ=0
|
||||
CSQ_PER=0
|
||||
fi
|
||||
echo "+CSQ: $CSQ,99"
|
||||
|
||||
MODEL=$manufacturer_name $model_name
|
||||
|
||||
MODE=$network_type
|
||||
|
||||
echo "^SYSINFOEX:x,x,x,x,,x,\"$network_type\",x,\"$network_type\""
|
||||
|
||||
if [ -n "$hmcc" ]; then
|
||||
COPS_MCC==$(printf "%03d" $hmcc)
|
||||
else
|
||||
[ -n "$rmcc" ] && COPS_MCC==$(printf "%03d" $rmcc)
|
||||
fi
|
||||
|
||||
if [ -n "$hmnc" ]; then
|
||||
COPS_MNC=$(printf "%02d" $hmnc)
|
||||
else
|
||||
[ -n "$rmnc" ] && COPS_MNC=$(printf "%02d" $rmnc)
|
||||
fi
|
||||
echo "+COPS: 0,2,\"$mcc$mnc\",x"
|
||||
|
||||
if [ "x$network_type" = "xLTE" ]; then
|
||||
echo "^LTERSRP: $lte_rsrp,$lte_rsrq"
|
||||
RSRP=$lte_rsrp
|
||||
RSRQ=$lte_rsrq
|
||||
else
|
||||
echo "^CSNR: $rscp,$ecio"
|
||||
fi
|
||||
|
||||
echo "+CREG: 2,1,\"$lac_code\",\"$cell_id\""
|
||||
CID_HEX=$cell_id
|
||||
LAC_HEX=$lac_code
|
||||
|
||||
rm $T
|
@ -1,204 +0,0 @@
|
||||
# Dell DW5930e
|
||||
# Foxconn T99W175
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^temp")
|
||||
|
||||
T=$(echo "$O" | awk '/^TSENS: / {gsub("C","",$2); print $2}')
|
||||
T1=$(echo "$O" | awk '/^PA: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
[ "$T1" -gt "$T" ] && T="$T1"
|
||||
fi
|
||||
T1=$(echo "$O" | awk '/^Skin Sensor: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
[ "$T1" -gt "$T" ] && T="$T1"
|
||||
fi
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^debug?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
"7")
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q "scell:" && MODE="LTE-A |"
|
||||
;;
|
||||
"11")
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
"13")
|
||||
MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^lte_tac:/ {print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
TAC_HEX=$(printf "%X" $T)
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 pcell)
|
||||
T=$(echo "$O1" | awk -F: '/^pcell:/ {print $3}' | cut -f1 -d" ")
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE $(band4g $T)"
|
||||
T1=$(echo "$O1" | awk -F: '/^pcell:/ {print $4}' | xargs)
|
||||
PBAND="$(band4g $T) @${T1/MHz/} MHz"
|
||||
|
||||
T=$(echo "$O1" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O1" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
[ -n "$T" ] && RSRP="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="${T/dB/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
[ -n "$T" ] && RSSI="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && [ "$T" != "NA" ] && SINR="${T/dB/}"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 scell)
|
||||
IDX=0;
|
||||
while true; do
|
||||
O2=$(echo "$O1" | head -n4)
|
||||
if [ -z "$O2" ]; then
|
||||
break
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^scell:/ {print $3}' | cut -f1 -d" ")
|
||||
MODE="$MODE / $(band4g $T)"
|
||||
T1=$(echo "$O2" | awk -F: '/^scell:/ {print $4}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
|
||||
O1=$(echo "$O1" | sed '1,4d')
|
||||
done
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_band:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE / $(band5g ${T/n/})"
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T1=$(echo "$O" | awk -F: '/^nr_band_width:/ {print $2}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_pci:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_channel:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrp:/ {print $2}' | cut -f1 -d" ")
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrq:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O" | awk -F: '/^nr_snr:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
|
||||
# Modem
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
if echo "$DEVICE" | grep -q "wwan0at0"
|
||||
then
|
||||
PROTO="mbim"
|
||||
fi
|
@ -1,128 +0,0 @@
|
||||
# Telit LN940 (QMI) / Telit LN940 (MBIM) / HP lt4220 (MBIM) / HP lt4220 (QMI)
|
||||
|
||||
O=$(sms_tool -D -d $DEVICE at "AT^CA_INFO?;^RFSTS?;+TEMP")
|
||||
|
||||
TR=$(echo "$O" |grep -A2 RFSTS: | awk 'NR ==2{print $0}')
|
||||
|
||||
if [ "$MODE" = "LTE" ]; then
|
||||
RSRP=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$3}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSRQ=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$5}')
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$16*2-20}')
|
||||
else
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$6}')
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\PCC info: /{print $2}' | sed 's/Band is //g')
|
||||
[ -z "$T" ] && T=$(echo "$O" | awk -F[,] '/^\PCC info: /{print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
PC=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="LTE | $(band4g $PC)"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC1 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC1=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE/LTE/LTE_A} / "$(band4g ${SC1} "")
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC2 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC2=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE} / "$(band4g ${SC2} "")
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed 's,LTE_A,LTE-A ,')
|
||||
|
||||
# Primary band
|
||||
T1=$(echo "$O" | awk '/PCC/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T1" ]; then
|
||||
T2=$(echo "$O" | awk '/PCC/{print $8}' | sed -e 's/Band_width//g')
|
||||
PBAND="$(band4g ${T1/B/} "") @$T2 MHz"
|
||||
EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S1)
|
||||
T3=$(echo "$O" | awk '/SCC1/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T3" ]; then
|
||||
T4=$(echo "$O" | awk '/SCC1/{print $8}' | sed -e 's/Band_width//g')
|
||||
S1BAND="$(band4g ${T3/B/} "") @$T4 MHz"
|
||||
# S1EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S1PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S2)
|
||||
T5=$(echo "$O" | awk '/SCC2/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T5" ]; then
|
||||
T6=$(echo "$O" | awk '/SCC2/{print $8}' | sed -e 's/Band_width//g')
|
||||
S2BAND="$(band4g ${T5/B/} "") @$T6 MHz"
|
||||
# S2EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S2PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F [:] '/tsens_tz_sensor0:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP=$(echo "$T °C")
|
||||
fi
|
||||
|
||||
# Cell ID & LAC & TAC
|
||||
LAC_HEX=$(printf "%X" $LAC_DEC)
|
||||
if [ -n "$LAC_DEC" ]; then
|
||||
TAC_HEX=$LAC_HEX
|
||||
fi
|
||||
CID_HEX=$(printf "%X" $CID_DEC)
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=03f0 ProdID=0857' '{print $2}' | cut -c-1220)
|
||||
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
|
||||
# Model
|
||||
PVMODEL=$(echo $PV | awk -F 'Vendor=03f0 ProdID=0857' '{print $2}' | cut -c-150)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODELBCUT=$(echo $PVMODEL | awk -F 'Manufacturer=|S: Product=' '{print $2}'| xargs)
|
||||
MODELACUT=$(echo $PVMODEL | awk -F 'Product=|S: SerialNumber' '{print $2}'| xargs)
|
||||
MODELC="$MODELBCUT "$MODELACUT
|
||||
MODEL=$(echo "$MODELC" | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | awk -F " " '/GSN /{print $2}')
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | awk -F " " '/CIMI /{print $2}')
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID" | xargs)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# FW
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEV2 | awk -F 'Revision: | IMEI: ' '{print $2}' | cut -c-50)
|
@ -1,128 +0,0 @@
|
||||
# Telit LN940 (QMI) / Telit LN940 (MBIM) / HP lt4220 (MBIM) / HP lt4220 (QMI)
|
||||
|
||||
O=$(sms_tool -D -d $DEVICE at "AT^CA_INFO?;^RFSTS?;+TEMP")
|
||||
|
||||
TR=$(echo "$O" |grep -A2 RFSTS: | awk 'NR ==2{print $0}')
|
||||
|
||||
if [ "$MODE" = "LTE" ]; then
|
||||
RSRP=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$3}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSRQ=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$5}')
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$16*2-20}')
|
||||
else
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$6}')
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\PCC info: /{print $2}' | sed 's/Band is //g')
|
||||
[ -z "$T" ] && T=$(echo "$O" | awk -F[,] '/^\PCC info: /{print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
PC=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="LTE | $(band4g $PC)"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC1 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC1=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE/LTE/LTE_A} / "$(band4g ${SC1} "")
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC2 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC2=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE} / "$(band4g ${SC2} "")
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed 's,LTE_A,LTE-A ,')
|
||||
|
||||
# Primary band
|
||||
T1=$(echo "$O" | awk '/PCC/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T1" ]; then
|
||||
T2=$(echo "$O" | awk '/PCC/{print $8}' | sed -e 's/Band_width//g')
|
||||
PBAND="$(band4g ${T1/B/} "") @$T2 MHz"
|
||||
EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S1)
|
||||
T3=$(echo "$O" | awk '/SCC1/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T3" ]; then
|
||||
T4=$(echo "$O" | awk '/SCC1/{print $8}' | sed -e 's/Band_width//g')
|
||||
S1BAND="$(band4g ${T3/B/} "") @$T4 MHz"
|
||||
# S1EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S1PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S2)
|
||||
T5=$(echo "$O" | awk '/SCC2/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T5" ]; then
|
||||
T6=$(echo "$O" | awk '/SCC2/{print $8}' | sed -e 's/Band_width//g')
|
||||
S2BAND="$(band4g ${T5/B/} "") @$T6 MHz"
|
||||
# S2EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S2PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F [:] '/tsens_tz_sensor0:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP=$(echo "$T °C")
|
||||
fi
|
||||
|
||||
# Cell ID & LAC & TAC
|
||||
LAC_HEX=$(printf "%X" $LAC_DEC)
|
||||
if [ -n "$LAC_DEC" ]; then
|
||||
TAC_HEX=$LAC_HEX
|
||||
fi
|
||||
CID_HEX=$(printf "%X" $CID_DEC)
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=03f0 ProdID=0a57' '{print $2}' | cut -c-1220)
|
||||
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
|
||||
# Model
|
||||
PVMODEL=$(echo $PV | awk -F 'Vendor=03f0 ProdID=0a57' '{print $2}' | cut -c-150)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODELBCUT=$(echo $PVMODEL | awk -F 'Manufacturer=|S: Product=' '{print $2}'| xargs)
|
||||
MODELACUT=$(echo $PVMODEL | awk -F 'Product=|S: SerialNumber' '{print $2}'| xargs)
|
||||
MODELC="$MODELBCUT "$MODELACUT
|
||||
MODEL=$(echo "$MODELC" | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | awk -F " " '/GSN /{print $2}')
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | awk -F " " '/CIMI /{print $2}')
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID" | xargs)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# FW
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEV2 | awk -F 'Revision: | IMEI: ' '{print $2}' | cut -c-50)
|
@ -1,113 +0,0 @@
|
||||
# Huawei E3272/E3372/E3276
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^chiptemp?;^hcsq?")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$T"
|
||||
|
||||
case "$MODE" in
|
||||
WCDMA*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
RSCP=$(awk 'BEGIN {print -121 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSCP":"'$RSCP' dBm"}'
|
||||
ECIO=$(awk 'BEGIN {print -32.5 + '$PARAM3'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"ECIO":"'$ECIO' dB"}'
|
||||
;;
|
||||
LTE*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
PARAM4=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $6}' | xargs)
|
||||
RSRP=$(awk 'BEGIN {print -141 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'$RSRP' dBm"}'
|
||||
SINR=$(awk 'BEGIN {print -20.2 + '$PARAM3'/5}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$SINR' dB"}'
|
||||
RSRQ=$(awk 'BEGIN {print -20 + '$PARAM4'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRQ":"'$RSRQ' dB"}'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
MODELB=$(echo $DEV2 | awk -F 'Manufacturer:|Revision:' '{print $2}'| xargs)
|
||||
MODELC=$(echo $MODELB | sed 's/Model://' | xargs)
|
||||
MODEL=$(echo $MODELC | awk '{print toupper(substr($0,0,1))tolower(substr($0,2))}')
|
||||
FW=$(echo $DEV2 | awk -F 'Revision:|IMEI' '{print $2}'| xargs)
|
||||
|
||||
# Protocol
|
||||
# Driver=qmi_wwan & Driver=cdc_mbim & Driver=cdc_ether & Driver=huawei_cdc_ncm
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=12d1 ProdID=1506' '{print $2}' | cut -c-1104)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
elif echo "$PVCUT" | grep -q "cdc_ncm"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed 's/AT+GSN//g' | xargs)
|
||||
if [ -n "NR_I" ]
|
||||
then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT^ICCID?")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# DL / UL / Band
|
||||
OTB=$(sms_tool -d $DEVICE at "AT^HFREQINFO?")
|
||||
TBX=$(echo "$OTB" | awk -F [:] '/^\^HFREQINFO:/{print $2}' | xargs)
|
||||
TB=$(echo "$TBX" | cut -d ',' -f3-3 )
|
||||
|
||||
TDL=$(echo "$TBX" | cut -d ',' -f6-6 )
|
||||
DL=$(($TDL/1000))
|
||||
|
||||
TUL=$(echo "$TBX" | cut -d ',' -f9-9 )
|
||||
UL=$(($TUL/1000))
|
||||
|
||||
ULBW="UL: @$UL MHz"
|
||||
DLBW="DL: @$DL MHz"
|
||||
|
||||
PBAND="$(band4g $TB "") $DLBW $ULBW"
|
||||
EARFCN=$(echo "$TBX" | cut -d ',' -f4-4 )
|
||||
PCI="-"
|
||||
|
||||
# LAC & TAC
|
||||
T_HEX=$LAC_HEX
|
||||
T_DEC=$LAC_DEC
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^CHIPTEMP/ {gsub(/[ \r]/,"");t=0;for(i=2;i<=NF;i++)if($i!=65535){if($i>100){$i=$i/10};if($i>t){t=$i}};printf "%.1f", t}')
|
||||
if [ "x$T" != "x0.0" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
TEMP="$T °C"
|
||||
#ADDON="$ADDON"'{"Temperatura":"'$T' °C"}'
|
||||
fi
|
@ -1,29 +0,0 @@
|
||||
# Qualcomm CDMA Technologies MSM
|
||||
|
||||
# Modem
|
||||
MODEL="Qualcomm CDMA Technologies MSM"
|
||||
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR")
|
||||
FW=$(echo $FWA | cut -c 9- | sed s/"OK"// | xargs)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8- | sed s/"OK"// | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9- | sed s/"OK"// | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | sed s/"OK"// | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
@ -1,223 +0,0 @@
|
||||
# Foxconn T99W175 (FW 6.0.0.6)
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT^TEMP?")
|
||||
|
||||
T=$(echo "$O" | awk '/^TSENS: / {gsub("C","",$2); print $2}')
|
||||
T1=$(echo "$O" | awk '/^PA: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
T1=$(echo "$O" | awk '/^Skin Sensor: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^debug?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
"7")
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q "scell:" && MODE="LTE-A |"
|
||||
;;
|
||||
"11")
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
"13")
|
||||
MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^lte_tac:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
# TAC_HEX=$(printf "%X" $T)
|
||||
# TAC_DEC=$(printf "%d" "0x$T")
|
||||
|
||||
TAC_HEX=$(printf "%X" $T)
|
||||
TAC_DEC="$T"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 pcell)
|
||||
T=$(echo "$O1" | awk -F: '/^pcell:/ {print $3}' | cut -f1 -d" ")
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE $(band4g $T)"
|
||||
T1=$(echo "$O1" | awk -F: '/^pcell:/ {print $4}' | xargs)
|
||||
PBAND="$(band4g $T) @${T1/MHz/} MHz"
|
||||
|
||||
T=$(echo "$O1" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O1" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
[ -n "$T" ] && RSRP="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="${T/dB/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
[ -n "$T" ] && RSSI="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && [ "$T" != "NA" ] && SINR="${T/dB/}"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 scell)
|
||||
IDX=0;
|
||||
while true; do
|
||||
O2=$(echo "$O1" | head -n4)
|
||||
if [ -z "$O2" ]; then
|
||||
break
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^scell:/ {print $3}' | cut -f1 -d" ")
|
||||
MODE="$MODE / $(band4g $T)"
|
||||
T1=$(echo "$O2" | awk -F: '/^scell:/ {print $4}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
|
||||
O1=$(echo "$O1" | sed '1,4d')
|
||||
done
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_band:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE / $(band5g ${T/n/})"
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T1=$(echo "$O" | awk -F: '/^nr_band_width:/ {print $2}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_pci:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_channel:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrp:/ {print $2}' | cut -f1 -d" ")
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrq:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O" | awk -F: '/^nr_snr:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
|
||||
# Modem
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=05c6 ProdID=9025' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,223 +0,0 @@
|
||||
# Foxconn T99W175 (FW 6.0.0.6)
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT^TEMP?")
|
||||
|
||||
T=$(echo "$O" | awk '/^TSENS: / {gsub("C","",$2); print $2}')
|
||||
T1=$(echo "$O" | awk '/^PA: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
T1=$(echo "$O" | awk '/^Skin Sensor: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^debug?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
"7")
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q "scell:" && MODE="LTE-A |"
|
||||
;;
|
||||
"11")
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
"13")
|
||||
MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^lte_tac:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
# TAC_HEX=$(printf "%X" $T)
|
||||
# TAC_DEC=$(printf "%d" "0x$T")
|
||||
|
||||
TAC_HEX=$(printf "%X" $T)
|
||||
TAC_DEC="$T"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 pcell)
|
||||
T=$(echo "$O1" | awk -F: '/^pcell:/ {print $3}' | cut -f1 -d" ")
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE $(band4g $T)"
|
||||
T1=$(echo "$O1" | awk -F: '/^pcell:/ {print $4}' | xargs)
|
||||
PBAND="$(band4g $T) @${T1/MHz/} MHz"
|
||||
|
||||
T=$(echo "$O1" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O1" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
[ -n "$T" ] && RSRP="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="${T/dB/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
[ -n "$T" ] && RSSI="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && [ "$T" != "NA" ] && SINR="${T/dB/}"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 scell)
|
||||
IDX=0;
|
||||
while true; do
|
||||
O2=$(echo "$O1" | head -n4)
|
||||
if [ -z "$O2" ]; then
|
||||
break
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^scell:/ {print $3}' | cut -f1 -d" ")
|
||||
MODE="$MODE / $(band4g $T)"
|
||||
T1=$(echo "$O2" | awk -F: '/^scell:/ {print $4}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
|
||||
O1=$(echo "$O1" | sed '1,4d')
|
||||
done
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_band:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE / $(band5g ${T/n/})"
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T1=$(echo "$O" | awk -F: '/^nr_band_width:/ {print $2}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_pci:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_channel:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrp:/ {print $2}' | cut -f1 -d" ")
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrq:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O" | awk -F: '/^nr_snr:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
|
||||
# Modem
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=05c6 ProdID=90d5' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,117 +0,0 @@
|
||||
# Quectel EC20-E
|
||||
# Quectel EC25
|
||||
|
||||
OCT=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$OCT" | awk -F[,:] '/^\+QTEMP/ {t=$2*1;if($3*1>t)t=$3*1;if($4*1>t)t=$4*1;printf "%d", t}')
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
fi
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $2"/"$4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
MODE="LTE | $(band4g ${B})"
|
||||
MAINCUT="$(band4g ${B})"
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ] || [ "x$T" = "x4G" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
DLBW="DL: @$T1 MHz"
|
||||
PBAND="$MAINCUT $DLBW $ULBW"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $17}')
|
||||
RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", $1*0.2-20}')
|
||||
SINR=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEVV | awk -F 'Revision:' '{print $2}'| xargs)
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $1}'| xargs)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $2}'| xargs)
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=05c6 ProdID=9215' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,85 +0,0 @@
|
||||
# YUGA CLM920-NC5
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+temp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^temp:/ {print $2}')
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo")
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE_EUTRAN_BAND\(.*\)"/\1/')
|
||||
MODE="LTE $(band4g ${B})"
|
||||
PBAND="$(band4g ${B})"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $5}')
|
||||
EARFCN="$T"
|
||||
fi
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T_HEX=$(printf "%X" "$T")
|
||||
T_DEC=$(printf "%d" "$T")
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $5}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $12}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $11}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $10}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $13}' | xargs)
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR"//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | sed s/"Co.,Ltd."//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT^IMEI?" | xargs)
|
||||
NR_I=$(echo "$O" | awk -F': ' '/\^IMEI:/ {print $2}')
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+QCIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=05c6 ProdID=9625' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,310 +0,0 @@
|
||||
# Fibocom modems with ProdID=0e8d +GTUSBMODE: 40
|
||||
# Fibocom FM350-GL
|
||||
|
||||
convert_bw() {
|
||||
case "${1}" in
|
||||
"6") echo "1.4 MHz";;
|
||||
"15") echo "3 MHz";;
|
||||
"25") echo "5 MHz";;
|
||||
"50") echo "10 MHz";;
|
||||
"75") echo "15 MHz";;
|
||||
"100") echo "20 MHz";;
|
||||
"125") echo "25 MHz";;
|
||||
"150") echo "30 MHz";;
|
||||
"200") echo "40 MHz";;
|
||||
"250") echo "50 MHz";;
|
||||
"300") echo "60 MHz";;
|
||||
"400") echo "80 MHz";;
|
||||
"450") echo "90 MHz";;
|
||||
"500") echo "100 MHz";;
|
||||
"1000") echo "200 MHz";;
|
||||
"2000") echo "400 MHz";;
|
||||
*) echo "";;
|
||||
esac
|
||||
}
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+GTCCINFO?;+GTCAINFO?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
if echo "$O" | grep -q -E '^SCC'; then
|
||||
MODE="LTE-A |"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*) MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T_MODE=""
|
||||
|
||||
T1=$(echo "$O" | grep -A3 '+GTCCINFO:' | grep "1,[49],${COPS_MCC}")
|
||||
if [ -n "$T1" ]; then
|
||||
T_RAT=$(echo "$T1" | awk -F, '{print $2}')
|
||||
T=$(echo "$T1" | awk -F, '{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $9}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T_RAT in
|
||||
4)
|
||||
T=$((T - 100))
|
||||
T_MODE="$(band4g $T)"
|
||||
PBAND="$(band4g $T)"
|
||||
;;
|
||||
9)
|
||||
T=$(echo "$T" | sed 's/^50//')
|
||||
T_MODE="$(band5g $T)"
|
||||
PBAND="$(band5g $T)"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $11}')
|
||||
if [ -n "$T" -a "$T" -ne "255" ]; then
|
||||
case $T_RAT in
|
||||
4) SINR=$(echo "$T" | awk '{printf "%0.1f", $1/2 }');;
|
||||
9) SINR=$(echo "$T" | awk '{printf "%0.1f", ($1-45)/2-1 }');;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $13}')
|
||||
if [ -n "$T" -a "$T" -ne "255" ]; then
|
||||
case $T_RAT in
|
||||
4) RSRP=$((T - 141));;
|
||||
9) RSRP=$((T - 157));;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $14}')
|
||||
if [ -n "$T" -a "$T" -ne "255" ]; then
|
||||
case $T_RAT in
|
||||
4) RSRQ=$(echo "$T" | awk '{printf "%0.1f", ($1-34)/2-3 }');;
|
||||
9) RSRQ=$(echo "$T" | awk '{printf "%0.1f", ($1-87)/2 }');;
|
||||
esac
|
||||
fi
|
||||
if [ -n "$CSQ" ]; then
|
||||
RSSI=$((2 * $CSQ -113))
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E '^PCC:')
|
||||
[ -n "$LINES" ] && T_MODE=""
|
||||
|
||||
T_4G_MODE=""
|
||||
T_4G_PBAND=""
|
||||
T_4G_PCI=""
|
||||
T_4G_EARFCN=""
|
||||
|
||||
T_5G_MODE=""
|
||||
T_5G_PBAND=""
|
||||
T_5G_PCI=""
|
||||
T_5G_EARFCN=""
|
||||
|
||||
for LINE in $LINES; do
|
||||
T_BAND=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $2}')
|
||||
T_PCI=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $3}')
|
||||
T_EARFCN=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $4}')
|
||||
T_DBW=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $5}')
|
||||
|
||||
if [ -n "$T_BAND" ]; then
|
||||
DBW=""
|
||||
if [ -n "$T_DBW" -a "$T_DBW" -ne "0" ]; then
|
||||
DBW=" @$(convert_bw $T_DBW)"
|
||||
fi
|
||||
|
||||
if [ "$T_BAND" -lt "200" ]; then
|
||||
T_BAND=$((T_BAND - 100))
|
||||
T_4G_MODE="$(band4g ${T_BAND}) + "
|
||||
T_4G_PBAND="$(band4g ${T_BAND})${DBW}"
|
||||
T_4G_PCI="$T_PCI"
|
||||
T_4G_EARFCN="$T_EARFCN"
|
||||
elif [ "$T_BAND" -gt "500" ]; then
|
||||
T_BAND=$(echo "$T_BAND" | sed 's/^50//')
|
||||
T_5G_MODE="$(band5g ${T_BAND}) + "
|
||||
T_5G_PBAND="$(band5g ${T_BAND})${DBW}"
|
||||
T_5G_PCI="$T_PCI"
|
||||
T_5G_EARFCN="$T_EARFCN"
|
||||
fi
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
|
||||
if [ -n "$T_4G_PBAND" ]; then
|
||||
PBAND="$T_4G_PBAND"
|
||||
PCI="$T_4G_PCI"
|
||||
EARFCN="$T_4G_EARFCN"
|
||||
elif [ -n "$T_5G_PBAND" ]; then
|
||||
PBAND="$T_5G_PBAND"
|
||||
PCI="$T_5G_PCI"
|
||||
EARFCN="$T_5G_EARFCN"
|
||||
fi
|
||||
|
||||
|
||||
IFS="
|
||||
"
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E '^SCC\s?[0-9]:2,')
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DBW=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $7}')
|
||||
DBW=""
|
||||
if [ -n "$T_DBW" -a "$T_DBW" -ne "0" ]; then
|
||||
DBW=" @$(convert_bw $T_DBW)"
|
||||
fi
|
||||
T2=""
|
||||
if [ "$T" -lt "200" ]; then
|
||||
T=$((T - 100))
|
||||
T2="$(band4g $T)${DBW}"
|
||||
T_4G_MODE="${T_4G_MODE}$(band4g $T) / "
|
||||
elif [ "$T" -gt "500" ]; then
|
||||
T=$(echo "$T" | sed 's/^50//')
|
||||
T2="$(band5g $T)${DBW}"
|
||||
T_5G_MODE="${T_5G_MODE}$(band5g $T) / "
|
||||
fi
|
||||
if [ -n "$T2" ]; then
|
||||
case $IDX in
|
||||
"1") S1BAND="$T2";;
|
||||
"2") S2BAND="$T2";;
|
||||
"3") S3BAND="$T2";;
|
||||
"4") S4BAND="$T2";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
"1") S1PCI="$T";;
|
||||
"2") S2PCI="$T";;
|
||||
"3") S3PCI="$T";;
|
||||
"4") S4PCI="$T";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $6}')
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
"1") S1EARFCN="$T";;
|
||||
"2") S2EARFCN="$T";;
|
||||
"3") S3EARFCN="$T";;
|
||||
"4") S4EARFCN="$T";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
|
||||
T_4G_MODE=$(echo "$T_4G_MODE" | sed 's/ [\/\+] $//')
|
||||
T_5G_MODE=$(echo "$T_5G_MODE" | sed 's/ [\/\+] $//')
|
||||
|
||||
if [ -n "$T_4G_PBAND" -a -n "$T_5G_PBAND" ]; then
|
||||
if [ -n "$T_5G_PBAND" ]; then
|
||||
case $IDX in
|
||||
"1") S1BAND="$T_5G_PBAND";;
|
||||
"2") S2BAND="$T_5G_PBAND";;
|
||||
"3") S3BAND="$T_5G_PBAND";;
|
||||
"4") S4BAND="$T_5G_PBAND";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "$T_5G_PCI" ]; then
|
||||
case $IDX in
|
||||
"1") S1PCI="$T_5G_PCI";;
|
||||
"2") S2PCI="$T_5G_PCI";;
|
||||
"3") S3PCI="$T_5G_PCI";;
|
||||
"4") S4PCI="$T_5G_PCI";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "$T_5G_EARFCN" ]; then
|
||||
case $IDX in
|
||||
"1") S1EARFCN="$T_5G_EARFCN";;
|
||||
"2") S2EARFCN="$T_5G_EARFCN";;
|
||||
"3") S3EARFCN="$T_5G_EARFCN";;
|
||||
"4") S4EARFCN="$T_5G_EARFCN";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$T_MODE" ]; then
|
||||
if [ -n "$T_4G_MODE" ]; then
|
||||
MODE="$MODE $T_4G_MODE"
|
||||
fi
|
||||
|
||||
if [ -n "$T_5G_MODE" ]; then
|
||||
[ -n "$T_4G_MODE" ] && MODE="$MODE /"
|
||||
MODE="$MODE $T_5G_MODE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
|
||||
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{print $2}' | xargs)
|
||||
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
|
||||
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{print $2}' | xargs)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"Wireless Inc."//)
|
||||
MODEL="$MODELBCUT $MODELA"
|
||||
|
||||
OF=$(sms_tool -d $DEVICE at "AT+GMR?")
|
||||
FW=$(echo "$OF" | awk -F[,:] '/\+GMR:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OAA=$(sms_tool -d $DEVICE at "AT+CGSN?")
|
||||
NR_IMEI=$(echo "$OAA" | awk -F[,:] '/\+CGSN:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OBB=$(sms_tool -d $DEVICE at "AT+CIMI?")
|
||||
NR_IMSI=$(echo "$OBB" | awk -F [,:] '/\+CIMI:/ {print $2}' | xargs)
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OCC=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_ICCID=$(echo "$OCC" | awk -F [,:] '/\+ICCID:/ {print $2}' | xargs)
|
||||
|
||||
# Temp
|
||||
OT=$(sms_tool -d $DEVICE at "AT+GTSENRDTEMP=1")
|
||||
TM=$(echo "$OT" | awk -F, '/\+GTSENRDTEMP:/{printf "%.1f", $2/1000}' | xargs)
|
||||
if [ -n "$TM" ]; then
|
||||
TEMP="$TM °C"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
TTY=$(basename $DEVICE)
|
||||
devpath=$(readlink -f /sys/class/tty/$TTY/device)
|
||||
BASE=$(readlink -f ${devpath%/*/*})
|
||||
|
||||
NETIF=$(for a in /sys/class/net/*; do readlink -f $a; done | grep "$BASE")
|
||||
NETDRV=$(basename $(readlink -f $NETIF/../../driver))
|
||||
|
||||
case $NETDRV in
|
||||
"qmi_wwan")
|
||||
PROTO="qmi";;
|
||||
"cdc_mbim")
|
||||
PROTO="mbim";;
|
||||
"cdc_ether")
|
||||
PROTO="ecm";;
|
||||
"rndis_host")
|
||||
PROTO="ncm";;
|
||||
esac
|
@ -1,310 +0,0 @@
|
||||
# Fibocom modems with ProdID=0e8d +GTUSBMODE: 41
|
||||
# Fibocom FM350-GL
|
||||
|
||||
convert_bw() {
|
||||
case "${1}" in
|
||||
"6") echo "1.4 MHz";;
|
||||
"15") echo "3 MHz";;
|
||||
"25") echo "5 MHz";;
|
||||
"50") echo "10 MHz";;
|
||||
"75") echo "15 MHz";;
|
||||
"100") echo "20 MHz";;
|
||||
"125") echo "25 MHz";;
|
||||
"150") echo "30 MHz";;
|
||||
"200") echo "40 MHz";;
|
||||
"250") echo "50 MHz";;
|
||||
"300") echo "60 MHz";;
|
||||
"400") echo "80 MHz";;
|
||||
"450") echo "90 MHz";;
|
||||
"500") echo "100 MHz";;
|
||||
"1000") echo "200 MHz";;
|
||||
"2000") echo "400 MHz";;
|
||||
*) echo "";;
|
||||
esac
|
||||
}
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+GTCCINFO?;+GTCAINFO?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
if echo "$O" | grep -q -E '^SCC'; then
|
||||
MODE="LTE-A |"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*) MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T_MODE=""
|
||||
|
||||
T1=$(echo "$O" | grep -A3 '+GTCCINFO:' | grep "1,[49],${COPS_MCC}")
|
||||
if [ -n "$T1" ]; then
|
||||
T_RAT=$(echo "$T1" | awk -F, '{print $2}')
|
||||
T=$(echo "$T1" | awk -F, '{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $9}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T_RAT in
|
||||
4)
|
||||
T=$((T - 100))
|
||||
T_MODE="$(band4g $T)"
|
||||
PBAND="$(band4g $T)"
|
||||
;;
|
||||
9)
|
||||
T=$(echo "$T" | sed 's/^50//')
|
||||
T_MODE="$(band5g $T)"
|
||||
PBAND="$(band5g $T)"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $11}')
|
||||
if [ -n "$T" -a "$T" -ne "255" ]; then
|
||||
case $T_RAT in
|
||||
4) SINR=$(echo "$T" | awk '{printf "%0.1f", $1/2 }');;
|
||||
9) SINR=$(echo "$T" | awk '{printf "%0.1f", ($1-45)/2-1 }');;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $13}')
|
||||
if [ -n "$T" -a "$T" -ne "255" ]; then
|
||||
case $T_RAT in
|
||||
4) RSRP=$((T - 141));;
|
||||
9) RSRP=$((T - 157));;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $14}')
|
||||
if [ -n "$T" -a "$T" -ne "255" ]; then
|
||||
case $T_RAT in
|
||||
4) RSRQ=$(echo "$T" | awk '{printf "%0.1f", ($1-34)/2-3 }');;
|
||||
9) RSRQ=$(echo "$T" | awk '{printf "%0.1f", ($1-87)/2 }');;
|
||||
esac
|
||||
fi
|
||||
if [ -n "$CSQ" ]; then
|
||||
RSSI=$((2 * $CSQ -113))
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E '^PCC:')
|
||||
[ -n "$LINES" ] && T_MODE=""
|
||||
|
||||
T_4G_MODE=""
|
||||
T_4G_PBAND=""
|
||||
T_4G_PCI=""
|
||||
T_4G_EARFCN=""
|
||||
|
||||
T_5G_MODE=""
|
||||
T_5G_PBAND=""
|
||||
T_5G_PCI=""
|
||||
T_5G_EARFCN=""
|
||||
|
||||
for LINE in $LINES; do
|
||||
T_BAND=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $2}')
|
||||
T_PCI=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $3}')
|
||||
T_EARFCN=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $4}')
|
||||
T_DBW=$(echo "$LINE" | awk -F[:,] '/^PCC:/{print $5}')
|
||||
|
||||
if [ -n "$T_BAND" ]; then
|
||||
DBW=""
|
||||
if [ -n "$T_DBW" -a "$T_DBW" -ne "0" ]; then
|
||||
DBW=" @$(convert_bw $T_DBW)"
|
||||
fi
|
||||
|
||||
if [ "$T_BAND" -lt "200" ]; then
|
||||
T_BAND=$((T_BAND - 100))
|
||||
T_4G_MODE="$(band4g ${T_BAND}) + "
|
||||
T_4G_PBAND="$(band4g ${T_BAND})${DBW}"
|
||||
T_4G_PCI="$T_PCI"
|
||||
T_4G_EARFCN="$T_EARFCN"
|
||||
elif [ "$T_BAND" -gt "500" ]; then
|
||||
T_BAND=$(echo "$T_BAND" | sed 's/^50//')
|
||||
T_5G_MODE="$(band5g ${T_BAND}) + "
|
||||
T_5G_PBAND="$(band5g ${T_BAND})${DBW}"
|
||||
T_5G_PCI="$T_PCI"
|
||||
T_5G_EARFCN="$T_EARFCN"
|
||||
fi
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
|
||||
if [ -n "$T_4G_PBAND" ]; then
|
||||
PBAND="$T_4G_PBAND"
|
||||
PCI="$T_4G_PCI"
|
||||
EARFCN="$T_4G_EARFCN"
|
||||
elif [ -n "$T_5G_PBAND" ]; then
|
||||
PBAND="$T_5G_PBAND"
|
||||
PCI="$T_5G_PCI"
|
||||
EARFCN="$T_5G_EARFCN"
|
||||
fi
|
||||
|
||||
|
||||
IFS="
|
||||
"
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E '^SCC\s?[0-9]:2,')
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DBW=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $7}')
|
||||
DBW=""
|
||||
if [ -n "$T_DBW" -a "$T_DBW" -ne "0" ]; then
|
||||
DBW=" @$(convert_bw $T_DBW)"
|
||||
fi
|
||||
T2=""
|
||||
if [ "$T" -lt "200" ]; then
|
||||
T=$((T - 100))
|
||||
T2="$(band4g $T)${DBW}"
|
||||
T_4G_MODE="${T_4G_MODE}$(band4g $T) / "
|
||||
elif [ "$T" -gt "500" ]; then
|
||||
T=$(echo "$T" | sed 's/^50//')
|
||||
T2="$(band5g $T)${DBW}"
|
||||
T_5G_MODE="${T_5G_MODE}$(band5g $T) / "
|
||||
fi
|
||||
if [ -n "$T2" ]; then
|
||||
case $IDX in
|
||||
"1") S1BAND="$T2";;
|
||||
"2") S2BAND="$T2";;
|
||||
"3") S3BAND="$T2";;
|
||||
"4") S4BAND="$T2";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
"1") S1PCI="$T";;
|
||||
"2") S2PCI="$T";;
|
||||
"3") S3PCI="$T";;
|
||||
"4") S4PCI="$T";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC\s?'$IDX':2,/{print $6}')
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
"1") S1EARFCN="$T";;
|
||||
"2") S2EARFCN="$T";;
|
||||
"3") S3EARFCN="$T";;
|
||||
"4") S4EARFCN="$T";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
|
||||
T_4G_MODE=$(echo "$T_4G_MODE" | sed 's/ [\/\+] $//')
|
||||
T_5G_MODE=$(echo "$T_5G_MODE" | sed 's/ [\/\+] $//')
|
||||
|
||||
if [ -n "$T_4G_PBAND" -a -n "$T_5G_PBAND" ]; then
|
||||
if [ -n "$T_5G_PBAND" ]; then
|
||||
case $IDX in
|
||||
"1") S1BAND="$T_5G_PBAND";;
|
||||
"2") S2BAND="$T_5G_PBAND";;
|
||||
"3") S3BAND="$T_5G_PBAND";;
|
||||
"4") S4BAND="$T_5G_PBAND";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "$T_5G_PCI" ]; then
|
||||
case $IDX in
|
||||
"1") S1PCI="$T_5G_PCI";;
|
||||
"2") S2PCI="$T_5G_PCI";;
|
||||
"3") S3PCI="$T_5G_PCI";;
|
||||
"4") S4PCI="$T_5G_PCI";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "$T_5G_EARFCN" ]; then
|
||||
case $IDX in
|
||||
"1") S1EARFCN="$T_5G_EARFCN";;
|
||||
"2") S2EARFCN="$T_5G_EARFCN";;
|
||||
"3") S3EARFCN="$T_5G_EARFCN";;
|
||||
"4") S4EARFCN="$T_5G_EARFCN";;
|
||||
*);;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$T_MODE" ]; then
|
||||
if [ -n "$T_4G_MODE" ]; then
|
||||
MODE="$MODE $T_4G_MODE"
|
||||
fi
|
||||
|
||||
if [ -n "$T_5G_MODE" ]; then
|
||||
[ -n "$T_4G_MODE" ] && MODE="$MODE /"
|
||||
MODE="$MODE $T_5G_MODE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
|
||||
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{print $2}' | xargs)
|
||||
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
|
||||
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{print $2}' | xargs)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"Wireless Inc."//)
|
||||
MODEL="$MODELBCUT $MODELA"
|
||||
|
||||
OF=$(sms_tool -d $DEVICE at "AT+GMR?")
|
||||
FW=$(echo "$OF" | awk -F[,:] '/\+GMR:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OAA=$(sms_tool -d $DEVICE at "AT+CGSN?")
|
||||
NR_IMEI=$(echo "$OAA" | awk -F[,:] '/\+CGSN:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OBB=$(sms_tool -d $DEVICE at "AT+CIMI?")
|
||||
NR_IMSI=$(echo "$OBB" | awk -F [,:] '/\+CIMI:/ {print $2}' | xargs)
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OCC=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_ICCID=$(echo "$OCC" | awk -F [,:] '/\+ICCID:/ {print $2}' | xargs)
|
||||
|
||||
# Temp
|
||||
OT=$(sms_tool -d $DEVICE at "AT+GTSENRDTEMP=1")
|
||||
TM=$(echo "$OT" | awk -F, '/\+GTSENRDTEMP:/{printf "%.1f", $2/1000}' | xargs)
|
||||
if [ -n "$TM" ]; then
|
||||
TEMP="$TM °C"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
TTY=$(basename $DEVICE)
|
||||
devpath=$(readlink -f /sys/class/tty/$TTY/device)
|
||||
BASE=$(readlink -f ${devpath%/*/*})
|
||||
|
||||
NETIF=$(for a in /sys/class/net/*; do readlink -f $a; done | grep "$BASE")
|
||||
NETDRV=$(basename $(readlink -f $NETIF/../../driver))
|
||||
|
||||
case $NETDRV in
|
||||
"qmi_wwan")
|
||||
PROTO="qmi";;
|
||||
"cdc_mbim")
|
||||
PROTO="mbim";;
|
||||
"cdc_ether")
|
||||
PROTO="ecm";;
|
||||
"rndis_host")
|
||||
PROTO="ncm";;
|
||||
esac
|
@ -1,84 +0,0 @@
|
||||
# Sierra Wireless 320u
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at!gstatus?")
|
||||
|
||||
T=$(echo "$O" | awk '/^LTE band:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case "$T" in
|
||||
*"B1") MODE=$(band 1 "LTE ");;
|
||||
*"B3") MODE=$(band 3 "LTE ");;
|
||||
*"B5") MODE=$(band 5 "LTE ");;
|
||||
*"B7") MODE=$(band 7 "LTE ");;
|
||||
*"B8") MODE=$(band 8 "LTE ");;
|
||||
*) MODE="LTE ${T}";;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^RSSI/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSSI="${T// //}"
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSSI":"'${T// //}' dBm"}'
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^RSRP/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="${T// //}"
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'${T// //}' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^RSRQ/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRQ="$T"
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRQ":"'$T' dB"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^SINR/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SINR="$T"
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$T' dB"}'
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"Temperatura":"'$T' °C"}'
|
||||
fi
|
||||
|
||||
TAC_HEX=$(echo "$O" |awk -F: '/TAC:/ {print $3}' | awk '{ print $1 }' | xargs)
|
||||
TAC_DEC=$(echo "$O" | sed 's/[()]//g' |awk -F: '/TAC:/ {print $3}' | awk '{ print $2 }' | xargs)
|
||||
|
||||
|
||||
BW=$(echo "$O" |awk -F: '/LTE bw:/ {print $3}' | xargs)
|
||||
RXCH=$(echo "$O" |awk -F: '/LTE Rx chan:/ {print $2}' | cut -f1 | xargs)
|
||||
TXCH=$(echo "$O" |awk -F: '/LTE Tx chan:/ {print $3}' | cut -f1 | xargs)
|
||||
|
||||
PBAND="RxCh:$RXCH / TxCh:$TXCH / Bw:$BW"
|
||||
#EARFCN=$(echo "$O" |awk -F: '/^LTE Rx chan:/ {print $2}' | cut -f1 | xargs)
|
||||
PCI="-"
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
MODELB=$(echo $DEV2 | awk -F 'Manufacturer:|Revision:' '{print $2}'| xargs)
|
||||
MODEL=$(echo $MODELB | sed 's/Model://' | xargs)
|
||||
|
||||
FW=$(echo $DEV2 | awk -F 'Revision:|IMEI' '{print $2}'| xargs)
|
||||
NR_IMEI=$(echo "$OF" | awk '/^IMEI:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_ICCID=$(echo "$O" | awk '/^ICCID/ {print $2}')
|
||||
|
||||
PROTO=sierra
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
# Sierra Wireless MC7710
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at!gstatus?")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
TAC="${T_DEC} ($T)"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^RSSI/ {print $3}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk '/^RSRP/ {print $3}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk '/^SINR/ {print $3}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
|
||||
PBAND="$(band4g ${T/B/}) @${T1} MHz"
|
||||
MODE="LTE $(band4g ${T/B/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN DL" "$T"
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN UL" "$T"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
@ -1,103 +0,0 @@
|
||||
# Sierra Wireless EM7355 (maybe? I do not own one to test with)
|
||||
# Sierra Wireless MC7355
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at!gstatus?")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | grep -oE "\d+\.?\d{0,2}")
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI="${T// //}"
|
||||
T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && RSRP="${T// //}"
|
||||
T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk '/^SINR/ {print $3}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
|
||||
PBAND="$(band4g ${T/B/}) @${T1} MHz"
|
||||
MODE="$MODE $(band4g ${T/B/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN DL" "$T"
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN UL" "$T"
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^LTE CA state:.*ACTIVE/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE Scell bw:/ {print $3}')
|
||||
if [ -n "$T1" ]; then
|
||||
S1BAND="$(band ${T/B/}) @${T1#bw:} MHz"
|
||||
else
|
||||
S1BAND="$(band ${T/B/})"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T/B/})"
|
||||
|
||||
T=$(echo "$O" | awk '/.*LTE Scell chan:/ {print $7}')
|
||||
[ -n "$T" ] && S1EARFCN="${T#chan:}"
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI="${T// //}"
|
||||
T=$(echo "$O" | awk '/^SCC.*RSRP/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && RSRP="${T// //}"
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | cut -f1 -d",")
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F[,:] '/^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1199 ProdID=9041' '{print $2}' | cut -c-1100)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,104 +0,0 @@
|
||||
# DW5809e Dell Wireless 5809e Gobi 4G LTE Mobile Broadband Card (EM7305)
|
||||
# DW5811e Snapdragon X7 LTE (EM7455B)
|
||||
# Sierra Wireless EM7455
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at!gstatus?")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | grep -oE "\d+\.?\d{0,2}")
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI="${T// //}"
|
||||
T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && RSRP="${T// //}"
|
||||
T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk '/^SINR/ {print $3}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
|
||||
PBAND="$(band4g ${T/B/}) @${T1} MHz"
|
||||
MODE="$MODE $(band4g ${T/B/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN DL" "$T"
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN UL" "$T"
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^LTE CA state:.*ACTIVE/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE Scell bw:/ {print $3}')
|
||||
if [ -n "$T1" ]; then
|
||||
S1BAND="$(band4g ${T/B/}) @${T1#bw:} MHz"
|
||||
else
|
||||
S1BAND="$(band4g ${T/B/})"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T/B/})"
|
||||
|
||||
T=$(echo "$O" | awk '/.*LTE Scell chan:/ {print $7}')
|
||||
[ -n "$T" ] && S1EARFCN="${T#chan:}"
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI="${T// //} dBm"
|
||||
T=$(echo "$O" | awk '/^SCC.*RSRP/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && RSRP="${T// //} dBm"
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | cut -f1 -d",")
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F[,:] '/^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1199 ProdID=9071' '{print $2}' | cut -c-1100)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,147 +0,0 @@
|
||||
# Sierra Wireless EM9190
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at!gstatus?")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}')
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
|
||||
T=$(echo "$O" | awk '/^System mode:/ {print $3}')
|
||||
case $T in
|
||||
"LTE")
|
||||
MODE="LTE"
|
||||
;;
|
||||
"ENDC")
|
||||
MODE="5G NSA"
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk '/.*TAC:/ {print $6}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && && RSSI="${T// //}"
|
||||
T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $8}' | xargs)
|
||||
[ -n "$T" ] && RSRP="${T// //}"
|
||||
T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk '/^SINR/ {print $3}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
|
||||
PBAND="$(band4g ${T/B/}) @${T1} MHz"
|
||||
MODE="$MODE $(band4g ${T/B/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN DL" "$T"
|
||||
T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}')
|
||||
# [ -n "$T" ] && addon 34 "EARFCN UL" "$T"
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^LTE SCC1 state:.*ACTIVE/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE SCC1 bw/ {print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
S1BAND=$(band4g ${T/B/}) @${T1} MHz"
|
||||
else
|
||||
S1BAND="$(band4g ${T/B/})"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T/B/})"
|
||||
|
||||
T=$(echo "$O" | awk '/.*LTE SCC1 Rx chan:/ {print $11}')
|
||||
# [ -n "$T" ] && addon 54 "(S1) EARFCN DL" "${T}"
|
||||
T=$(echo "$O" | awk '/.*LTE SCC1 Tx chan:/ {print $10}')
|
||||
# [ -n "$T" ] && addon 54 "(S1) EARFCN UL" "${T}"
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC1.*RSSI/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon 55 "(S1) RSSI" "${T// //} dBm"
|
||||
T=$(echo "$O" | awk '/^SCC1.*RSRP/ {print $8}' | xargs)
|
||||
# [ -n "$T" ] && addon 56 "(S1) RSRP" "${T// //} dBm"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^LTE SCC2 state:.*ACTIVE/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE SCC2 bw/ {print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
S2BAND="$(band4g ${T/B/}) @${T1} MHz"
|
||||
else
|
||||
S2BAND="$(band4g ${T/B/})"
|
||||
fi
|
||||
MODE="$MODE / $(band4g ${T/B/})"
|
||||
|
||||
T=$(echo "$O" | awk '/.*LTE SCC2 Rx chan:/ {print $11}')
|
||||
# [ -n "$T" ] && addon 64 "(S2) EARFCN DL" "${T}"
|
||||
T=$(echo "$O" | awk '/.*LTE SCC2 Tx chan:/ {print $10}')
|
||||
# [ -n "$T" ] && addon 64 "(S2) EARFCN UL" "${T}"
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC2.*RSSI/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon 65 "(S2) RSSI" "${T// //} dBm"
|
||||
T=$(echo "$O" | awk '/^SCC2.*RSRP/ {print $8}' | xargs)
|
||||
# [ -n "$T" ] && addon 66 "(S2) RSRP" "${T// //} dBm"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^LTE SCC3 state:.*ACTIVE/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE SCC3 bw/ {print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
S3BAND"$(band4g ${T/B/}) @${T1} MHz"
|
||||
else
|
||||
S3BAND"$(band4g ${T/B/})"
|
||||
fi
|
||||
MODE="$MODE / $(band4g ${T/B/})"
|
||||
|
||||
T=$(echo "$O" | awk '/.*LTE SCC3 Rx chan:/ {print $11}')
|
||||
# [ -n "$T" ] && addon 74 "(S3) EARFCN DL" "${T}"
|
||||
T=$(echo "$O" | awk '/.*LTE SCC3 Tx chan:/ {print $10}')
|
||||
# [ -n "$T" ] && addon 74 "(S3) EARFCN UL" "${T}"
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC3.*RSSI/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon 75 "(S3) RSSI" "${T// //} dBm"
|
||||
T=$(echo "$O" | awk '/^SCC3.*RSRP/ {print $8}' | xargs)
|
||||
# [ -n "$T" ] && addon 76 "(S3) RSRP" "${T// //} dBm"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC. NR5G band:/ {print $4}')
|
||||
if [ -n "$T" ] && [ "$T" != "---" ]; then
|
||||
MODE="$MODE / $(band5g ${T/n/})"
|
||||
T1=$(echo "$O" | awk '/^SCC.*SCC. NR5G bw:/ {print $8}')
|
||||
if [ -n "$T1" ]; then
|
||||
# addon 80 "5G band" "$(band5g ${T/n/}) @${T1} MHz"
|
||||
else
|
||||
# addon 80 "5G band" "$(band5g ${T/n/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk '/^SCC. NR5G Rx chan:/ {print $5}')
|
||||
# [ -n "$T" ] && addon 84 "EARFCN DL" "$T"
|
||||
T=$(echo "$O" | awk '/^SCC.*SCC. NR5G Tx chan:/ {print $10}')
|
||||
# [ -n "$T" ] && addon 84 "EARFCN UL" "$T"
|
||||
T=$(echo "$O" | awk '/^NR5G RSRP/ {print $4}')
|
||||
# [ -n "$T" ] && addon 86 "RSRP" "$T dBm"
|
||||
T=$(echo "$O" | awk '/^NR5G.*RSRQ/ {print $8}')
|
||||
# [ -n "$T" ] && addon 87 "RSRQ" "$T dB"
|
||||
T=$(echo "$O" | awk '/^NR5G SINR/ {print $4}')
|
||||
# [ -n "$T" ] && addon 88 "RSRP" "$T dBm"
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1199 ProdID=90d3' '{print $2}' | cut -c-1100)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,122 +0,0 @@
|
||||
# Huawei E3272/E3372/E3276
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^chiptemp?;^hcsq?;^iccid?")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$T"
|
||||
|
||||
case "$MODE" in
|
||||
WCDMA*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
RSCP=$(awk 'BEGIN {print -121 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSCP":"'$RSCP' dBm"}'
|
||||
ECIO=$(awk 'BEGIN {print -32.5 + '$PARAM3'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"ECIO":"'$ECIO' dB"}'
|
||||
;;
|
||||
LTE*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
PARAM4=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $6}' | xargs)
|
||||
RSRP=$(awk 'BEGIN {print -141 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'$RSRP' dBm"}'
|
||||
SINR=$(awk 'BEGIN {print -20.2 + '$PARAM3'/5}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$SINR' dB"}'
|
||||
RSRQ=$(awk 'BEGIN {print -20 + '$PARAM4'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRQ":"'$RSRQ' dB"}'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
MODELB=$(echo $DEV2 | awk -F 'Manufacturer:|Revision:' '{print $2}'| xargs)
|
||||
MODELC=$(echo $MODELB | sed 's/Model://' | xargs)
|
||||
MODEL=$(echo $MODELC | awk '{print toupper(substr($0,0,1))tolower(substr($0,2))}')
|
||||
FW=$(echo $DEV2 | awk -F 'Revision:|IMEI' '{print $2}'| xargs)
|
||||
|
||||
# Protocol
|
||||
# Driver=qmi_wwan & Driver=cdc_mbim & Driver=cdc_ether & Driver=huawei_cdc_ncm
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=12d1 ProdID=1506' '{print $2}' | cut -c-1104)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
elif echo "$PVCUT" | grep -q "cdc_ncm"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OI=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$OI" | sed 's/AT+GSN//g' | xargs)
|
||||
if [ -n "NR_I" ]
|
||||
then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OC=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$OC" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
XFR=$(sms_tool -d $DEVICE at "at^hfreqinfo?")
|
||||
XFRCOUNT=$(echo -n "$XFR" | wc -c)
|
||||
|
||||
if [ -n "$XFR" ] && [ "$XFRCOUNT" -gt "15" ]; then
|
||||
|
||||
# DL / UL / Band
|
||||
TBX=$(echo "$XFR" | awk -F [:] '/^\^HFREQINFO:/{print $2}' | xargs)
|
||||
TB=$(echo "$TBX" | cut -d ',' -f3-3 )
|
||||
|
||||
TDL=$(echo "$TBX" | cut -d ',' -f6-6 )
|
||||
DL=$(($TDL/1000))
|
||||
|
||||
TUL=$(echo "$TBX" | cut -d ',' -f9-9 )
|
||||
UL=$(($TUL/1000))
|
||||
|
||||
ULBW="UL: @$UL MHz"
|
||||
DLBW="DL: @$DL MHz"
|
||||
|
||||
PBAND="$(band4g $TB "") $DLBW $ULBW"
|
||||
EARFCN=$(echo "$TBX" | cut -d ',' -f4-4 )
|
||||
PCI="-"
|
||||
|
||||
if [[ "$MODE" == *"LTE"* ]] && [ -n "$TB" ]; then
|
||||
MODE="LTE | "$(band4g $TB "")
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# LAC & TAC
|
||||
T_HEX=$LAC_HEX
|
||||
T_DEC=$LAC_DEC
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^CHIPTEMP/ {gsub(/[ \r]/,"");t=0;for(i=2;i<=NF;i++)if($i!=65535){if($i>100){$i=$i/10};if($i>t){t=$i}};printf "%.1f", t}')
|
||||
if [ "x$T" != "x0.0" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
TEMP="$T °C"
|
||||
#ADDON="$ADDON"'{"Temperatura":"'$T' °C"}'
|
||||
fi
|
@ -1,122 +0,0 @@
|
||||
# Huawei E3272/E3372/E3276
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^chiptemp?;^hcsq?;^iccid?")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$T"
|
||||
|
||||
case "$MODE" in
|
||||
WCDMA*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
RSCP=$(awk 'BEGIN {print -121 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSCP":"'$RSCP' dBm"}'
|
||||
ECIO=$(awk 'BEGIN {print -32.5 + '$PARAM3'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"ECIO":"'$ECIO' dB"}'
|
||||
;;
|
||||
LTE*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
PARAM4=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $6}' | xargs)
|
||||
RSRP=$(awk 'BEGIN {print -141 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'$RSRP' dBm"}'
|
||||
SINR=$(awk 'BEGIN {print -20.2 + '$PARAM3'/5}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$SINR' dB"}'
|
||||
RSRQ=$(awk 'BEGIN {print -20 + '$PARAM4'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRQ":"'$RSRQ' dB"}'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
MODELB=$(echo $DEV2 | awk -F 'Manufacturer:|Revision:' '{print $2}'| xargs)
|
||||
MODELC=$(echo $MODELB | sed 's/Model://' | xargs)
|
||||
MODEL=$(echo $MODELC | awk '{print toupper(substr($0,0,1))tolower(substr($0,2))}')
|
||||
FW=$(echo $DEV2 | awk -F 'Revision:|IMEI' '{print $2}'| xargs)
|
||||
|
||||
# Protocol
|
||||
# Driver=qmi_wwan & Driver=cdc_mbim & Driver=cdc_ether & Driver=huawei_cdc_ncm
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=12d1 ProdID=155e' '{print $2}' | cut -c-1104)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
elif echo "$PVCUT" | grep -q "cdc_ncm"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OI=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$OI" | sed 's/AT+GSN//g' | xargs)
|
||||
if [ -n "NR_I" ]
|
||||
then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OC=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$OC" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
XFR=$(sms_tool -d $DEVICE at "at^hfreqinfo?")
|
||||
XFRCOUNT=$(echo -n "$XFR" | wc -c)
|
||||
|
||||
if [ -n "$XFR" ] && [ "$XFRCOUNT" -gt "15" ]; then
|
||||
|
||||
# DL / UL / Band
|
||||
TBX=$(echo "$XFR" | awk -F [:] '/^\^HFREQINFO:/{print $2}' | xargs)
|
||||
TB=$(echo "$TBX" | cut -d ',' -f3-3 )
|
||||
|
||||
TDL=$(echo "$TBX" | cut -d ',' -f6-6 )
|
||||
DL=$(($TDL/1000))
|
||||
|
||||
TUL=$(echo "$TBX" | cut -d ',' -f9-9 )
|
||||
UL=$(($TUL/1000))
|
||||
|
||||
ULBW="UL: @$UL MHz"
|
||||
DLBW="DL: @$DL MHz"
|
||||
|
||||
PBAND="$(band4g $TB "") $DLBW $ULBW"
|
||||
EARFCN=$(echo "$TBX" | cut -d ',' -f4-4 )
|
||||
PCI="-"
|
||||
|
||||
if [[ "$MODE" == *"LTE"* ]] && [ -n "$TB" ]; then
|
||||
MODE="LTE | "$(band4g $TB "")
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# LAC & TAC
|
||||
T_HEX=$LAC_HEX
|
||||
T_DEC=$LAC_DEC
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^CHIPTEMP/ {gsub(/[ \r]/,"");t=0;for(i=2;i<=NF;i++)if($i!=65535){if($i>100){$i=$i/10};if($i>t){t=$i}};printf "%.1f", t}')
|
||||
if [ "x$T" != "x0.0" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
TEMP="$T °C"
|
||||
#ADDON="$ADDON"'{"Temperatura":"'$T' °C"}'
|
||||
fi
|
@ -1,113 +0,0 @@
|
||||
# Huawei E3272/E3372/E3276
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^chiptemp?;^hcsq?")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$T"
|
||||
|
||||
case "$MODE" in
|
||||
WCDMA*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
RSCP=$(awk 'BEGIN {print -121 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSCP":"'$RSCP' dBm"}'
|
||||
ECIO=$(awk 'BEGIN {print -32.5 + '$PARAM3'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"ECIO":"'$ECIO' dB"}'
|
||||
;;
|
||||
LTE*)
|
||||
PARAM2=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $4}' | xargs)
|
||||
PARAM3=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $5}' | xargs)
|
||||
PARAM4=$(echo "$O" | awk -F[,:] '/^\^HCSQ:/ {print $6}' | xargs)
|
||||
RSRP=$(awk 'BEGIN {print -141 + '$PARAM2'}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'$RSRP' dBm"}'
|
||||
SINR=$(awk 'BEGIN {print -20.2 + '$PARAM3'/5}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$SINR' dB"}'
|
||||
RSRQ=$(awk 'BEGIN {print -20 + '$PARAM4'/2}')
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRQ":"'$RSRQ' dB"}'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
MODELB=$(echo $DEV2 | awk -F 'Manufacturer:|Revision:' '{print $2}'| xargs)
|
||||
MODELC=$(echo $MODELB | sed 's/Model://' | xargs)
|
||||
MODEL=$(echo $MODELC | awk '{print toupper(substr($0,0,1))tolower(substr($0,2))}')
|
||||
FW=$(echo $DEV2 | awk -F 'Revision:|IMEI' '{print $2}'| xargs)
|
||||
|
||||
# Protocol
|
||||
# Driver=qmi_wwan & Driver=cdc_mbim & Driver=cdc_ether & Driver=huawei_cdc_ncm
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=12d1 ProdID=1506' '{print $2}' | cut -c-1104)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
elif echo "$PVCUT" | grep -q "cdc_ncm"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed 's/AT+GSN//g' | xargs)
|
||||
if [ -n "NR_I" ]
|
||||
then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT^ICCID?")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# DL / UL / Band
|
||||
OTB=$(sms_tool -d $DEVICE at "AT^HFREQINFO?")
|
||||
TBX=$(echo "$OTB" | awk -F [:] '/^\^HFREQINFO:/{print $2}' | xargs)
|
||||
TB=$(echo "$TBX" | cut -d ',' -f3-3 )
|
||||
|
||||
TDL=$(echo "$TBX" | cut -d ',' -f6-6 )
|
||||
DL=$(($TDL/1000))
|
||||
|
||||
TUL=$(echo "$TBX" | cut -d ',' -f9-9 )
|
||||
UL=$(($TUL/1000))
|
||||
|
||||
ULBW="UL: @$UL MHz"
|
||||
DLBW="DL: @$DL MHz"
|
||||
|
||||
PBAND="$(band4g $TB "") $DLBW $ULBW"
|
||||
EARFCN=$(echo "$TBX" | cut -d ',' -f4-4 )
|
||||
PCI="-"
|
||||
|
||||
# LAC & TAC
|
||||
T_HEX=$LAC_HEX
|
||||
T_DEC=$LAC_DEC
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F[,:] '/^\^CHIPTEMP/ {gsub(/[ \r]/,"");t=0;for(i=2;i<=NF;i++)if($i!=65535){if($i>100){$i=$i/10};if($i>t){t=$i}};printf "%.1f", t}')
|
||||
if [ "x$T" != "x0.0" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
TEMP="$T °C"
|
||||
#ADDON="$ADDON"'{"Temperatura":"'$T' °C"}'
|
||||
fi
|
@ -1,148 +0,0 @@
|
||||
# ASKEY WWHC050
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at\$qcai?;+ccputemp;+cgcelli;+cgnws")
|
||||
T=$(echo "$O" | awk 'BEGIN{FS="BEARER:"}/^\+CGCELLI/{print $2}' | awk 'BEGIN{FS=","}{print $1}')
|
||||
|
||||
case "$T" in
|
||||
"0x01"*)
|
||||
MODE="GPRS";;
|
||||
"0x02"*)
|
||||
MODE="EDGE";;
|
||||
"0x03"*)
|
||||
MODE="HSDPA";;
|
||||
"0x04"*)
|
||||
MODE="HSUPA";;
|
||||
"0x05"*)
|
||||
MODE="WCDMA";;
|
||||
"0x06"*)
|
||||
MODE="CDMA";;
|
||||
"0x07"*)
|
||||
MODE="EV-DO REV 0";;
|
||||
"0x08"*)
|
||||
MODE="EV-DO REV A";;
|
||||
"0x09"*)
|
||||
MODE="GSM";;
|
||||
"0x0a"*|"0x0A"*)
|
||||
MODE="EV-DO REV B";;
|
||||
"0x0b"*|"0x0B"*)
|
||||
MODE="LTE";;
|
||||
"0x0c"*|"0x0C"*)
|
||||
MODE="HSDPA+";;
|
||||
"0x0d"*|"0x0D"*)
|
||||
MODE="DC-HSDPA+";;
|
||||
esac
|
||||
|
||||
if [ $MODE != "LTE" ]; then
|
||||
O1=$(echo "$O" | grep CGCELLI | sed 's/+CGCELLI://')
|
||||
T1="$O1"
|
||||
while true; do
|
||||
T2=${T1%%,*}
|
||||
[ -z "$T2" ] && break
|
||||
if echo "$T2" | grep -q ":"; then
|
||||
F1=${T2%%:*}
|
||||
F2=${T2##*:}
|
||||
UNIT=""
|
||||
IGNORE=0
|
||||
case "$F1" in
|
||||
RSCP|RSRP|RSSI) UNIT=" dBm";;
|
||||
ECIO|SINR|RSRQ) UNIT=" dB";;
|
||||
LAC|PLMN|BEARER) IGNORE=1;;
|
||||
esac
|
||||
if [ $IGNORE -eq 0 ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"'$F1'":"'$F2''$UNIT'"}'
|
||||
fi
|
||||
fi
|
||||
if echo "$T1" | grep -q ","; then
|
||||
T2="${T2},"
|
||||
fi
|
||||
T1=$(echo "$T1" | sed 's/^'$T2'//')
|
||||
done
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"Band:1") MODE=$(band4g 1 "LTE ");;
|
||||
*"Band:3") MODE=$(band4g 3 "LTE ");;
|
||||
*"Band:7") MODE=$(band4g 7 "LTE ");;
|
||||
*"Band:8") MODE=$(band4g 8 "LTE ");;
|
||||
*"Band:20") MODE=$(band4g 20 "LTE ");;
|
||||
*) MODE="LTE ${T}";;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,] '/CA:ADDED/{print $16}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"(S)Band:1") MODE="${MODE/LTE/LTE_A} / "$(band4g 1 "");;
|
||||
*"(S)Band:3") MODE="${MODE/LTE/LTE_A} / "$(band4g 3 "");;
|
||||
*"(S)Band:7") MODE="${MODE/LTE/LTE_A} / "$(band4g 7 "");;
|
||||
*"(S)Band:8") MODE="${MODE/LTE/LTE_A} / "$(band4g 8 "");;
|
||||
*"(S)Band:20") MODE="${MODE/LTE/LTE_A} / "$(band4g 20 "");;
|
||||
*) MODE="${MODE/LTE/LTE_A} / B${T}";;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP=${T##*:}
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $12}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="$RSRP / "${T##*:}" dBm"
|
||||
fi
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"RSRP":"'$RSRP'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRQ=${T##*:}
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $13}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRQ="$RSRQ / "${T##*:}" dB"
|
||||
fi
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"RSRQ":"'$RSRQ'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
RSSI=${T##*:}
|
||||
T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
RSSI="$RSSI / "${T##*:}" dBm"
|
||||
fi
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"RSSI":"'$RSSI'"}'
|
||||
fi
|
||||
#T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $6}')
|
||||
#if [ -n "$T" ]; then
|
||||
# SINR=${T##*:}
|
||||
# T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $15}')
|
||||
# if [ -n "$T" ]; then
|
||||
# SINR="$SINR / "${T##*:}" dB"
|
||||
# fi
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$SINR'"}'
|
||||
#fi
|
||||
#T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $8}')
|
||||
#if [ -n "$T" ]; then
|
||||
# BW=${T##*:}" MHz"
|
||||
# T=$(echo "$O" | awk -F[,] '/^\$QCAI/{print $17}')
|
||||
# if [ -n "$T" ]; then
|
||||
# BW="$BW / "${T##*:}" MHz"
|
||||
# fi
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"BW":"'$BW'"}'
|
||||
#fi
|
||||
|
||||
T=$(echo "$O" | awk -F[:] '/^\+CCPUTEMP/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"Temperatura":"'$T' °C"}'
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,] '/^\+CGNWS/ {print $9}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
COPS="$T"
|
||||
fi
|
@ -1,19 +0,0 @@
|
||||
# ZTE MF821
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+zcellinfo?")
|
||||
BAND=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO:/ {print $4}')
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
case "$BAND" in
|
||||
*"B1") MODE=$(band4g 1 "LTE ");;
|
||||
*"B3") MODE=$(band4g 3 "LTE ");;
|
||||
*"B7") MODE=$(band4g 7 "LTE ");;
|
||||
*"B8") MODE=$(band4g 8 "LTE ");;
|
||||
*"B20") MODE=$(band4g 20 "LTE ");;
|
||||
*) MODE="$MODE B${BAND}";;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
MODE="$MODE $BAND"
|
||||
;;
|
||||
esac
|
@ -1,62 +0,0 @@
|
||||
# ZTE MF28D/MF290
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+zrssi?;+zcellinfo?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
3*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
RSSI="$T"
|
||||
ADDON="$ADDON"'{"RSSI":"'$T' dBm"}'
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && MODE="$T"
|
||||
;;
|
||||
2*|\
|
||||
4*|\
|
||||
5*|\
|
||||
6*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"RSCP":"'$T' dBm"}'
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"ECIO":"'$T' dB"}'
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && MODE="$T"
|
||||
;;
|
||||
7*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
RSRP="$T"
|
||||
ADDON="$ADDON"'{"RSRP":"'$T' dBm"}'
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
RSRQ="$T"
|
||||
ADDON="$ADDON"'{"RSRQ":"'$T' dB"}'
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $5}' | xargs)
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
SINR="$T"
|
||||
# ADDON="$ADDON"'{"SINR":"'$T' dB"}'
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCELLINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
PCI="$T"
|
||||
ADDON="$ADDON"'{"PCI":"'$T'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $5}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
EARFCN="$T"
|
||||
ADDON="$ADDON"'{"EARFCN":"'$T'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
case "$T" in
|
||||
*"LTE B1") MODE=$(band4g 1 "LTE ");;
|
||||
*"LTE B3") MODE=$(band4g 3 "LTE ");;
|
||||
*"LTE B7") MODE=$(band4g 7 "LTE ");;
|
||||
*"LTE B8") MODE=$(band4g 8 "LTE ");;
|
||||
*"LTE B20") MODE=$(band4g 20 "LTE ");;
|
||||
*) MODE="${T}";;
|
||||
esac
|
||||
;;
|
||||
esac
|
@ -1,58 +0,0 @@
|
||||
# ZTE P685M
|
||||
# ZTE ZM8630A
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+zrssi;+zcellinfo?;+zcainfo?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
3*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSSI="$T"
|
||||
;;
|
||||
2*|\
|
||||
4*|\
|
||||
5*|\
|
||||
6*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
# addon 35 "RSCP" "$T dBm"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
# addon 36 "ECIO" "$T dB"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && MODE="$T"
|
||||
;;
|
||||
7*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_HEX=$(printf "%X" $T)
|
||||
T_DEC=$(printf "%d" "0x${T_HEX}")
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $5}' | xargs)
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
MODE="LTE | $(band4g ${T/LTE B/})"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $6}' | xargs)
|
||||
if [ -z "$T1" ] || [ "x$T1" = "x0.0" ]; then
|
||||
PBAND="$(band4g $T)"
|
||||
else
|
||||
PBAND="$(band4g $T) @${T1} MHz"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $5}' | xargs)
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
@ -1,134 +0,0 @@
|
||||
# ZTE MF286
|
||||
# ZTE MF286A
|
||||
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+zrssi;+zcellinfo?;+zcainfo?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
3*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSSI="$T"
|
||||
;;
|
||||
2*|\
|
||||
4*|\
|
||||
5*|\
|
||||
6*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && MODE="$T"
|
||||
;;
|
||||
7*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_HEX=$(printf "%X" $T)
|
||||
T_DEC=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $4}' | xargs)
|
||||
RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $5}' | xargs)
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
MODE="LTE $(band4g ${T/LTE B/})"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $6}' | xargs)
|
||||
PBAND="$(band4g $T "") @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $5}' | xargs)
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $9}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $11}' | xargs)
|
||||
S1BAND="$(band4g $T "") @$T1 MHz"
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T})"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && S1PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO/ {print $10}' | xargs)
|
||||
[ -n "$T" ] && S1EARFCN="$T"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | cut -c 8-)
|
||||
|
||||
MODELA=$(echo $DEVV | awk -F 'Revision: ' '{print $1}'| xargs)
|
||||
MODELB=$(echo $MODELA | awk -F 'Manufacturer: |CORPORATION' '{print $2}'| xargs)
|
||||
|
||||
MODELD=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELDCUT=$(echo $MODELD | cut -c 9-)
|
||||
|
||||
MODEL="$MODELB "$MODELDCUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PV85=$(echo $PV | awk -F 'Vendor=19d2 ProdID=1485' '{print $2}' | cut -c-1220)
|
||||
if [ -n "$PV85" ]; then
|
||||
if echo "$PV85" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PV85" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PV85" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
fi
|
||||
PV32=$(echo $PV | awk -F 'Vendor=19d2 ProdID=1432' '{print $2}' | cut -c-1220)
|
||||
if [ -n "$PV32" ]; then
|
||||
if echo "$PV32" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PV32" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PV32" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
fi
|
||||
|
||||
#T=$(echo "$O" | awk -F[,:] '/^\+ZDON/ {print $2}' | xargs)
|
||||
#if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
# COPS="$T"
|
||||
#fi
|
@ -1,202 +0,0 @@
|
||||
# ZTE MF286D
|
||||
# ZTE MF289F
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+zrssi;+zcellinfo?;+zcainfo?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
3*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSSI="$T"
|
||||
if [ "x${LAC_DEC}" = "x0" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
LAC_DEC=$T
|
||||
LAC_HEX=$(printf "%X" $T)
|
||||
fi
|
||||
fi
|
||||
if [ "x${CID_DEC}" = "x0" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
CID_DEC=$T
|
||||
CID_HEX=$(printf "%X" $T)
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
2*|\
|
||||
4*|\
|
||||
5*|\
|
||||
6*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && MODE="$T"
|
||||
if [ "x${LAC_DEC}" = "x0" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
LAC_DEC=$T
|
||||
LAC_HEX=$(printf "%X" $T)
|
||||
fi
|
||||
fi
|
||||
if [ "x${CID_DEC}" = "x0" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
CID_DEC=$T
|
||||
CID_HEX=$(printf "%X" $T)
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
7*)
|
||||
if [ "x${CID_DEC}" = "x0" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
CID_DEC=$T
|
||||
CID_HEX=$(printf "%X" $T)
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_HEX=$(printf "%X" $T)
|
||||
T_DEC=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $4}' | xargs)
|
||||
RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $5}' | xargs)
|
||||
SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
MODE="LTE $(band4g ${T/LTE B/})"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $6}' | xargs)
|
||||
PBAND="$(band4g $T "") @$T1 MHz"
|
||||
[ "x$MODE" = "xLTE BUnknown" ] && MODE="LTE $(band4g $T)"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $5}' | xargs)
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $9}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $11}' | xargs)
|
||||
S1BAND="$(band4g $T "") @$T1 MHz"
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T})"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && S1PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $10}' | xargs)
|
||||
[ -n "$T" ] && S1EARFCN="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $14}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $16}' | xargs)
|
||||
S2BAND="$(band4g $T "") @$T1 MHz"
|
||||
MODE="$MODE / $(band4g ${T})"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $12}' | xargs)
|
||||
[ -n "$T" ] && S2PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $15}' | xargs)
|
||||
[ -n "$T" ] && S2EARFCN="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $19}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $21}' | xargs)
|
||||
S3BAND="$(band4g $T "") @$T1 MHz"
|
||||
MODE="$MODE / $(band4g ${T})"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $17}' | xargs)
|
||||
[ -n "$T" ] && S3PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $20}' | xargs)
|
||||
[ -n "$T" ] && S3EARFCN="$T"
|
||||
fi
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
# Firmware
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | cut -c 8-)
|
||||
|
||||
# Model
|
||||
MODELA=$(echo $DEVV | awk -F 'Revision: ' '{print $1}'| xargs)
|
||||
MODELB=$(echo $MODELA | awk -F 'Manufacturer: |CORPORATION' '{print $2}'| xargs)
|
||||
|
||||
MODELD=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
|
||||
SUB='MODULE'
|
||||
if [[ "$MODELD" == *"$SUB"* ]]; then
|
||||
MODELDCUT=$(echo $MODELD | awk -F 'CGMM |MODULE' '{print $2}'| xargs)
|
||||
MODEL="$MODELB "$MODELDCUT
|
||||
else
|
||||
MODELDCUT=$(echo $MODELD | cut -c 9-)
|
||||
MODEL="$MODELB "$MODELDCUT
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PV85=$(echo $PV | awk -F 'Vendor=19d2 ProdID=1485' '{print $2}' | cut -c-1220)
|
||||
if [ -n "$PV85" ]; then
|
||||
if echo "$PV85" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PV85" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PV85" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
fi
|
||||
PV32=$(echo $PV | awk -F 'Vendor=19d2 ProdID=1432' '{print $2}' | cut -c-1220)
|
||||
if [ -n "$PV32" ]; then
|
||||
if echo "$PV32" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PV32" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PV32" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
fi
|
||||
|
||||
#T=$(echo "$O" | awk -F[,:] '/^\+ZDON/ {print $2}' | xargs)
|
||||
#if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
# COPS="$T"
|
||||
#fi
|
@ -1,139 +0,0 @@
|
||||
# ZTE MF286R
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+zrssi;+zcellinfo?;+zcainfo?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
3*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSSI="$T"
|
||||
;;
|
||||
2*|\
|
||||
4*|\
|
||||
5*|\
|
||||
6*|\
|
||||
8*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && MODE="$T"
|
||||
;;
|
||||
|
||||
7*|\
|
||||
9*)
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $4}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
T_HEX=$(printf "%X" $T)
|
||||
T_DEC=$T
|
||||
LAC_DEC=$T_DEC
|
||||
LAC_HEX=$T_HEX
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $4}' | xargs)
|
||||
RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
|
||||
RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
|
||||
RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $5}' | xargs)
|
||||
SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
MODE="LTE $(band4g ${T/LTE B/})"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $6}' | xargs)
|
||||
PBAND="$(band4g $T "") @$T1 MHz"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PCI="$T"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $5}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
EARFCN="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x9" ]; then
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $9}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
T1=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $11}' | xargs)
|
||||
S1BAND="$(band4g $T "") @$T1 MHz"
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T})"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && S1PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO/ {print $10}' | xargs)
|
||||
[ -n "$T" ] && S1EARFCN="$T"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
# Firmware
|
||||
FWB=$(sms_tool -d $DEVICE at "AT+GMR")
|
||||
FW=$(echo $FWB | tr -d " \t\n\r" | xargs)
|
||||
|
||||
if [[ "$FW" == *"MF286RA"* && "$CSQ" == *"-"* ]]; then
|
||||
OQ=$(sms_tool -D -d $DEVICE at "AT+CSQ")
|
||||
CSQ=$(echo "$OQ" | awk -F[,\ ] '/^\+CSQ/ {print $2}')
|
||||
|
||||
[ "x$CSQ" = "x" ] && CSQ=-1
|
||||
if [ $CSQ -ge 0 -a $CSQ -le 31 ]; then
|
||||
CSQ_PER=$(($CSQ * 100/31))
|
||||
fi
|
||||
fi
|
||||
|
||||
# Modem
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
|
||||
if [[ "$MODELA" == *"ZTE"* ]]; then
|
||||
MODELACUT=$(echo $MODELA | awk -F'CGMI: ' '{print $2}' | sed 's/"//g' | sed 's/ CORPORATION//g')
|
||||
MODELO=$(echo $MODELACUT | tr -d " \t\n\r" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMM")
|
||||
MODELBCUT=$(echo $MODELB | awk -F'CGMM: ' '{print $2}' | sed 's/"//g')
|
||||
MODELCUT=$(echo $MODELBCUT | tr -d " \t\n\r" | xargs)
|
||||
|
||||
MODEL="$MODELO "$MODELCUT
|
||||
else
|
||||
MODELO=$(echo $MODELA | tr -d " \t\n\r" | cut -d ":" -f2 | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMM")
|
||||
MODELCUT=$(echo $MODELB | tr -d " \t\n\r" | cut -d ":" -f2 | xargs)
|
||||
|
||||
MODEL="$MODELO "$MODELCUT
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OI=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$OI" | sed 's/AT+GSN//g' | xargs)
|
||||
if [ -z "NR_I" ]; then
|
||||
OIB=$(sms_tool -d $DEVICE at "AT*MRD_IMEI?" | xargs)
|
||||
NR_I=$(echo "$OIB" | awk -F [:] '/^\*MRD_IMEI:/{print $2}' | xargs)
|
||||
NR_IMEI="$NR_I"
|
||||
else
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OS=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$OS" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OD=$(sms_tool -d $DEVICE at "AT*ICCID?" | xargs)
|
||||
NR_D=$(echo "$OD" | awk -F [:] '/^\*ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=19d2 ProdID=1489' '{print $2}' | cut -c-1450)
|
||||
if echo "$PVCUT" | grep -q "rndis_host"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
@ -1,162 +0,0 @@
|
||||
# Telit LN940-CP
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at#servinfo;#cainfo?")
|
||||
|
||||
channeltoband()
|
||||
{
|
||||
if [ $1 -ge 0 ] && [ $1 -le 599 ]; then
|
||||
echo "1"
|
||||
elif [ $1 -ge 1200 ] && [ $1 -le 1949 ]; then
|
||||
echo "3"
|
||||
elif [ $1 -ge 2750 ] && [ $1 -le 3449 ]; then
|
||||
echo "7"
|
||||
elif [ $1 -ge 3450 ] && [ $1 -le 3799 ]; then
|
||||
echo "8"
|
||||
elif [ $1 -ge 6150 ] && [ $1 -le 6449 ]; then
|
||||
echo "20"
|
||||
else
|
||||
echo "?"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $4}' | xargs)
|
||||
[ -n "$COPS" ] && COPS="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
# ADDON="$ADDON"'{"TAC":"'$T_DEC' ('$T')"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSSI=$T
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSSI":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $10}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRP=$T
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"EARFCN":"'$T'"}'
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T1=$(channeltoband $T)
|
||||
PBAND="$(band4g $T1 "")"
|
||||
ADDON="$ADDON"'{"Primary band":"'$(band4g $T1 "")'"}'
|
||||
MODE=$(band4g $T1 "LTE ")
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $5}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"PCI":"'$T'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSSI=$T
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSSI":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $6}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRP=$T
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRP":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $8}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRQ=$T
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"RSRQ":"'$T'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $9}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SINR=$T
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"SINR":"'$T'"}'
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $15}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T1=$(channeltoband $T)
|
||||
S1BAND=="$(band4g $T1 "")"
|
||||
# ADDON="$ADDON"'{"(S1) band":"'$(band4g $T1 "")'"}'
|
||||
# MODE="${MODE/LTE/LTE_A} / "$(band4g $T1 "")
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $17}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
S1PCI=$T
|
||||
# [ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
# ADDON="$ADDON"'{"(S1) PCI":"'$T'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $19}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S1) RSSI":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $18}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S1) RSRP":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $20}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S1) RSRQ":"'$T' dB"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $21}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S1) SINR":"'$T' dB"}'
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $26}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T1=$(channeltoband $T)
|
||||
S2BAND=="$(band4g $T1 "")"
|
||||
ADDON="$ADDON"'{"(S2) band":"'$(band4g $T1 "")'"}'
|
||||
MODE="${MODE} / "$(band4g $T1 "")
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $28}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
S2PCI="$T"
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S2) PCI":"'$T'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $30}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S2) RSSI":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $29}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S2) RSRP":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $31}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S2) RSRQ":"'$T' dB"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#CAINFO/ {print $32}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
ADDON="$ADDON"'{"(S2) SINR":"'$T' dB"}'
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,')
|
@ -1,42 +0,0 @@
|
||||
# Telit LE910-EUG
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at#servinfo")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $4}' | xargs)
|
||||
[ -n "$COPS" ] && COPS="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
TAC_DEC=$T_DEC
|
||||
ADDON="$ADDON"'{"TAC":"'$T_DEC' ('$T')"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
RSSI="$T"
|
||||
ADDON="$ADDON"'{"RSSI":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $10}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
RSRP="$T"
|
||||
ADDON="$ADDON"'{"RSRP":"'$T' dBm"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $6}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
PCI="$(printf "%d" "0x$T")"
|
||||
ADDON="$ADDON"'{"PCI":"'$(printf "%d" "0x$T")'"}'
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
EARFCN="$T"
|
||||
ADDON="$ADDON"'{"EARFCN":"'$T'"}'
|
||||
fi
|
||||
;;
|
||||
esac
|
@ -1,128 +0,0 @@
|
||||
# Telit LN940 (QMI) / Telit LN940 (MBIM) / HP lt4220 (MBIM) / HP lt4220 (QMI)
|
||||
|
||||
O=$(sms_tool -D -d $DEVICE at "AT^CA_INFO?;^RFSTS?;+TEMP")
|
||||
|
||||
TR=$(echo "$O" |grep -A2 RFSTS: | awk 'NR ==2{print $0}')
|
||||
|
||||
if [ "$MODE" = "LTE" ]; then
|
||||
RSRP=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$3}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSRQ=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$5}')
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$16*2-20}')
|
||||
else
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$6}')
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\PCC info: /{print $2}' | sed 's/Band is //g')
|
||||
[ -z "$T" ] && T=$(echo "$O" | awk -F[,] '/^\PCC info: /{print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
PC=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="LTE | $(band4g $PC)"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC1 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC1=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE/LTE/LTE_A} / "$(band4g ${SC1} "")
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC2 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC2=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE} / "$(band4g ${SC2} "")
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed 's,LTE_A,LTE-A ,')
|
||||
|
||||
# Primary band
|
||||
T1=$(echo "$O" | awk '/PCC/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T1" ]; then
|
||||
T2=$(echo "$O" | awk '/PCC/{print $8}' | sed -e 's/Band_width//g')
|
||||
PBAND="$(band4g ${T1/B/} "") @$T2 MHz"
|
||||
EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S1)
|
||||
T3=$(echo "$O" | awk '/SCC1/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T3" ]; then
|
||||
T4=$(echo "$O" | awk '/SCC1/{print $8}' | sed -e 's/Band_width//g')
|
||||
S1BAND="$(band4g ${T3/B/} "") @$T4 MHz"
|
||||
# S1EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S1PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S2)
|
||||
T5=$(echo "$O" | awk '/SCC2/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T5" ]; then
|
||||
T6=$(echo "$O" | awk '/SCC2/{print $8}' | sed -e 's/Band_width//g')
|
||||
S2BAND="$(band4g ${T5/B/} "") @$T6 MHz"
|
||||
# S2EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S2PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F [:] '/tsens_tz_sensor0:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP=$(echo "$T °C")
|
||||
fi
|
||||
|
||||
# Cell ID & LAC & TAC
|
||||
LAC_HEX=$(printf "%X" $LAC_DEC)
|
||||
if [ -n "$LAC_DEC" ]; then
|
||||
TAC_HEX=$LAC_HEX
|
||||
fi
|
||||
CID_HEX=$(printf "%X" $CID_DEC)
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1bc7 ProdID=1900' '{print $2}' | cut -c-1220)
|
||||
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
|
||||
# Model
|
||||
PVMODEL=$(echo $PV | awk -F 'Vendor=1bc7 ProdID=1900' '{print $2}' | cut -c-150)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODELBCUT=$(echo $PVMODEL | awk -F 'Manufacturer=|S: Product=' '{print $2}'| xargs)
|
||||
MODELACUT=$(echo $PVMODEL | awk -F 'Product=|S: SerialNumber' '{print $2}'| xargs)
|
||||
MODELC="$MODELBCUT "$MODELACUT
|
||||
MODEL=$(echo "$MODELC" | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | awk -F " " '/GSN /{print $2}')
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | awk -F " " '/CIMI /{print $2}')
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID" | xargs)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# FW
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEV2 | awk -F 'Revision: | IMEI: ' '{print $2}' | cut -c-50)v
|
@ -1,128 +0,0 @@
|
||||
# Telit LN940 (QMI) / Telit LN940 (MBIM) / HP lt4220 (MBIM) / HP lt4220 (QMI)
|
||||
|
||||
O=$(sms_tool -D -d $DEVICE at "AT^CA_INFO?;^RFSTS?;+TEMP")
|
||||
|
||||
TR=$(echo "$O" |grep -A2 RFSTS: | awk 'NR ==2{print $0}')
|
||||
|
||||
if [ "$MODE" = "LTE" ]; then
|
||||
RSRP=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$3}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSRQ=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$5}')
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$16*2-20}')
|
||||
else
|
||||
SINR=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$4}')
|
||||
RSSI=$(echo "$TR" | awk -F [,] '{printf "%.0f\n",$6}')
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\PCC info: /{print $2}' | sed 's/Band is //g')
|
||||
[ -z "$T" ] && T=$(echo "$O" | awk -F[,] '/^\PCC info: /{print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
PC=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="LTE | $(band4g $PC)"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC1 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC1=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE/LTE/LTE_A} / "$(band4g ${SC1} "")
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\SCC2 info: /{print $2}' | sed 's/Band is //g')
|
||||
if [ -n "$T" ]; then
|
||||
SC2=$(echo $T | tr -d 'LTE_B')
|
||||
MODE="${MODE} / "$(band4g ${SC2} "")
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed 's,LTE_A,LTE-A ,')
|
||||
|
||||
# Primary band
|
||||
T1=$(echo "$O" | awk '/PCC/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T1" ]; then
|
||||
T2=$(echo "$O" | awk '/PCC/{print $8}' | sed -e 's/Band_width//g')
|
||||
PBAND="$(band4g ${T1/B/} "") @$T2 MHz"
|
||||
EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S1)
|
||||
T3=$(echo "$O" | awk '/SCC1/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T3" ]; then
|
||||
T4=$(echo "$O" | awk '/SCC1/{print $8}' | sed -e 's/Band_width//g')
|
||||
S1BAND="$(band4g ${T3/B/} "") @$T4 MHz"
|
||||
# S1EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S1PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# CA band (S2)
|
||||
T5=$(echo "$O" | awk '/SCC2/{print $5}' | sed -e 's/LTE_//g' -e 's/.$//')
|
||||
if [ -n "$T5" ]; then
|
||||
T6=$(echo "$O" | awk '/SCC2/{print $8}' | sed -e 's/Band_width//g')
|
||||
S2BAND="$(band4g ${T5/B/} "") @$T6 MHz"
|
||||
# S2EARFCN=$(echo "$TR" |awk -F [,] '{print $2}')
|
||||
# S2PCI=$(echo "$TR" |awk -F [,] '{print $11}')
|
||||
fi
|
||||
|
||||
# Temperature
|
||||
T=$(echo "$O" | awk -F [:] '/tsens_tz_sensor0:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP=$(echo "$T °C")
|
||||
fi
|
||||
|
||||
# Cell ID & LAC & TAC
|
||||
LAC_HEX=$(printf "%X" $LAC_DEC)
|
||||
if [ -n "$LAC_DEC" ]; then
|
||||
TAC_HEX=$LAC_HEX
|
||||
fi
|
||||
CID_HEX=$(printf "%X" $CID_DEC)
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1bc7 ProdID=1901' '{print $2}' | cut -c-1220)
|
||||
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
|
||||
# Model
|
||||
PVMODEL=$(echo $PV | awk -F 'Vendor=1bc7 ProdID=1901' '{print $2}' | cut -c-150)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODELBCUT=$(echo $PVMODEL | awk -F 'Manufacturer=|S: Product=' '{print $2}'| xargs)
|
||||
MODELACUT=$(echo $PVMODEL | awk -F 'Product=|S: SerialNumber' '{print $2}'| xargs)
|
||||
MODELC="$MODELBCUT "$MODELACUT
|
||||
MODEL=$(echo "$MODELC" | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | awk -F " " '/GSN /{print $2}')
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | awk -F " " '/CIMI /{print $2}')
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID" | xargs)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# FW
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEV2 | awk -F 'Revision: | IMEI: ' '{print $2}' | cut -c-50)
|
@ -1,100 +0,0 @@
|
||||
# SIMCOM SIM8200EA-M2
|
||||
# SIMCOM SIM7906
|
||||
|
||||
OT=$(sms_tool -d $DEVICE at "AT+CPMUTEMP")
|
||||
|
||||
T=$(echo "$OT" | awk -F[,:] '/^\+CPMUTEMP: / {print $2}' | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+CPSI?")
|
||||
|
||||
case $MODE_NUM in
|
||||
7)
|
||||
MODE="LTE |"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
TAC_DEC=$(printf "%d" "$T")
|
||||
TAC_HEX="${T/0x/}"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $7}')
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/})"
|
||||
MODE="$MODE $(band4g ${T/EUTRAN-BAND/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $9}')
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $10}')
|
||||
if [ -n "$T" ]; then
|
||||
DLBW="DL: @$T MHz"
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/}) $DLBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
ULBW="UL: @$T MHz"
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/}) $DLBW $ULBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $12/10}')
|
||||
[ -n "$T" ] && RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $13/10}')
|
||||
[ -n "$T" ] && RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $14/10}')
|
||||
[ -n "$T" ] && RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $15}' | xargs)
|
||||
[ -n "$T" ] && SINR=$T
|
||||
;;
|
||||
11) MODE="5G SA";;
|
||||
13) MODE="5G NSA";;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "AT+CGMR")
|
||||
FWA=$(echo "$OF" | awk -F [:] '/^\+CGMR: /{print $2}' | xargs)
|
||||
if [ -n "$FWA" ]; then
|
||||
FW="$FWA"
|
||||
fi
|
||||
|
||||
OL=$(sms_tool -d $DEVICE at "AT+CGMM")
|
||||
MODELB=$(echo "$OL" | sed s/"AT+CGMM"// | tr -s "\n" | xargs)
|
||||
if [ -n "$MODELB" ]; then
|
||||
MODEL="$(echo $MODELB | sed 's,_, ,')"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OM=$(sms_tool -d $DEVICE at "AT+CGSN")
|
||||
NR_I=$(echo "$OM" | sed s/"AT+CGSN"// | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OC=$(sms_tool -d $DEVICE at "AT+CIMI")
|
||||
NR_C=$(echo "$OC" | sed s/"AT+CIMI"// | tr -s "\n" | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OI=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$OI" | awk -F [:] '/^\+ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1e0e ProdID=9000' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,100 +0,0 @@
|
||||
# SIMCOM SIM8200EA-M2
|
||||
# SIMCOM SIM7906
|
||||
|
||||
OT=$(sms_tool -d $DEVICE at "AT+CPMUTEMP")
|
||||
|
||||
T=$(echo "$OT" | awk -F[,:] '/^\+CPMUTEMP: / {print $2}' | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+CPSI?")
|
||||
|
||||
case $MODE_NUM in
|
||||
7)
|
||||
MODE="LTE |"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
TAC_DEC=$(printf "%d" "$T")
|
||||
TAC_HEX="${T/0x/}"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $7}')
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/})"
|
||||
MODE="$MODE $(band4g ${T/EUTRAN-BAND/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $9}')
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $10}')
|
||||
if [ -n "$T" ]; then
|
||||
DLBW="DL: @$T MHz"
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/}) $DLBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
ULBW="UL: @$T MHz"
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/}) $DLBW $ULBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $12/10}')
|
||||
[ -n "$T" ] && RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $13/10}')
|
||||
[ -n "$T" ] && RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $14/10}')
|
||||
[ -n "$T" ] && RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $15}' | xargs)
|
||||
[ -n "$T" ] && SINR=$T
|
||||
;;
|
||||
11) MODE="5G SA";;
|
||||
13) MODE="5G NSA";;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "AT+CGMR")
|
||||
FWA=$(echo "$OF" | awk -F [:] '/^\+CGMR: /{print $2}' | xargs)
|
||||
if [ -n "$FWA" ]; then
|
||||
FW="$FWA"
|
||||
fi
|
||||
|
||||
OL=$(sms_tool -d $DEVICE at "AT+CGMM")
|
||||
MODELB=$(echo "$OL" | sed s/"AT+CGMM"// | tr -s "\n" | xargs)
|
||||
if [ -n "$MODELB" ]; then
|
||||
MODEL="$(echo $MODELB | sed 's,_, ,')"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OM=$(sms_tool -d $DEVICE at "AT+CGSN")
|
||||
NR_I=$(echo "$OM" | sed s/"AT+CGSN"// | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OC=$(sms_tool -d $DEVICE at "AT+CIMI")
|
||||
NR_C=$(echo "$OC" | sed s/"AT+CIMI"// | tr -s "\n" | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OI=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$OI" | awk -F [:] '/^\+ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1e0e ProdID=9001' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,100 +0,0 @@
|
||||
# SIMCOM SIM8200EA-M2
|
||||
# SIMCOM SIM7906
|
||||
|
||||
OT=$(sms_tool -d $DEVICE at "AT+CPMUTEMP")
|
||||
|
||||
T=$(echo "$OT" | awk -F[,:] '/^\+CPMUTEMP: / {print $2}' | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+CPSI?")
|
||||
|
||||
case $MODE_NUM in
|
||||
7)
|
||||
MODE="LTE |"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
TAC_DEC=$(printf "%d" "$T")
|
||||
TAC_HEX="${T/0x/}"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $7}')
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/})"
|
||||
MODE="$MODE $(band4g ${T/EUTRAN-BAND/})"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $9}')
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $10}')
|
||||
if [ -n "$T" ]; then
|
||||
DLBW="DL: @$T MHz"
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/}) $DLBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
ULBW="UL: @$T MHz"
|
||||
PBAND="$(band4g ${T/EUTRAN-BAND/}) $DLBW $ULBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $12/10}')
|
||||
[ -n "$T" ] && RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $13/10}')
|
||||
[ -n "$T" ] && RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $14/10}')
|
||||
[ -n "$T" ] && RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $15}' | xargs)
|
||||
[ -n "$T" ] && SINR=$T
|
||||
;;
|
||||
11) MODE="5G SA";;
|
||||
13) MODE="5G NSA";;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "AT+CGMR")
|
||||
FWA=$(echo "$OF" | awk -F [:] '/^\+CGMR: /{print $2}' | xargs)
|
||||
if [ -n "$FWA" ]; then
|
||||
FW="$FWA"
|
||||
fi
|
||||
|
||||
OL=$(sms_tool -d $DEVICE at "AT+CGMM")
|
||||
MODELB=$(echo "$OL" | sed s/"AT+CGMM"// | tr -s "\n" | xargs)
|
||||
if [ -n "$MODELB" ]; then
|
||||
MODEL="$(echo $MODELB | sed 's,_, ,')"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OM=$(sms_tool -d $DEVICE at "AT+CGSN")
|
||||
NR_I=$(echo "$OM" | sed s/"AT+CGSN"// | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OC=$(sms_tool -d $DEVICE at "AT+CIMI")
|
||||
NR_C=$(echo "$OC" | sed s/"AT+CIMI"// | tr -s "\n" | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OI=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$OI" | awk -F [:] '/^\+ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1e0e ProdID=9003' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,225 +0,0 @@
|
||||
# Dell DW5930e
|
||||
# Foxconn T99W175
|
||||
# Thales Cinterion MV31-W
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT^TEMP?")
|
||||
|
||||
T=$(echo "$O" | awk '/^TSENS: / {gsub("C","",$2); print $2}')
|
||||
T1=$(echo "$O" | awk '/^PA: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
T1=$(echo "$O" | awk '/^Skin Sensor: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^debug?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
"7")
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q "scell:" && MODE="LTE-A |"
|
||||
;;
|
||||
"11")
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
"13")
|
||||
MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^lte_tac:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
# TAC_HEX=$(printf "%X" $T)
|
||||
# TAC_DEC=$(printf "%d" "0x$T")
|
||||
|
||||
TAC_HEX=$(printf "%X" $T)
|
||||
TAC_DEC="$T"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 pcell)
|
||||
T=$(echo "$O1" | awk -F: '/^pcell:/ {print $3}' | cut -f1 -d" ")
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE $(band4g $T)"
|
||||
T1=$(echo "$O1" | awk -F: '/^pcell:/ {print $4}' | xargs)
|
||||
PBAND="$(band4g $T) @${T1/MHz/} MHz"
|
||||
|
||||
T=$(echo "$O1" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O1" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
[ -n "$T" ] && RSRP="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="${T/dB/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
[ -n "$T" ] && RSSI="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && [ "$T" != "NA" ] && SINR="${T/dB/}"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 scell)
|
||||
IDX=0;
|
||||
while true; do
|
||||
O2=$(echo "$O1" | head -n4)
|
||||
if [ -z "$O2" ]; then
|
||||
break
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^scell:/ {print $3}' | cut -f1 -d" ")
|
||||
MODE="$MODE / $(band4g $T)"
|
||||
T1=$(echo "$O2" | awk -F: '/^scell:/ {print $4}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
|
||||
O1=$(echo "$O1" | sed '1,4d')
|
||||
done
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_band:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE / $(band5g ${T/n/})"
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T1=$(echo "$O" | awk -F: '/^nr_band_width:/ {print $2}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_pci:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_channel:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrp:/ {print $2}' | cut -f1 -d" ")
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrq:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O" | awk -F: '/^nr_snr:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
|
||||
# Modem
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1e2d ProdID=00b3' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,225 +0,0 @@
|
||||
# Dell DW5930e
|
||||
# Foxconn T99W175
|
||||
# Thales Cinterion MV31-W
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT^TEMP?")
|
||||
|
||||
T=$(echo "$O" | awk '/^TSENS: / {gsub("C","",$2); print $2}')
|
||||
T1=$(echo "$O" | awk '/^PA: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
T1=$(echo "$O" | awk '/^Skin Sensor: / {gsub("C","",$2); print $2}')
|
||||
if [ -n "$T" ] && [ -n "$T1" ]; then
|
||||
if [[ "$T1" =~ ^[0-9]+$ && "$T" =~ ^[0-9]+$ ]]; then
|
||||
if [ "$T1" -gt "$T" ]; then
|
||||
T="$T1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^debug?")
|
||||
|
||||
case "$MODE_NUM" in
|
||||
"7")
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q "scell:" && MODE="LTE-A |"
|
||||
;;
|
||||
"11")
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
"13")
|
||||
MODE="5G NSA |"
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^lte_tac:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
# TAC_HEX=$(printf "%X" $T)
|
||||
# TAC_DEC=$(printf "%d" "0x$T")
|
||||
|
||||
TAC_HEX=$(printf "%X" $T)
|
||||
TAC_DEC="$T"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 pcell)
|
||||
T=$(echo "$O1" | awk -F: '/^pcell:/ {print $3}' | cut -f1 -d" ")
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE $(band4g $T)"
|
||||
T1=$(echo "$O1" | awk -F: '/^pcell:/ {print $4}' | xargs)
|
||||
PBAND="$(band4g $T) @${T1/MHz/} MHz"
|
||||
|
||||
T=$(echo "$O1" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
[ -n "$T" ] && PCI=$T
|
||||
T=$(echo "$O1" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
[ -n "$T" ] && EARFCN=$T
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
[ -n "$T" ] && RSRP="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="${T/dB/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
[ -n "$T" ] && RSSI="${T/dBm/}"
|
||||
T=$(echo "$O1" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && [ "$T" != "NA" ] && SINR="${T/dB/}"
|
||||
fi
|
||||
|
||||
O1=$(echo "$O" | grep -A 3 scell)
|
||||
IDX=0;
|
||||
while true; do
|
||||
O2=$(echo "$O1" | head -n4)
|
||||
if [ -z "$O2" ]; then
|
||||
break
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^scell:/ {print $3}' | cut -f1 -d" ")
|
||||
MODE="$MODE / $(band4g $T)"
|
||||
T1=$(echo "$O2" | awk -F: '/^scell:/ {print $4}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band4g $T) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/pci:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F: '/^channel:/ {print $2}' | cut -f1 -d" " | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rsrp:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/rsrq:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O2" | awk -F[:,] '/^lte_rssi:/ {print $2}')
|
||||
# [ -n "$T" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "${T/dBm/} dBm"
|
||||
T=$(echo "$O2" | awk -F[:,] '/lte_snr:/ {print $4}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
|
||||
O1=$(echo "$O1" | sed '1,4d')
|
||||
done
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_band:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE="$MODE / $(band5g ${T/n/})"
|
||||
IDX=$((IDX + 1))
|
||||
|
||||
T1=$(echo "$O" | awk -F: '/^nr_band_width:/ {print $2}' | xargs)
|
||||
if [ -n "$T1" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
2) S2BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
3) S3BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
4) S4BAND="$(band5g ${T/n/}) @${T1/MHz/} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^nr_pci:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_channel:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrp:/ {print $2}' | cut -f1 -d" ")
|
||||
# [ -n "$T" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "${T/dBm/} dBm"
|
||||
T=$(echo "$O" | awk -F: '/^nr_rsrq:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "${T/dB/} dB"
|
||||
T=$(echo "$O" | awk -F: '/^nr_snr:/ {print $2}' | xargs)
|
||||
# [ -n "$T" ] && [ "$T" != "NA" ] && addon $((POS + 8)) "(S${IDX}) SNR" "${T/dB/} dB"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
|
||||
# Modem
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=1e2d ProdID=00b7' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,89 +0,0 @@
|
||||
# BroadMobi BM806U (DLINK DWR-921 C1)
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+BMTCELLINFO")
|
||||
echo "$O" | grep "^+BMTCELLINFO" | grep -q ",LAC_ID:" && O=$(echo "$O"| sed 's/,[ ]*/\n/g')
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^TAC:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_HEX=$(printf "%X" $T)
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^RSSI:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && RSSI="-${T}"
|
||||
T=$(echo "$O" | awk -F[,:] '/^RSRP:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^RSRQ:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^SINR:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
TB=$(echo "$O" | awk -F[,:] '/^ACTIVE BAND:/ {print $2}' | xargs)
|
||||
[ -n "$TB" ] && MODE="LTE | $(band4g ${TB})" && PBAND="$(band4g ${TB})"
|
||||
if [ -z "$TB" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^active band:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && MODE="LTE | $(band4g ${T})"
|
||||
PBAND="$(band4g ${T})"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^PCI:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^EARFCN_DL:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
EARFCN="$T"
|
||||
# EARFCN DL="$T"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^EARFCN_UL:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
EARFCN UL="$T"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2020 ProdID=2033' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,502 +0,0 @@
|
||||
# Quectel RM551E-GL
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ -z "$REG" ] || [ "x$MODE_NUM" = "x11" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "at+c5greg=2;+c5greg?")
|
||||
|
||||
# C5GREG
|
||||
eval $(echo "$O" | awk -F[,] '/^\+C5GREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";TAC_HEX=\"%X\";CID_HEX=\"%s\";TAC_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, $4, "0x"$3, $5}')
|
||||
case "$T" in
|
||||
0*) REG="0";;
|
||||
1*) REG="1";;
|
||||
2*) REG="2";;
|
||||
3*) REG="3";;
|
||||
5*) REG="5";;
|
||||
*) REG="";;
|
||||
esac
|
||||
[ "x$REG" = "x1" ] || [ "x$REG" = "x5" ] && REGOK=1
|
||||
|
||||
[ "$TAC_DEC" != "0" ]
|
||||
[ -n "$CID_HEX" ] && CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*)
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*NR5G"; then
|
||||
MODE="5G NSA |"
|
||||
else
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*PCC.*LTE"; then
|
||||
MODE="LTE |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{gsub(" ", "-");print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
for T in $T1; do
|
||||
case $T in
|
||||
*"LTE-BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band4g ${B})"
|
||||
;;
|
||||
*"NR5G-BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xNR5G-SA" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
CID_HEX=$T
|
||||
CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
# [ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) BW="5";;
|
||||
1) BW="10";;
|
||||
2) BW="15";;
|
||||
3) BW="20";;
|
||||
4) BW="25";;
|
||||
5) BW="30";;
|
||||
6) BW="40";;
|
||||
7) BW="50";;
|
||||
8) BW="60";;
|
||||
9) BW="70";;
|
||||
10) BW="80";;
|
||||
11) BW="90";;
|
||||
12) BW="100";;
|
||||
13) BW="200";;
|
||||
14) BW="400";;
|
||||
*) BW="";;
|
||||
esac
|
||||
[ -n "$BW" ] && DBW="@$BW MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="$T"
|
||||
if [ -n "$BW" ]; then
|
||||
N=$((BW * 5))
|
||||
RSSI=$(echo "$T $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
[ -z "$CSQ_PER" ] && CSQ_PER=$(((RSSI + 113) * 100 / 62 ))
|
||||
[ -z "$CSQ" ] && CSQ=$(((31 * CSQ_PER) / 100))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
if [ "x$MODE_NUM" = "x13" ]; then
|
||||
LINES=$(echo "$O" | grep "+QENG")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/{print $2}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $16}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $11}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
elif [ "x$T" = "xservingcell" ]; then
|
||||
if [ "x${MODE:0:3}" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
;;
|
||||
esac
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
if [ -n "$DBW" ]; then
|
||||
PBAND="$T2 $DBW"
|
||||
fi
|
||||
else
|
||||
PBAND="$T2 @$T4 MHz"
|
||||
fi
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $6}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
else
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
fi
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
T4=""
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $10}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
case $T3 in
|
||||
0) T4="5";;
|
||||
1) T4="10";;
|
||||
2) T4="15";;
|
||||
3) T4="20";;
|
||||
4) T4="25";;
|
||||
5) T4="30";;
|
||||
6) T4="40";;
|
||||
7) T4="50";;
|
||||
8) T4="60";;
|
||||
9) T4="70";;
|
||||
10) T4="80";;
|
||||
11) T4="90";;
|
||||
12) T4="100";;
|
||||
13) T4="200";;
|
||||
14) T4="400";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
[ -n "$T5" ]
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ] && [ "$T5" != "-" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
else
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $6}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
else
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @$T4 MHz";;
|
||||
2) S2BAND="$T2 @$T4 MHz";;
|
||||
3) S3BAND="$T2 @$T4 MHz";;
|
||||
4) S4BAND="$T2 @$T4 MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
GETNFO=$(gcom -d $DEVICE -s /usr/share/3ginfo-lite/vendorproduct.gcom)
|
||||
FW=$(echo "$GETNFO" | awk -F [:] '/^\+CGMR:/{print $2}' | xargs)
|
||||
|
||||
MVENDOR=$(echo "$GETNFO" | awk -F [:] '/^\+CGMI:/{print $2}' | xargs)
|
||||
MPRODUCT=$(echo "$GETNFO" | awk -F [:] '/^\+CGMM:/{print $2}' | xargs)
|
||||
MODEL="$MVENDOR "$MPRODUCT
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
NR_I=$(echo "$GETNFO" | awk -F [:] '/^\+CGSN:/{print $2}' | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
NR_C=$(echo "$GETNFO" | awk -F [:] '/^\+CIMI:/{print $2}' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
NR_D=$(echo "$GETNFO" | awk -F [:] '/^\+ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0801' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,118 +0,0 @@
|
||||
# Quectel EC20-E
|
||||
# Quectel EC25
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {t=$2*1;if($3*1>t)t=$3*1;if($4*1>t)t=$4*1;printf "%d", t}')
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $2"/"$4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
MODE="LTE | $(band4g ${B})"
|
||||
MAINCUT="$(band4g ${B})"
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ] || [ "x$T" = "x4G" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX="$T"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
PBAND="$MAINCUT $DLBW $ULBW"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $17}')
|
||||
RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", $1*0.2-20}')
|
||||
SINR="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEVV | awk -F 'Revision:' '{print $2}'| xargs)
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $1}'| xargs)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $2}'| xargs)
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0125' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,502 +0,0 @@
|
||||
# Quectel RM551E-GL
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ -z "$REG" ] || [ "x$MODE_NUM" = "x11" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "at+c5greg=2;+c5greg?")
|
||||
|
||||
# C5GREG
|
||||
eval $(echo "$O" | awk -F[,] '/^\+C5GREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";TAC_HEX=\"%X\";CID_HEX=\"%s\";TAC_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, $4, "0x"$3, $5}')
|
||||
case "$T" in
|
||||
0*) REG="0";;
|
||||
1*) REG="1";;
|
||||
2*) REG="2";;
|
||||
3*) REG="3";;
|
||||
5*) REG="5";;
|
||||
*) REG="";;
|
||||
esac
|
||||
[ "x$REG" = "x1" ] || [ "x$REG" = "x5" ] && REGOK=1
|
||||
|
||||
[ "$TAC_DEC" != "0" ]
|
||||
[ -n "$CID_HEX" ] && CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*)
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*NR5G"; then
|
||||
MODE="5G NSA |"
|
||||
else
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*PCC.*LTE"; then
|
||||
MODE="LTE |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{gsub(" ", "-");print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
for T in $T1; do
|
||||
case $T in
|
||||
*"LTE-BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band4g ${B})"
|
||||
;;
|
||||
*"NR5G-BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xNR5G-SA" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
CID_HEX=$T
|
||||
CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
# [ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) BW="5";;
|
||||
1) BW="10";;
|
||||
2) BW="15";;
|
||||
3) BW="20";;
|
||||
4) BW="25";;
|
||||
5) BW="30";;
|
||||
6) BW="40";;
|
||||
7) BW="50";;
|
||||
8) BW="60";;
|
||||
9) BW="70";;
|
||||
10) BW="80";;
|
||||
11) BW="90";;
|
||||
12) BW="100";;
|
||||
13) BW="200";;
|
||||
14) BW="400";;
|
||||
*) BW="";;
|
||||
esac
|
||||
[ -n "$BW" ] && DBW="@$BW MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="$T"
|
||||
if [ -n "$BW" ]; then
|
||||
N=$((BW * 5))
|
||||
RSSI=$(echo "$T $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
[ -z "$CSQ_PER" ] && CSQ_PER=$(((RSSI + 113) * 100 / 62 ))
|
||||
[ -z "$CSQ" ] && CSQ=$(((31 * CSQ_PER) / 100))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
if [ "x$MODE_NUM" = "x13" ]; then
|
||||
LINES=$(echo "$O" | grep "+QENG")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/{print $2}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $16}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $11}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
elif [ "x$T" = "xservingcell" ]; then
|
||||
if [ "x${MODE:0:3}" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
;;
|
||||
esac
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
if [ -n "$DBW" ]; then
|
||||
PBAND="$T2 $DBW"
|
||||
fi
|
||||
else
|
||||
PBAND="$T2 @$T4 MHz"
|
||||
fi
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $6}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
else
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
fi
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
T4=""
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $10}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
case $T3 in
|
||||
0) T4="5";;
|
||||
1) T4="10";;
|
||||
2) T4="15";;
|
||||
3) T4="20";;
|
||||
4) T4="25";;
|
||||
5) T4="30";;
|
||||
6) T4="40";;
|
||||
7) T4="50";;
|
||||
8) T4="60";;
|
||||
9) T4="70";;
|
||||
10) T4="80";;
|
||||
11) T4="90";;
|
||||
12) T4="100";;
|
||||
13) T4="200";;
|
||||
14) T4="400";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
[ -n "$T5" ]
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ] && [ "$T5" != "-" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
else
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $6}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
else
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @$T4 MHz";;
|
||||
2) S2BAND="$T2 @$T4 MHz";;
|
||||
3) S3BAND="$T2 @$T4 MHz";;
|
||||
4) S4BAND="$T2 @$T4 MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
GETNFO=$(gcom -d $DEVICE -s /usr/share/3ginfo-lite/vendorproduct.gcom)
|
||||
FW=$(echo "$GETNFO" | awk -F [:] '/^\+CGMR:/{print $2}' | xargs)
|
||||
|
||||
MVENDOR=$(echo "$GETNFO" | awk -F [:] '/^\+CGMI:/{print $2}' | xargs)
|
||||
MPRODUCT=$(echo "$GETNFO" | awk -F [:] '/^\+CGMM:/{print $2}' | xargs)
|
||||
MODEL="$MVENDOR "$MPRODUCT
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
NR_I=$(echo "$GETNFO" | awk -F [:] '/^\+CGSN:/{print $2}' | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
NR_C=$(echo "$GETNFO" | awk -F [:] '/^\+CIMI:/{print $2}' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
NR_D=$(echo "$GETNFO" | awk -F [:] '/^\+ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0801' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,149 +0,0 @@
|
||||
# Quectel EP06
|
||||
# Quectel EG06
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {t=$2*1;if($3*1>t)t=$3*1;if($4*1>t)t=$4*1;printf "%d", t}')
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $2"/"$4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
MODE="LTE $(band4g ${B})"
|
||||
MAINCUT="$(band4g ${B})"
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ] || [ "x$T" = "x4G" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
DLBW="DL: @$T1 MHz"
|
||||
PBAND="$MAINCUT $DLBW $ULBW"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $17}')
|
||||
RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", $1*0.2-20}')
|
||||
SINR=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCAINFO")
|
||||
|
||||
T=$(echo "$O" | awk -F[,] '/^\+QCAINFO: "scc"/{print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $4}')
|
||||
case $T in
|
||||
6) T1="1.4";;
|
||||
15) T1="3";;
|
||||
25) T1="5";;
|
||||
50) T1="10";;
|
||||
75) T1="15";;
|
||||
100) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${B})"
|
||||
S1BAND="$(band4g ${B}) @$T1 MHz"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $7}')
|
||||
S1PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $3}')
|
||||
S1EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $10}')
|
||||
RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $8}')
|
||||
RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $9}')
|
||||
RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $11}' | awk '{printf "%.1f\n", $1*0.2-20}')
|
||||
SINR=$T
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed "s/LTE_A/LTE-A | /g")
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEVV | awk -F 'Revision:' '{print $2}'| xargs)
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $1}'| xargs)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $2}'| xargs)
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0306' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,147 +0,0 @@
|
||||
# Quectel EM06
|
||||
|
||||
QTEMP=$(sms_tool -d $DEVICE at "AT+QTEMP" | grep cpuss-usr)
|
||||
QTEMPEXTRACTED=$(echo "${QTEMP}" | awk -F[,:] '/^\+QTEMP/ {t=$2*1;if($3*1>t)t=$3*1;if($4*1>t)t=$4*1;printf "%d", t}')
|
||||
[ -n "${QTEMP}" ] && TEMP="${QTEMPEXTRACTED} °C"
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $2"/"$4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
MODE="LTE $(band4g ${B})"
|
||||
MAINCUT="$(band4g ${B})"
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ] || [ "x$T" = "x4G" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
DLBW="DL: @$T1 MHz"
|
||||
PBAND="$MAINCUT $DLBW $ULBW"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $17}')
|
||||
RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", $1*0.2-20}')
|
||||
SINR=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCAINFO")
|
||||
|
||||
T=$(echo "$O" | awk -F[,] '/^\+QCAINFO: "scc"/{print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $4}')
|
||||
case $T in
|
||||
6) T1="1.4";;
|
||||
15) T1="3";;
|
||||
25) T1="5";;
|
||||
50) T1="10";;
|
||||
75) T1="15";;
|
||||
100) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${B})"
|
||||
S1BAND="$(band4g ${B}) @$T1 MHz"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $7}')
|
||||
S1PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $3}')
|
||||
S1EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $10}')
|
||||
RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $8}')
|
||||
RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $9}')
|
||||
RSRQ=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "scc"/ {print $11}' | awk '{printf "%.1f\n", $1*0.2-20}')
|
||||
SINR=$T
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed "s/LTE_A/LTE-A | /g")
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEVV | awk -F 'Revision:' '{print $2}'| xargs)
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $1}'| xargs)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $2}'| xargs)
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=030b' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,251 +0,0 @@
|
||||
# Quectel EG18-EA
|
||||
# Quectel EM12-G
|
||||
# Quectel EM160R-GL
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
echo "$O" | grep -q -i "+QCAINFO.*SCC" && MODE="LTE-A"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -z "$T" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO:/{print $4}')
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
MODE="$MODE $T2"
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QNWINFO:"/{print $11}')
|
||||
case $T3 in
|
||||
6) T4="1.4";;
|
||||
15) T4="3";;
|
||||
25) T4="5";;
|
||||
50) T4="10";;
|
||||
75) T4="15";;
|
||||
100) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
else
|
||||
PBAND="$T2 @${T4} MHz"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $17}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {printf "%.1f\n", $18/5-20}' | xargs)
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
else
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
MODE="$MODE $T2"
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6) T4="1.4";;
|
||||
15) T4="3";;
|
||||
25) T4="5";;
|
||||
50) T4="10";;
|
||||
75) T4="15";;
|
||||
100) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
else
|
||||
PBAND="$T2 @${T4} MHz"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{printf "%.1f\n", $11/5-20}' | xargs)
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
MODE="$MODE / $T2"
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6) T4="1.4";;
|
||||
15) T4="3";;
|
||||
25) T4="5";;
|
||||
50) T4="10";;
|
||||
75) T4="15";;
|
||||
100) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
else
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @${T4} MHz";;
|
||||
2) S2BAND="$T2 @${T4} MHz";;
|
||||
3) S3BAND="$T2 @${T4} MHz";;
|
||||
4) S4BAND="$T2 @${T4} MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $10}')
|
||||
# addon $((POS + 5)) "(S${IDX}) RSSI" "$T dBm"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# addon $((POS + 6)) "(S${IDX}) RSRP" "$T dBm"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}')
|
||||
# addon $((POS + 7)) "(S${IDX}) RSRQ" "$T dB"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{printf "%.1f\n", $11/5-20}' | xargs)
|
||||
# addon $((POS + 8)) "(S${IDX}) SINR" "$T dB"
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
# Modem
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEVV=$(echo $OF | tr -s "\n" | xargs)
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | cut -c 8-)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | cut -c 9-)
|
||||
MODELBCUT=$(echo $MODELB | cut -c 9-)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODEL=$(echo $DEVV | awk -F 'ati|Revision:' '{print $2}'| xargs)
|
||||
fi
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0512' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,255 +0,0 @@
|
||||
# Quectel EM160R-GL
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
fi
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
echo "$O" | grep -q -i "+QCAINFO.*SCC" && MODE="LTE-A |"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{gsub(" ", "-");print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
for T in $T1; do
|
||||
B=$(echo $T | sed 's/"LTE-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band4g ${B})"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$T
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $17}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSSI=$T
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRP=$T
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
RSRQ=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $10}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
|
||||
QO=$(sms_tool -d $DEVICE at "at+qnwinfo;")
|
||||
PBAND=$(echo "$QO" | awk -F[,:] '/^\+QNWINFO:/ {print $4}' | xargs)
|
||||
MAINCUT=$(echo $PBAND | sed 's/LTE BAND //g')
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
DLBW="DL: @$T1 MHz"
|
||||
|
||||
PBAND="$(band4g $MAINCUT "") $DLBW $ULBW"
|
||||
if [ "x$MODE" = "xLTE" ]; then
|
||||
MODE="LTE | $(band4g $MAINCUT "")"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6) T4="1.4";;
|
||||
15) T4="3";;
|
||||
25) T4="5";;
|
||||
50) T4="10";;
|
||||
75) T4="15";;
|
||||
100) T4="20";;
|
||||
*) T4="?";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
else
|
||||
PBAND="$T2 @$T4 MHz"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
EARFCN=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
PCI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
RSSI=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
RSRP=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
RSRQ=$T
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6) T4="1.4";;
|
||||
15) T4="3";;
|
||||
25) T4="5";;
|
||||
50) T4="10";;
|
||||
75) T4="15";;
|
||||
100) T4="20";;
|
||||
*) T4="?";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
else
|
||||
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @$T4 MHz";;
|
||||
2) S2BAND="$T2 @$T4 MHz";;
|
||||
3) S3BAND="$T2 @$T4 MHz";;
|
||||
4) S4BAND="$T2 @$T4 MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T";;
|
||||
2) S2EARFCN="$T";;
|
||||
3) S3EARFCN="$T";;
|
||||
4) S4EARFCN="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
|
||||
case $IDX in
|
||||
1) S1PCI="$T";;
|
||||
2) S2PCI="$T";;
|
||||
3) S3PCI="$T";;
|
||||
4) S4PCI="$T";;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+GMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | cut -c 8-)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | cut -c 9-)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0620' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
|
@ -1,534 +0,0 @@
|
||||
# Quectel RG500Q-EA
|
||||
# Quectel RG502Q-EA
|
||||
# Quectel RM500Q-GL
|
||||
# Quectel RM502Q-AE
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ -z "$REG" ] || [ "x$MODE_NUM" = "x11" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "at+c5greg=2;+c5greg?")
|
||||
|
||||
# C5GREG
|
||||
eval $(echo "$O" | awk -F[,] '/^\+C5GREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";TAC_HEX=\"%X\";CID_HEX=\"%s\";TAC_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, $4, "0x"$3, $5}')
|
||||
case "$T" in
|
||||
0*) REG="0";;
|
||||
1*) REG="1";;
|
||||
2*) REG="2";;
|
||||
3*) REG="3";;
|
||||
5*) REG="5";;
|
||||
*) REG="";;
|
||||
esac
|
||||
[ "x$REG" = "x1" ] || [ "x$REG" = "x5" ] && REGOK=1
|
||||
|
||||
[ "$TAC_DEC" != "0" ]
|
||||
[ -n "$CID_HEX" ] && CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q -i "+QCAINFO.*SCC" && MODE="LTE_A"
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*)
|
||||
MODE="LTE |"
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*NR5G"; then
|
||||
MODE="5G NSA |"
|
||||
else
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*PCC.*LTE"; then
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
;;
|
||||
*"NR N"*)
|
||||
B=$(echo $T | sed 's/NR N\(.*\)/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{gsub(" ", "-");print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
for T in $T1; do
|
||||
case $T in
|
||||
*"LTE-BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band4g ${B})"
|
||||
;;
|
||||
*"NR-N"*)
|
||||
B=$(echo $T | sed 's/NR-N\(.*\)/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
*"NR5G-BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
else
|
||||
case "$MODE_NUM" in
|
||||
7 | 13)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO:.*LTE.*/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO:.*NR5G.*/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xNR5G-SA" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
CID_HEX=$T
|
||||
CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
# [ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) BW="5";;
|
||||
1) BW="10";;
|
||||
2) BW="15";;
|
||||
3) BW="20";;
|
||||
4) BW="25";;
|
||||
5) BW="30";;
|
||||
6) BW="40";;
|
||||
7) BW="50";;
|
||||
8) BW="60";;
|
||||
9) BW="70";;
|
||||
10) BW="80";;
|
||||
11) BW="90";;
|
||||
12) BW="100";;
|
||||
13) BW="200";;
|
||||
14) BW="400";;
|
||||
*) BW="";;
|
||||
esac
|
||||
[ -n "$BW" ] && DBW="@$BW MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="$T"
|
||||
if [ -n "$BW" ]; then
|
||||
N=$((BW * 5))
|
||||
RSSI=$(echo "$T $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
[ -z "$CSQ_PER" ] && CSQ_PER=$(((RSSI + 113) * 100 / 62 ))
|
||||
[ -z "$CSQ" ] && CSQ=$(((31 * CSQ_PER) / 100))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
if [ "x$MODE_NUM" = "x13" ]; then
|
||||
LINES=$(echo "$O" | grep "+QENG")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/{print $2}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $16}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $11}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
elif [ "x$T" = "xservingcell" ]; then
|
||||
if [ "x${MODE:0:3}" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
;;
|
||||
esac
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
if [ -n "$DBW" ]; then
|
||||
PBAND="$T2 $DBW"
|
||||
fi
|
||||
else
|
||||
PBAND="$T2 @$T4 MHz"
|
||||
fi
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $6}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
else
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
fi
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
T4=""
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $10}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
case $T3 in
|
||||
0) T4="5";;
|
||||
1) T4="10";;
|
||||
2) T4="15";;
|
||||
3) T4="20";;
|
||||
4) T4="25";;
|
||||
5) T4="30";;
|
||||
6) T4="40";;
|
||||
7) T4="50";;
|
||||
8) T4="60";;
|
||||
9) T4="70";;
|
||||
10) T4="80";;
|
||||
11) T4="90";;
|
||||
12) T4="100";;
|
||||
13) T4="200";;
|
||||
14) T4="400";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
[ -n "$T5" ]
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ] && [ "$T5" != "-" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
else
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $6}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
else
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @$T4 MHz";;
|
||||
2) S2BAND="$T2 @$T4 MHz";;
|
||||
3) S3BAND="$T2 @$T4 MHz";;
|
||||
4) S4BAND="$T2 @$T4 MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+GMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+GSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0800' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,532 +0,0 @@
|
||||
# Quectel RM520N-GL
|
||||
# Quectel RM521F-GL
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ -z "$REG" ] || [ "x$MODE_NUM" = "x11" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "at+c5greg=2;+c5greg?")
|
||||
|
||||
# C5GREG
|
||||
eval $(echo "$O" | awk -F[,] '/^\+C5GREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";TAC_HEX=\"%X\";CID_HEX=\"%s\";TAC_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, $4, "0x"$3, $5}')
|
||||
case "$T" in
|
||||
0*) REG="0";;
|
||||
1*) REG="1";;
|
||||
2*) REG="2";;
|
||||
3*) REG="3";;
|
||||
5*) REG="5";;
|
||||
*) REG="";;
|
||||
esac
|
||||
[ "x$REG" = "x1" ] || [ "x$REG" = "x5" ] && REGOK=1
|
||||
|
||||
[ "$TAC_DEC" != "0" ]
|
||||
[ -n "$CID_HEX" ] && CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
MODE="LTE |"
|
||||
echo "$O" | grep -q -i "+QCAINFO.*SCC" && MODE="LTE_A"
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*)
|
||||
MODE="LTE |"
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*NR5G"; then
|
||||
MODE="5G NSA |"
|
||||
else
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*PCC.*LTE"; then
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
;;
|
||||
*"NR N"*)
|
||||
B=$(echo $T | sed 's/NR N\(.*\)/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{gsub(" ", "-");print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
for T in $T1; do
|
||||
case $T in
|
||||
*"LTE-BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band4g ${B})"
|
||||
;;
|
||||
*"NR-N"*)
|
||||
B=$(echo $T | sed 's/NR-N\(.*\)/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
*"NR5G-BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
else
|
||||
case "$MODE_NUM" in
|
||||
7 | 13)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO:.*LTE.*/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO:.*NR5G.*/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xNR5G-SA" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
CID_HEX=$T
|
||||
CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
# [ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) BW="5";;
|
||||
1) BW="10";;
|
||||
2) BW="15";;
|
||||
3) BW="20";;
|
||||
4) BW="25";;
|
||||
5) BW="30";;
|
||||
6) BW="40";;
|
||||
7) BW="50";;
|
||||
8) BW="60";;
|
||||
9) BW="70";;
|
||||
10) BW="80";;
|
||||
11) BW="90";;
|
||||
12) BW="100";;
|
||||
13) BW="200";;
|
||||
14) BW="400";;
|
||||
*) BW="";;
|
||||
esac
|
||||
[ -n "$BW" ] && DBW="@$BW MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="$T"
|
||||
if [ -n "$BW" ]; then
|
||||
N=$((BW * 5))
|
||||
RSSI=$(echo "$T $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
[ -z "$CSQ_PER" ] && CSQ_PER=$(((RSSI + 113) * 100 / 62 ))
|
||||
[ -z "$CSQ" ] && CSQ=$(((31 * CSQ_PER) / 100))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
if [ "x$MODE_NUM" = "x13" ]; then
|
||||
LINES=$(echo "$O" | grep "+QENG")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/{print $2}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $16}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $11}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
elif [ "x$T" = "xservingcell" ]; then
|
||||
if [ "x${MODE:0:3}" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
;;
|
||||
esac
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
if [ -n "$DBW" ]; then
|
||||
PBAND="$T2 $DBW"
|
||||
fi
|
||||
else
|
||||
PBAND="$T2 @$T4 MHz"
|
||||
fi
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $6}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
else
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
fi
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
T4=""
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $10}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
case $T3 in
|
||||
0) T4="5";;
|
||||
1) T4="10";;
|
||||
2) T4="15";;
|
||||
3) T4="20";;
|
||||
4) T4="25";;
|
||||
5) T4="30";;
|
||||
6) T4="40";;
|
||||
7) T4="50";;
|
||||
8) T4="60";;
|
||||
9) T4="70";;
|
||||
10) T4="80";;
|
||||
11) T4="90";;
|
||||
12) T4="100";;
|
||||
13) T4="200";;
|
||||
14) T4="400";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
[ -n "$T5" ]
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ] && [ "$T5" != "-" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
else
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $6}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
else
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @$T4 MHz";;
|
||||
2) S2BAND="$T2 @$T4 MHz";;
|
||||
3) S3BAND="$T2 @$T4 MHz";;
|
||||
4) S4BAND="$T2 @$T4 MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+GMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+GSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0801' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,519 +0,0 @@
|
||||
# Quectel RM500U-CNV
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $3}' | sort -r | head -n1 | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ -z "$REG" ] || [ "x$MODE_NUM" = "x11" ]; then
|
||||
O=$(sms_tool -d $DEVICE at "at+c5greg=2;+c5greg?")
|
||||
|
||||
# C5GREG
|
||||
eval $(echo "$O" | awk -F[,] '/^\+C5GREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";TAC_HEX=\"%X\";CID_HEX=\"%s\";TAC_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, $4, "0x"$3, $5}')
|
||||
case "$T" in
|
||||
0*) REG="0";;
|
||||
1*) REG="1";;
|
||||
2*) REG="2";;
|
||||
3*) REG="3";;
|
||||
5*) REG="5";;
|
||||
*) REG="";;
|
||||
esac
|
||||
[ "x$REG" = "x1" ] || [ "x$REG" = "x5" ] && REGOK=1
|
||||
|
||||
[ "$TAC_DEC" != "0" ]
|
||||
[ -n "$CID_HEX" ] && CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qcainfo;+qeng=\"servingcell\";+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
fi
|
||||
;;
|
||||
11*)
|
||||
MODE="5G SA |"
|
||||
;;
|
||||
13*)
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*NR5G"; then
|
||||
MODE="5G NSA |"
|
||||
else
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*PCC.*LTE"; then
|
||||
MODE="LTE |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
|
||||
if echo "$O" | grep -q -i "+QCAINFO.*SCC"; then
|
||||
MODE="LTE-A |"
|
||||
|
||||
OTS=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR=$OTS
|
||||
|
||||
TDX=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$TDX")
|
||||
TAC_HEX=$TDX
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band4g ${B})"
|
||||
;;
|
||||
*"NR N"*)
|
||||
B=$(echo $T | sed 's/NR N\(.*\)/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
MODE="$MODE $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
|
||||
T1=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{gsub(" ", "-");print $5}')
|
||||
if [ -n "$T1" ]; then
|
||||
for T in $T1; do
|
||||
case $T in
|
||||
*"LTE-BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band4g ${B})"
|
||||
;;
|
||||
*"NR-N"*)
|
||||
B=$(echo $T | sed 's/NR-N\(.*\)/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
*"NR5G-BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G-BAND-\(.*\)"/\1/')
|
||||
MODE="$MODE / $(band5g ${B})"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xNR5G-SA" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
CID_HEX=$T
|
||||
CID_DEC=$(printf "%d" "0x${CID_HEX}")
|
||||
fi
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
# [ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) BW="5";;
|
||||
1) BW="10";;
|
||||
2) BW="15";;
|
||||
3) BW="20";;
|
||||
4) BW="25";;
|
||||
5) BW="30";;
|
||||
6) BW="40";;
|
||||
7) BW="50";;
|
||||
8) BW="60";;
|
||||
9) BW="70";;
|
||||
10) BW="80";;
|
||||
11) BW="90";;
|
||||
12) BW="100";;
|
||||
13) BW="200";;
|
||||
14) BW="400";;
|
||||
*) BW="";;
|
||||
esac
|
||||
[ -n "$BW" ] && DBW="@$BW MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP="$T"
|
||||
if [ -n "$BW" ]; then
|
||||
N=$((BW * 5))
|
||||
RSSI=$(echo "$T $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
[ -z "$CSQ_PER" ] && CSQ_PER=$(((RSSI + 113) * 100 / 62 ))
|
||||
[ -z "$CSQ" ] && CSQ=$(((31 * CSQ_PER) / 100))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
if [ "x$MODE_NUM" = "x13" ]; then
|
||||
LINES=$(echo "$O" | grep "+QENG")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/{print $2}' | xargs)
|
||||
if [ "x$T" = "xLTE" ]; then
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
TAC_DEC=$(printf "%d" "0x$T")
|
||||
TAC_HEX=$T
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $16}' | awk '{printf "%.0f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QENG:/ {print $11}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
elif [ "x$T" = "xservingcell" ]; then
|
||||
if [ "x${MODE:0:3}" = "xLTE" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $18}' | awk '{printf "%.1f\n", 0.2*$1*10 - 20}')
|
||||
SINR="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0*) T1="1.4";;
|
||||
1*) T1="3";;
|
||||
2*) T1="5";;
|
||||
3*) T1="10";;
|
||||
4*) T1="15";;
|
||||
5*) T1="20";;
|
||||
*) T1="";;
|
||||
esac
|
||||
[ -n "$T1" ] && DLBW="DL: @$T1 MHz"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
;;
|
||||
*"NR N"*)
|
||||
B=$(echo $T | sed 's/NR N\(.*\)/\1/')
|
||||
T2=$(band5g ${B})
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
;;
|
||||
esac
|
||||
T3=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $4}')
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
PBAND="$T2"
|
||||
if [ -n "$DBW" ]; then
|
||||
PBAND="$T2 $DBW"
|
||||
fi
|
||||
else
|
||||
PBAND="$T2 @$T4 MHz"
|
||||
fi
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $6}' | xargs)
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
else
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $3}')
|
||||
[ -n "$T" ] && EARFCN="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $7}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $10}')
|
||||
[ -n "$T" ] && RSSI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $8}')
|
||||
[ -n "$T" ] && RSRP="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QCAINFO: "(pcc|PCC)"/{print $9}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
fi
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^\+QCAINFO: \"(scc|SCC)\"")
|
||||
for LINE in $LINES; do
|
||||
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $5}')
|
||||
T3=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $4}')
|
||||
T4=""
|
||||
case $T in
|
||||
*"LTE BAND"*)
|
||||
B=$(echo $T | sed 's/"LTE BAND \(.*\)"/\1/')
|
||||
T2=$(band4g ${B})
|
||||
case $T3 in
|
||||
6*) T4="1.4";;
|
||||
15*) T4="3";;
|
||||
25*) T4="5";;
|
||||
50*) T4="10";;
|
||||
75*) T4="15";;
|
||||
100*) T4="20";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $10}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 5)) "(S${IDX}) RSSI" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}' | xargs)
|
||||
# [ -n "$T5" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
;;
|
||||
*"NR5G BAND"*)
|
||||
B=$(echo $T | sed 's/"NR5G BAND \(.*\)"/\1/')
|
||||
T2=$(band5g ${B})
|
||||
case $T3 in
|
||||
0) T4="5";;
|
||||
1) T4="10";;
|
||||
2) T4="15";;
|
||||
3) T4="20";;
|
||||
4) T4="25";;
|
||||
5) T4="30";;
|
||||
6) T4="40";;
|
||||
7) T4="50";;
|
||||
8) T4="60";;
|
||||
9) T4="70";;
|
||||
10) T4="80";;
|
||||
11) T4="90";;
|
||||
12) T4="100";;
|
||||
13) T4="200";;
|
||||
14) T4="400";;
|
||||
*) T4="";;
|
||||
esac
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $3}')
|
||||
[ -n "$T5" ]
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1EARFCN="$T5";;
|
||||
2) S2EARFCN="$T5";;
|
||||
3) S3EARFCN="$T5";;
|
||||
4) S4EARFCN="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "x$MODE_NUM" = "x11" ]; then
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}' | xargs)
|
||||
if [ -n "$T5" ] && [ "$T5" != "-" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $9}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
else
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $6}' | xargs)
|
||||
if [ -n "$T5" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$T5";;
|
||||
2) S2PCI="$T5";;
|
||||
3) S3PCI="$T5";;
|
||||
4) S4PCI="$T5";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $7}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$T5 dBm"
|
||||
T5=$(echo "$LINE" | awk -F[,:] '/^\+QCAINFO: "(scc|SCC)"/{print $8}')
|
||||
# [ -n "$T5" ] && [ "$T5" != "-" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$T5 dB"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ -z "$T4" ]; then
|
||||
case $IDX in
|
||||
1) S1BAND="$T2";;
|
||||
2) S2BAND="$T2";;
|
||||
3) S3BAND="$T2";;
|
||||
4) S4BAND="$T2";;
|
||||
*) ;;
|
||||
esac
|
||||
else
|
||||
case $IDX in
|
||||
1) S1BAND="$T2 @$T4 MHz";;
|
||||
2) S2BAND="$T2 @$T4 MHz";;
|
||||
3) S3BAND="$T2 @$T4 MHz";;
|
||||
4) S4BAND="$T2 @$T4 MHz";;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,'| sed 's,LTE B,LTE | B,')
|
||||
|
||||
if [ "${LAC_DEC}" = "0" ]; then
|
||||
LAC_DEC="-"
|
||||
LAC_HEX="-"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+GMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# Slot SIM
|
||||
O=$(sms_tool -d $DEVICE at "AT+QUIMSLOT?")
|
||||
T=$(echo "$O" | awk -F [:] '/^\+QUIMSLOT/{print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
SSIM="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+GSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=0900' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,116 +0,0 @@
|
||||
# Quectel EC200T
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qtemp")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QTEMP/ {print $2}' | sort -r | head -n1 | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
fi
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+qnwinfo;+qspn")
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $2"/"$4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
B=$(echo $T | sed 's/.*LTE BAND \(.*\)/\1/')
|
||||
MODE="LTE | $(band4g ${B})"
|
||||
MAINCUT="$(band4g ${B})"
|
||||
fi
|
||||
fi
|
||||
|
||||
E=$(sms_tool -d $DEVICE at "at+qeng=\"servingcell\"")
|
||||
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $4}' | xargs)
|
||||
if [ "x$T" = "xLTE" ] || [ "x$T" = "x4G" ]; then
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $14}')
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $12}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
ULBW="UL: @$T1 MHz"
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $13}')
|
||||
case $T in
|
||||
0) T1="1.4";;
|
||||
1) T1="3";;
|
||||
2) T1="5";;
|
||||
3) T1="10";;
|
||||
4) T1="15";;
|
||||
5) T1="20";;
|
||||
*) T1="?";;
|
||||
esac
|
||||
DLBW="DL: @$T1 MHz"
|
||||
PBAND="$MAINCUT $DLBW $ULBW"
|
||||
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $9}')
|
||||
PCI=$T
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $10}')
|
||||
EARFCN=$T
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $17}')
|
||||
RSSI=$T
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $15}')
|
||||
RSRP=$T
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $16}')
|
||||
RSRQ=$T
|
||||
T=$(echo "$E" | awk -F[,:] '/^\+QENG:/ {print $18}')
|
||||
SINR=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+QSPN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
|
||||
COPS="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed 's/AT+GSN//g' | xargs)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed 's/AT+CIMI//g' | xargs)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+QCCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+QCCID/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+GMR"//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM"//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI"//)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2c7c ProdID=6026' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,293 +0,0 @@
|
||||
# Fibocom L850-GL
|
||||
|
||||
convertchannel() {
|
||||
if [ $1 -ge 0 ] && [ $1 -le 599 ]; then
|
||||
newband=1
|
||||
elif [ $1 -ge 600 ] && [ $1 -le 1199 ]; then
|
||||
newband=2
|
||||
elif [ $1 -ge 1200 ] && [ $1 -le 1949 ]; then
|
||||
newband=3
|
||||
elif [ $1 -ge 1950] && [ $1 -le 2399 ]; then
|
||||
newband=4
|
||||
elif [ $1 -ge 2400] && [ $1 -le 2469 ]; then
|
||||
newband=5
|
||||
elif [ $1 -ge 2750 ] && [ $1 -le 3449 ]; then
|
||||
newband=7
|
||||
elif [ $1 -ge 3450 ] && [ $1 -le 3799 ]; then
|
||||
newband=8
|
||||
elif [ $1 -ge 6150 ] && [ $1 -le 6449 ]; then
|
||||
newband=20
|
||||
elif [ $1 -ge 9210 ] && [ $1 -le 9659 ]; then
|
||||
newband=28
|
||||
elif [ $1 -ge 9870 ] && [ $1 -le 9919 ]; then
|
||||
newband=31
|
||||
elif [ $1 -ge 37750 ] && [ $1 -le 38249 ]; then
|
||||
newband=38
|
||||
elif [ $1 -ge 38650 ] && [ $1 -le 39649 ]; then
|
||||
newband=40
|
||||
else
|
||||
newband=0
|
||||
fi
|
||||
}
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+xlec?;+rsrp?;+rsrq?;+xmci=1")
|
||||
|
||||
T=$(echo "$O" | awk -F [:_] '/\+XLEC:/{gsub("\r",""); print $4}' | awk -F [:,] '{print $1}')
|
||||
if [ -n "$T" ]; then
|
||||
case $T in
|
||||
*"1"*) MODE="${MODE} "$(band4g 1 "");;
|
||||
*"2"*) MODE="${MODE} "$(band4g 2 "");;
|
||||
*"3"*) MODE="${MODE} "$(band4g 3 "");;
|
||||
*"4"*) MODE="${MODE} "$(band4g 4 "");;
|
||||
*"5"*) MODE="${MODE} "$(band4g 5 "");;
|
||||
*"7"*) MODE="${MODE} "$(band4g 7 "");;
|
||||
*"8"*) MODE="${MODE} "$(band4g 8 "");;
|
||||
*"12"*) MODE="${MODE} "$(band4g 12 "");;
|
||||
*"13"*) MODE="${MODE} "$(band4g 13 "");;
|
||||
*"14"*) MODE="${MODE} "$(band4g 14 "");;
|
||||
*"17"*) MODE="${MODE} "$(band4g 17 "");;
|
||||
*"18"*) MODE="${MODE} "$(band4g 18 "");;
|
||||
*"19"*) MODE="${MODE} "$(band4g 19 "");;
|
||||
*"20"*) MODE="${MODE} "$(band4g 20 "");;
|
||||
*"21"*) MODE="${MODE} "$(band4g 21 "");;
|
||||
*"25"*) MODE="${MODE} "$(band4g 25 "");;
|
||||
*"26"*) MODE="${MODE} "$(band4g 26 "");;
|
||||
*"28"*) MODE="${MODE} "$(band4g 28 "");;
|
||||
*"29"*) MODE="${MODE} "$(band4g 29 "");;
|
||||
*"30"*) MODE="${MODE} "$(band4g 30 "");;
|
||||
*"32"*) MODE="${MODE} "$(band4g 32 "");;
|
||||
*"34"*) MODE="${MODE} "$(band4g 34 "");;
|
||||
*"38"*) MODE="${MODE} "$(band4g 38 "");;
|
||||
*"39"*) MODE="${MODE} "$(band4g 39 "");;
|
||||
*"40"*) MODE="${MODE} "$(band4g 40 "");;
|
||||
*"41"*) MODE="${MODE} "$(band4g 41 "");;
|
||||
*"42"*) MODE="${MODE} "$(band4g 42 "");;
|
||||
*"43"*) MODE="${MODE} "$(band4g 43 "");;
|
||||
*"46"*) MODE="${MODE} "$(band4g 46 "");;
|
||||
*"48"*) MODE="${MODE} "$(band4g 48 "");;
|
||||
*"66"*) MODE="${MODE} "$(band4g 66 "");;
|
||||
*"71"*) MODE="${MODE} "$(band4g 71 "");;
|
||||
*) MODE="${MODE} ${T}";;
|
||||
esac
|
||||
fi
|
||||
|
||||
RSRP=$(echo "$O" | awk -F [:,] '/\+RSRP:/{printf "%.0f\n", $4}')
|
||||
|
||||
BWDL=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r","",$4); print $4}')
|
||||
case $BWDL in
|
||||
1) NP=15 ;;
|
||||
2) NP=25 ;;
|
||||
3) NP=50 ;;
|
||||
4) NP=75 ;;
|
||||
5) NP=100 ;;
|
||||
*) NP=0 ;;
|
||||
esac
|
||||
|
||||
CSQ=$(echo $RSRP $NP | awk '{printf "%.0f\n", (($1+10*log(12*$2)/log(10))+113)/2}')
|
||||
[ "x$CSQ" = "x" ] && CSQ=-1
|
||||
if [ $CSQ -ge 0 -a $CSQ -le 31 ]; then
|
||||
CSQ_PER=$(($CSQ * 100/31))
|
||||
RSSI=$((2 * CSQ - 113))
|
||||
# Fibocom RSSI up -51dBm. Thanks to TSA74 at 4pda.to
|
||||
elif [ $CSQ -ge 32 -a $CSQ -le 50 ]; then
|
||||
RSSI=$((2 * CSQ - 113))
|
||||
CSQ_PER="100"
|
||||
CSQ="31"
|
||||
else
|
||||
CSQ_PER="0"
|
||||
fi
|
||||
|
||||
RSRQ=$(echo "$O" | awk -F [:,] '/\+RSRQ:/{printf "%.0f\n", $4}')
|
||||
SINR=$(echo "$O" | awk -F [:,] '/\+XMCI: 4/{gsub(/"/,""); printf "%.0f\n", $13/4+5}')
|
||||
|
||||
LTE_Cx=$(echo "$O" | awk -F [:,] '/\+XLEC:/{print $3}')
|
||||
LTE_CA=$(($LTE_Cx -1))
|
||||
|
||||
if [ -n "LTE_CA" ]; then
|
||||
|
||||
case $LTE_CA in
|
||||
1*)
|
||||
CAx=$(echo "$O" | awk -F [:,] '/\+RSRP:/{print $6}')
|
||||
BWCx=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r",""); print $4" "$5}')
|
||||
;;
|
||||
2*)
|
||||
CAx=$(echo "$O" | awk -F [:,] '/\+RSRP:/{print $6" "$9}')
|
||||
BWCx=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r",""); print $4" "$5" "$6}');;
|
||||
3*)
|
||||
CAx=$(echo "$O" | awk -F [:,] '/\+RSRP:/{print $6" "$9" "$12}')
|
||||
BWCx=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r",""); print $4" "$5" "$6" "$7}')
|
||||
;;
|
||||
4*)
|
||||
CAx=$(echo "$O" | awk -F [:,] '/\+RSRP:/{print $6" "$9" "$12" "$15}')
|
||||
BWCx=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r",""); print $4" "$5" "$6" "$7" "$8}')
|
||||
;;
|
||||
esac
|
||||
|
||||
CA_BAND=""
|
||||
for sca in $CAx; do
|
||||
convertchannel $sca 2> /dev/null
|
||||
BAND="$(band4g $newband "")"
|
||||
CA_BAND=$CA_BAND' / '$BAND
|
||||
CABANDx=$CABANDx','$newband
|
||||
done
|
||||
MODE="LTE-A | $(band4g $T "")${CA_BAND}"
|
||||
|
||||
S1=$(echo "$CABANDx" | awk -F [,] '/\,/{print $2" "}' | sed 's/ //g')
|
||||
S2=$(echo "$CABANDx" | awk -F [,] '/\,/{print $3" "}' | sed 's/ //g')
|
||||
S3=$(echo "$CABANDx" | awk -F [,] '/\,/{print $4" "}' | sed 's/ //g')
|
||||
S4=$(echo "$CABANDx" | awk -F [,] '/\,/{print $5" "}' | sed 's/ //g')
|
||||
|
||||
BWCA=0
|
||||
BWCA_INFO=""
|
||||
for T3 in $BWCx; do
|
||||
case $T3 in
|
||||
1*) T5="3";;
|
||||
2*) T5="5";;
|
||||
3*) T5="10";;
|
||||
4*) T5="15";;
|
||||
5*) T5="20";;
|
||||
*) T5="0";;
|
||||
esac
|
||||
BWCA=$(($BWCA+$T5))
|
||||
[[ -z ${BWCA_INFO} ]] && BWCA_INFO="${T5}" || BWCA_INFO="${BWCA_INFO},${T5}"
|
||||
done
|
||||
|
||||
BW1=$(echo "$BWCA_INFO" | awk -F [,] '/\,/{print $2" "}')
|
||||
BW2=$(echo "$BWCA_INFO" | awk -F [,] '/\,/{print $3" "}')
|
||||
BW3=$(echo "$BWCA_INFO" | awk -F [,] '/\,/{print $4" "}')
|
||||
BW4=$(echo "$BWCA_INFO" | awk -F [,] '/\,/{print $5" "}')
|
||||
|
||||
T2=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r",""); print $4" "}')
|
||||
case $T2 in
|
||||
1*) T4="3";;
|
||||
2*) T4="5";;
|
||||
3*) T4="10";;
|
||||
4*) T4="15";;
|
||||
5*) T4="20";;
|
||||
*) T4="0";;
|
||||
esac
|
||||
|
||||
if [ -n "$T4" ]; then
|
||||
PBAND="$(band4g $T "") @$T4 MHz"
|
||||
PCI=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $2}')
|
||||
EARFCN=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $3}')
|
||||
fi
|
||||
|
||||
if [ -n "$S1" ]; then
|
||||
S1BAND="$(band4g $S1 "") @$BW1 MHz"
|
||||
S1PCI=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $5}')
|
||||
S1EARFCN=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $6}')
|
||||
fi
|
||||
if [ -n "$S2" ]; then
|
||||
S2BAND="$(band4g $S2 "") @$BW2 MHz"
|
||||
S2PCI=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $8}')
|
||||
S2EARFCN=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $9}')
|
||||
fi
|
||||
if [ -n "$S3" ]; then
|
||||
S3BAND="$(band4g $S3 "") @$BW3 MHz"
|
||||
S3PCI=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $11}')
|
||||
S3EARFCN=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $12}')
|
||||
fi
|
||||
if [ -n "$S4" ]; then
|
||||
S4BAND="$(band4g $S4 "") @$BW4 MHz"
|
||||
S4PCI=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $14}')
|
||||
S4EARFCN=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $15}')
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
if [[ "$MODE" != *"LTE-A"* ]]; then
|
||||
if [ -n "$T" ]; then
|
||||
MODE="LTE | $(band4g $T "")"
|
||||
|
||||
T2=$(echo "$O" | awk -F [:,] '/\+XLEC:/{gsub("\r",""); print $4" "}')
|
||||
case $T2 in
|
||||
1*) T4="3";;
|
||||
2*) T4="5";;
|
||||
3*) T4="10";;
|
||||
4*) T4="15";;
|
||||
5*) T4="20";;
|
||||
*) T4="0";;
|
||||
esac
|
||||
|
||||
if [ -n "$T4" ]; then
|
||||
PBAND="$(band4g $T "") @$T4 MHz"
|
||||
PCI=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $2}')
|
||||
EARFCN=$(echo "$O" | awk -F[,:] '/^\+RSRP:/ {print $3}')
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,')
|
||||
|
||||
OT=$(sms_tool -d $DEVICE at "AT+XCCINFO=1;+XCCINFO?")
|
||||
if [ -n "$OT" ]; then
|
||||
T=$(echo "$OT" | awk -F[,:] '/^\+XCCINFO:/{print $11}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
fi
|
||||
if [ -z "$T_HEX" ]; then
|
||||
[ -n "$T_DEC" ] && T_HEX=$(printf %0X $T_DEC)
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$REG" == "6" ]; then
|
||||
REG="1"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GTPKGVER?" | xargs)
|
||||
FW=$(echo "$FWA" | cut -d ":" -f2 | xargs)
|
||||
|
||||
MDL=$(sms_tool -d $DEVICE at "AT+GMM?" | xargs)
|
||||
MODELM=$(echo $MDL | awk -F [:] '/^\+GMM: /{print $2}'| awk -F 'LTE Module' '{print $1}' | xargs)
|
||||
MODELF=$(sms_tool -d $DEVICE at "AT+CGMI" | xargs)
|
||||
|
||||
MODELMCUT=$(echo $MODELM)
|
||||
MODELFCUT=$(echo $MODELF | awk -F [:] '/^\+CGMI:/{print $2}' | xargs)
|
||||
MODEL="$MODELFCUT "$MODELMCUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+CCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCAX=$(echo $PV | awk -F"Vendor=2cb7 ProdID=0007" '{print $2}')
|
||||
PVCA=$(echo "$PVCAX" | cut -c-2453)
|
||||
|
||||
if [ -n "$PVCA" ]; then
|
||||
case $PVCA in
|
||||
*"Driver=qmi_wwan"*)
|
||||
PROTO="qmi"
|
||||
;;
|
||||
*"Driver=cdc_ncm"*)
|
||||
PROTO="ncm"
|
||||
;;
|
||||
*"Driver=cdc_mbim"*)
|
||||
PROTO="mbim"
|
||||
;;
|
||||
*"Driver=cdc_ether"*)
|
||||
PROTO="ecm"
|
||||
;;
|
||||
esac
|
||||
fi
|
@ -1,205 +0,0 @@
|
||||
# Fibocom FM150-AE
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+gtccinfo?;+gtcainfo?")
|
||||
|
||||
if [ "x$MODE" = "xLTE" ]; then
|
||||
if [[ "$O" == *"SCC"* ]]; then
|
||||
MODE="LTE_A"
|
||||
fi
|
||||
T1=$(echo "$O" | grep -A 3 'LTE service cell' | grep '1,4,'${COPS_MCC}','${COPS_MNC}',')
|
||||
if [ -n "$T1" ]; then
|
||||
T=$(echo "$T1" | awk -F, '{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
if [ $T -ge -100 ] || [ $T -le 100 ]; then
|
||||
T=$(echo "$T" | awk -F, '{printf "%0.1f", $T/2}')
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $13}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP=$((T - 141))
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
T2=$(echo "$T" | awk '{printf "%0.1f", ($1-34)/2-3 }')
|
||||
RSRQ=$T2
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T2=$(echo "$T" | awk '{printf "%0.1f", $1/4+5 }')
|
||||
SINR=$T2
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
[ -n "$ADDON" ] && ADDON="$ADDON,"
|
||||
T2=$(echo "$T" | awk '{printf "%0.1f", $1-110 }')
|
||||
RSSI=$T2
|
||||
fi
|
||||
|
||||
T=$(echo "$T1" | awk -F, '{print $9}')
|
||||
if [ -n "$T" ]; then
|
||||
T=$((T - 100))
|
||||
|
||||
case $T in
|
||||
*"1") MODE="$MODE | "$(band4g 1 "");;
|
||||
*"2") MODE="$MODE | "$(band4g 2 "");;
|
||||
*"3") MODE="$MODE | "$(band4g 3 "");;
|
||||
*"5") MODE="$MODE | "$(band4g 5 "");;
|
||||
*"7") MODE="$MODE | "$(band4g 7 "");;
|
||||
*"8") MODE="$MODE | "$(band4g 8 "");;
|
||||
*"18") MODE="$MODE | "$(band4g 18 "");;
|
||||
*"19") MODE="$MODE | "$(band4g 19 "");;
|
||||
*"20") MODE="$MODE | "$(band4g 20 "");;
|
||||
*"28") MODE="$MODE | "$(band4g 28 "");;
|
||||
*"32") MODE="$MODE | "$(band4g 32 "");;
|
||||
*"34") MODE="$MODE | "$(band4g 34 "");;
|
||||
*"38") MODE="$MODE | "$(band4g 38 "");;
|
||||
*"39") MODE="$MODE | "$(band4g 39 "");;
|
||||
*"40") MODE="$MODE | "$(band4g 40 "");;
|
||||
*"41") MODE="$MODE | "$(band4g 41 "");;
|
||||
*"42") MODE="$MODE | "$(band4g 42 "");;
|
||||
*"43") MODE="$MODE | "$(band4g 43 "");;
|
||||
*) MODE="$MODE / B${T}";;
|
||||
esac
|
||||
PBAND="$(band4g $T "")"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[:,] '/^PCC/{print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[:,] '/^PCC/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^SCC[0-9]: ")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC'$IDX': 1,0/{print $4}')
|
||||
T=$((T - 100))
|
||||
|
||||
case $T in
|
||||
"1") T2=$(band4g 1 "");;
|
||||
"2") T2=$(band4g 2 "");;
|
||||
"3") T2=$(band4g 3 "");;
|
||||
"5") T2=$(band4g 5 "");;
|
||||
"7") T2=$(band4g 7 "");;
|
||||
"8") T2=$(band4g 8 "");;
|
||||
"18") T2=$(band4g 18 "");;
|
||||
"19") T2=$(band4g 19 "");;
|
||||
"20") T2=$(band4g 20 "");;
|
||||
"28") T2=$(band4g 28 "");;
|
||||
"32") T2=$(band4g 32 "");;
|
||||
"34") T2=$(band4g 34 "");;
|
||||
"38") T2=$(band4g 38 "");;
|
||||
"39") T2=$(band4g 39 "");;
|
||||
"40") T2=$(band4g 40 "");;
|
||||
"41") T2=$(band4g 41 "");;
|
||||
"42") T2=$(band4g 42 "");;
|
||||
"43") T2=$(band4g 43 "");;
|
||||
*) T2="B${T}";;
|
||||
esac
|
||||
MODE="$MODE / $T2"
|
||||
|
||||
if [ -n "$T" ]; then
|
||||
|
||||
case $IDX in
|
||||
"1") S1BAND="$T2";;
|
||||
"2") S2BAND="$T2";;
|
||||
"3") S3BAND="$T2";;
|
||||
"4") S4BAND="$T2";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
case $IDX in
|
||||
"1") S1PCI="$T";;
|
||||
"2") S2PCI="$T";;
|
||||
"3") S3PCI="$T";;
|
||||
"4") S4PCI="$T";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC'$IDX': 1,0/{print $6}')
|
||||
if [ -n "$T" ]; then
|
||||
|
||||
case $IDX in
|
||||
"1") S1EARFCN="$T";;
|
||||
"2") S2EARFCN="$T";;
|
||||
"3") S3EARFCN="$T";;
|
||||
"4") S4EARFCN="$T";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A /LTE-A /g" | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
|
||||
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{print $2}' | xargs)
|
||||
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
|
||||
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{print $2}' | xargs)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"Wireless Inc."//)
|
||||
MODEL="$MODELBCUT $MODELA"
|
||||
|
||||
OF=$(sms_tool -d $DEVICE at "AT+GMR?")
|
||||
FW=$(echo "$OF" | awk -F[,:] '/\+GMR:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OAA=$(sms_tool -d $DEVICE at "AT+CGSN?")
|
||||
NR_IMEI=$(echo "$OAA" | awk -F[,:] '/\+CGSN:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OBB=$(sms_tool -d $DEVICE at "AT+CIMI?")
|
||||
NR_IMSI=$(echo "$OBB" | awk -F [,:] '/\+CIMI:/ {print $2}' | xargs)
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OCC=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_ICCID=$(echo "$OCC" | awk -F [,:] '/\+ICCID:/ {print $2}' | xargs)
|
||||
|
||||
# Temp
|
||||
OT=$(sms_tool -d $DEVICE at "AT+MTSM=1")
|
||||
TX=$(echo "$OT" | awk '/\+MTSM:/{print $2}')
|
||||
if [ -n "$TX" ]; then
|
||||
TEMP="$TX °C"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2cb7 ProdID=0104' '{print $2}' | cut -c-1290)
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,176 +0,0 @@
|
||||
# Fibocom modems with ProdID=0105
|
||||
# NL952-EAU in ECM mode (LTE CAT18)
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+GTCCINFO?;+GTCAINFO?")
|
||||
|
||||
if [ "x$MODE" = "xLTE" ]; then
|
||||
if [[ "$O" == *"SCC"* ]]; then
|
||||
MODE="LTE_A"
|
||||
fi
|
||||
T1=$(echo "$O" | grep -A 3 'LTE service cell' | grep '1,4,'${COPS_MCC}','${COPS_MNC}',')
|
||||
if [ -n "$T1" ]; then
|
||||
T=$(echo "$T1" | awk -F, '{print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
LAC_DEC=""
|
||||
LAC_HEX=""
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $7}')
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $8}')
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $9}')
|
||||
if [ -n "$T" ]; then
|
||||
T=$((T - 100))
|
||||
MODE="$MODE | $(band4g $T)"
|
||||
PBAND="$(band4g $T "")"
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
T2=$(echo "$T" | awk '{printf "%0.1f", $1/2 }')
|
||||
SINR=$T2
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $13}')
|
||||
if [ -n "$T" ]; then
|
||||
RSRP=$((T - 141))
|
||||
fi
|
||||
T=$(echo "$T1" | awk -F, '{print $14}')
|
||||
if [ -n "$T" ]; then
|
||||
T2=$(echo "$T" | awk '{printf "%0.1f", ($1-34)/2-3 }')
|
||||
RSRQ=$T2
|
||||
fi
|
||||
|
||||
if [ -n "$CSQ" ]; then
|
||||
RSSI=$((2 * $CSQ -113))
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[:,] '/^PCC/{print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
PCI=$T
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[:,] '/^PCC/{print $4}')
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN=$T
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep -E "^SCC[0-9]: 2")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC'$IDX': 2,./{print $4}')
|
||||
T=$((T - 100))
|
||||
|
||||
T2=$(band4g $T)
|
||||
MODE="$MODE / $T2"
|
||||
|
||||
if [ -n "$T" ]; then
|
||||
|
||||
case $IDX in
|
||||
"1") S1BAND="$T2";;
|
||||
"2") S2BAND="$T2";;
|
||||
"3") S3BAND="$T2";;
|
||||
"4") S4BAND="$T2";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
case $IDX in
|
||||
"1") S1PCI="$T";;
|
||||
"2") S2PCI="$T";;
|
||||
"3") S3PCI="$T";;
|
||||
"4") S4PCI="$T";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
T=$(echo "$LINE" | awk -F[:,] '/^SCC'$IDX': 2,./{print $6}')
|
||||
if [ -n "$T" ]; then
|
||||
|
||||
case $IDX in
|
||||
"1") S1EARFCN="$T";;
|
||||
"2") S2EARFCN="$T";;
|
||||
"3") S3EARFCN="$T";;
|
||||
"4") S4EARFCN="$T";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
fi
|
||||
IDX=$((IDX + 1))
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A /LTE-A /g" | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
|
||||
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{print $2}' | xargs)
|
||||
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
|
||||
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{print $2}' | xargs)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"Wireless Inc."//)
|
||||
MODEL="$MODELBCUT $MODELA"
|
||||
|
||||
OF=$(sms_tool -d $DEVICE at "AT+GMR?")
|
||||
FW=$(echo "$OF" | awk -F[,:] '/\+GMR:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
OAA=$(sms_tool -d $DEVICE at "AT+CGSN?")
|
||||
NR_IMEI=$(echo "$OAA" | awk -F[,:] '/\+CGSN:/ {print $2}' | xargs)
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
OBB=$(sms_tool -d $DEVICE at "AT+CIMI?")
|
||||
NR_IMSI=$(echo "$OBB" | awk -F [,:] '/\+CIMI:/ {print $2}' | xargs)
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
OCC=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_ICCID=$(echo "$OCC" | awk -F [,:] '/\+ICCID:/ {print $2}' | xargs)
|
||||
|
||||
# Temp
|
||||
OT=$(sms_tool -d $DEVICE at "AT+MTSM=1")
|
||||
TM=$(echo "$OT" | awk '/\+MTSM:/{print $2}')
|
||||
if [ -n "$TM" ]; then
|
||||
TEMP="$TM °C"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
|
||||
TTY=$(basename $DEVICE)
|
||||
devpath=$(readlink -f /sys/class/tty/$TTY/device)
|
||||
BASE=$(readlink -f ${devpath%/*/*})
|
||||
|
||||
NETIF=$(for a in /sys/class/net/*; do readlink -f $a; done | grep "$BASE")
|
||||
NETDRV=$(basename $(readlink -f $NETIF/../../driver))
|
||||
|
||||
case $NETDRV in
|
||||
"qmi_wwan")
|
||||
PROTO="QMI";;
|
||||
"cdc_mbim")
|
||||
PROTO="MBIM";;
|
||||
"cdc_ether")
|
||||
PROTO="ECM";;
|
||||
esac
|
||||
|
||||
|
||||
#PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
#PVCUT=$(echo $PV | awk -F 'Vendor=2cb7 ProdID=0105' '{print $2}' | cut -c-1290)
|
||||
#if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
#then
|
||||
# PROTO="qmi"
|
||||
#elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
#then
|
||||
# PROTO="mbim"
|
||||
#elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
#then
|
||||
# PROTO="ecm"
|
||||
#fi
|
@ -1,88 +0,0 @@
|
||||
# Mikrotik R11e-LTE6
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+cesq;+zcainfo?;+zpas?;+zcellinfo?")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ "$T" != "99" ] && RSSI="$((T - 111))"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $4}' | xargs)
|
||||
#if [ -n "$T" ]; then
|
||||
# [ "$T" != "255" ] && addon 35 "RSCP" "$((T - 121)) dBm"
|
||||
#fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $5}' | xargs)
|
||||
#if [ -n "$T" ]; then
|
||||
# if [ "$T" != "255" ]; then
|
||||
# T=$(echo "$T" | awk '{printf "%.1f", -1 * (24.5 - $1 * 0.5)}')
|
||||
# addon 36 "ECIO" "$T dB"
|
||||
# fi
|
||||
#fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ "$T" != "255" ] && RSRP="$((T - 141))"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $6}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "$T" != "255" ]; then
|
||||
T=$(echo "$T" | awk '{printf "%.1f", -1 * (20 - $1 * 0.5)}')
|
||||
RSRQ="$T"
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZPAS/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && MODE=$T
|
||||
|
||||
case "$MODE_NUM" in
|
||||
7*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
MODE="$MODE $(band4g ${T/LTE B/})"
|
||||
PBAND="$(band4g ${T/LTE B/})"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $3}' | xargs)
|
||||
PCI="$T"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $5}' | xargs)
|
||||
EARFCN="$T"
|
||||
;;
|
||||
9*)
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
MODE="$MODE $(band4g ${T/LTE B/})"
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
PBAND="$(band4g ${T/LTE B/})"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO: /{print $6}')
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
DBW="$T MHz"
|
||||
PBAND="$PBAND @$DBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO: /{print $2}' | xargs)
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
PCI="$T"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCAINFO: /{print $5}')
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
EARFCN="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO: /{print $13}')
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
MODE="$MODE / $(band4g ${T})"
|
||||
S1BAND="$(band4g ${T})"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO: /{print $15}')
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
S1DBW="$T MHz"
|
||||
S1BAND="$S1BAND @$S1DBW"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO: /{print $11}')
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
S1PCI="$T"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:\;] '/^\+ZCAINFO: /{print $14}')
|
||||
if [ -n "$T" ] && [ "$T" != "0" ]; then
|
||||
S1EARFCN="$T"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
@ -1,101 +0,0 @@
|
||||
# Mikrotik R11e-LTE6
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+cesq;+zcainfo?;+zpas?;+zcellinfo?")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ "$T" != "99" ] && RSSI="$((T - 111))"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $4}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ "$T" != "255" ] && RSCP="$((T - 121))"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $5}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "$T" != "255" ]; then
|
||||
T=$(echo "$T" | awk '{printf "%.1f", -1 * (24.5 - $1 * 0.5)}')
|
||||
ECIO="$T dB"
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
[ "$T" != "255" ] && RSRP="$((T - 141))"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $6}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
if [ "$T" != "255" ]; then
|
||||
T=$(echo "$T" | awk '{printf "%.1f", -1 * (20 - $1 * 0.5)}')
|
||||
RSRQ="$T"
|
||||
SINR=""
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZPAS/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
MODE=$T
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
|
||||
if [ "x$MODE_NUM" = "x7" ] || [ "x$MODE_NUM" = "x9" ]; then
|
||||
MODE="$MODE $(band4g ${T/LTE B/})"
|
||||
PBAND="$(band4g ${T/LTE B/})"
|
||||
else
|
||||
MODE="$MODE $T"
|
||||
PBAND="$(band4g ${T})"
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$MODE_NUM" in
|
||||
9*)
|
||||
T=$(echo "$O" | awk -F[,] '/^\+ZCAINFO: /{print $11}')
|
||||
if [ -n "$T" ]; then
|
||||
if [ "$T" != "0" ]; then
|
||||
MODE="$MODE / $(band4g ${T})"
|
||||
S1BAND="$(band4g ${T})"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed "s/LTE_A/LTE-A | /g")
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR"//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | xargs)
|
||||
MODELACUT=$(echo $MODELA | awk -F [:] '/^\+CGMM:/{print $2}' | xargs)
|
||||
MODELBCUT=$(echo $MODELB | awk -F [:] '/^\+CGMI:/{print $2}' | xargs)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# LAC & TAC
|
||||
T_HEX=$LAC_HEX
|
||||
T_DEC=$LAC_DEC
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN"//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI"//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT*ICCID?")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\*ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=2cd2 ProdID=0004' '{print $2}' | cut -c-1220)
|
||||
if echo "$PVCUT" | grep -q "Driver=rndis_host"
|
||||
then
|
||||
PROTO="ncm"
|
||||
fi
|
@ -1,103 +0,0 @@
|
||||
# DW5809e Dell Wireless 5809e Gobi 4G LTE Mobile Broadband Card (EM7305)
|
||||
# DW5811e Snapdragon X7 LTE (EM7455B)
|
||||
# Sierra Wireless EM7455
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at!gstatus?")
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX="$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI="$(echo "${T// //}" | sed 's,/.*,,')"
|
||||
T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && RSRP="$(echo "${T// //}" | sed 's,/.*,,')"
|
||||
T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
|
||||
[ -n "$T" ] && RSRQ="$T"
|
||||
T=$(echo "$O" | awk '/^SINR/ {print $3}')
|
||||
[ -n "$T" ] && SINR="$T"
|
||||
|
||||
T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
|
||||
PBAND="$(band4g ${T/B/}) @${T1} MHz"
|
||||
MODE="$MODE $(band4g ${T/B/})"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^LTE CA state:.*ACTIVE/ {print $3}')
|
||||
if [ -n "$T" ]; then
|
||||
T1=$(echo "$O" | awk '/^LTE Scell bw:/ {print $3}')
|
||||
if [ -n "$T1" ]; then
|
||||
S1BAND="$(band4g ${T/B/}) @${T1#bw:} MHz"
|
||||
else
|
||||
S1BAND="$(band4g ${T/B/})"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g ${T/B/})"
|
||||
|
||||
T=$(echo "$O" | awk '/.*LTE Scell chan:/ {print $7}')
|
||||
[ -n "$T" ] && EARFCN="${T#chan:}"
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC.*RSSI/ {print $4}' | xargs)
|
||||
[ -n "$T" ] && RSSI=$(echo "${T// //}" | sed 's,/.*,,')
|
||||
T=$(echo "$O" | awk '/^SCC.*RSRP/ {print $7}' | xargs)
|
||||
[ -n "$T" ] && RSRP=$(echo "${T// //}" | sed 's,/.*,,')
|
||||
fi
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
|
||||
FW=$(echo $FWA | sed s/"AT+CGMR "//)
|
||||
|
||||
MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
|
||||
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)
|
||||
|
||||
MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
|
||||
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | cut -f1 -d",")
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID")
|
||||
NR_D=$(echo "$O" | awk -F[,:] '/^ICCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=413c ProdID=81b6' '{print $2}' | cut -c-1290)
|
||||
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
@ -1,221 +0,0 @@
|
||||
# DW5821e Snapdragon X20 LTE
|
||||
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at+temp")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/xo_therm_buf:/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
TEMP="$T °C"
|
||||
else
|
||||
O=$(sms_tool -d $DEVICE at "at^temp?")
|
||||
T=$(echo "$O" | awk '{gsub("C","");print $2}' | sort -r | head -n 1)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
fi
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "at^ca_info?;^debug?")
|
||||
|
||||
O1=$(echo "$O" | sed -n '/^RAT:/,/^SCell1:/p')
|
||||
[ -z "$O1" ] && O1=$(echo "$O" | sed -n '/^EARFCN/,/^SCell1:/p')
|
||||
|
||||
T=$(echo "$O1" | awk '/TAC:/ {print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
T_HEX=$T
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^RSSI:/ {print $2}' | sed 's/dBm//')
|
||||
[ -n "$T" ] && RSSI=$T
|
||||
T=$(echo "$O" | awk '/^RSRP:/ {print $2}' | sed 's/dBm//')
|
||||
[ -n "$T" ] && RSRP=$T
|
||||
T=$(echo "$O" | awk '/^RSRQ:/ {print $2}' | sed 's/dB//')
|
||||
[ -n "$T" ] && RSRQ=$T
|
||||
T=$(echo "$O" | awk '/^RS-SINR/ {print $2}' | sed 's/dB//')
|
||||
[ -n "$T" ] && SINR=$T
|
||||
T=$(echo "$O" | awk '/^RS-SNR/ {print $2}' | sed 's/dB//')
|
||||
[ -n "$T" ] && SINR=$T
|
||||
# SNR > SINR
|
||||
|
||||
T=$(echo "$O1" | awk '/^BAND:/ {print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
B=$(band4g $T)
|
||||
PBAND="$B"
|
||||
MODE="$MODE $B"
|
||||
fi
|
||||
T=$(echo "$O1" | awk '/^BW:/ {print $2}')
|
||||
[ -n "$T" ] && PBAND="$PBAND @$T MHz"
|
||||
T=$(echo "$O1" | awk -F[\(\)] '/^eNB ID\(PCI\)/ {print $4}')
|
||||
[ -n "$T" ] && PCI="$T"
|
||||
T=$(echo "$O1" | awk '/^EARFCN/ {print $2}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
EARFCN="$(echo $T | cut -f1 -d/)"
|
||||
# addon 34 "EARFCN DL" "$(echo $T | cut -f1 -d/)"
|
||||
# addon 34 "EARFCN UL" "$(echo $T | cut -f2 -d/)"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC1 info:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T=${T/,/}
|
||||
T=${T/LTE_B/}
|
||||
S1BAND="$(band4g $T)"
|
||||
MODE="${MODE/LTE/LTE_A} / $(band4g $T)"
|
||||
T=$(echo "$O" | awk '/^SCC1 info:/ {print $8}')
|
||||
[ -n "$T" ] && S1BAND="$S1BAND @$T MHz"
|
||||
|
||||
O1=$(echo "$O" | sed -n '/^SCell1:/,/^SCell2:/p')
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $2}')
|
||||
[ -n "$T" ] && S1EARFCN="$T"
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $4}' | xargs)
|
||||
[ -n "$T" ] && S1PCI="$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $2}' | sed 's/dBm//')
|
||||
# [ -n "$T" ] && addon 56 "(S1) RSRP" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $4}' | xargs | sed 's/dB//')
|
||||
# [ -n "$T" ] && addon 57 "(S1) RSRQ" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $2}' | sed 's/dBm//')
|
||||
# [ -n "$T" ] && addon 55 "(S1) RSSI" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $4}' | xargs | sed 's/dB//')
|
||||
# [ -n "$T" ] && addon 58 "(S1) SNR" "$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC2 info:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T=${T/,/}
|
||||
T=${T/LTE_B/}
|
||||
S2BAND="$(band4g $T)"
|
||||
MODE="${MODE} / $(band4g $T)"
|
||||
T=$(echo "$O" | awk '/^SCC2 info:/ {print $8}')
|
||||
[ -n "$T" ] && S2BAND="$S2BAND @$T MHz"
|
||||
|
||||
O1=$(echo "$O" | sed -n '/^SCell2:/,/^SCell3:/p')
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $2}')
|
||||
[ -n "$T" ] && S2EARFCN="$T"
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $4}' | xargs)
|
||||
[ -n "$T" ] && S2PCI="$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $2}' | sed 's/dBm/ dBm/')
|
||||
# [ -n "$T" ] && addon 66 "(S2) RSRP" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $4}' | xargs | sed 's/dB/ dB/')
|
||||
# [ -n "$T" ] && addon 67 "(S2) RSRQ" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $2}' | sed 's/dBm/ dBm/')
|
||||
# [ -n "$T" ] && addon 65 "(S2) RSSI" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $4}' | xargs | sed 's/dB/ dB/')
|
||||
# [ -n "$T" ] && addon 68 "(S2) SNR" "$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC3 info:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T=${T/,/}
|
||||
T=${T/LTE_B/}
|
||||
S3BAND="$(band4g $T)"
|
||||
MODE="${MODE} / $(band4g $T)"
|
||||
T=$(echo "$O" | awk '/^SCC3 info:/ {print $8}')
|
||||
[ -n "$T" ] && S3BAND="$S3BAND @$T MHz"
|
||||
|
||||
O1=$(echo "$O" | sed -n '/^SCell3:/,/^SCell4:/p')
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $2}')
|
||||
[ -n "$T" ] && S3EARFCN="$T"
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $4}' | xargs)
|
||||
[ -n "$T" ] && S3PCI="$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $2}' | sed 's/dBm/ dBm/')
|
||||
# [ -n "$T" ] && addon 66 "(S3) RSRP" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $4}' | xargs | sed 's/dB/ dB/')
|
||||
# [ -n "$T" ] && addon 67 "(S3) RSRQ" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $2}' | sed 's/dBm/ dBm/')
|
||||
# [ -n "$T" ] && addon 65 "(S3) RSSI" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $4}' | xargs | sed 's/dB/ dB/')
|
||||
# [ -n "$T" ] && addon 68 "(S3) SNR" "$T"
|
||||
fi
|
||||
|
||||
T=$(echo "$O" | awk '/^SCC4 info:/ {print $5}')
|
||||
if [ -n "$T" ]; then
|
||||
T=${T/,/}
|
||||
T=${T/LTE_B/}
|
||||
S4BAND="$(band4g $T)"
|
||||
MODE="${MODE} / $(band4g $T)"
|
||||
T=$(echo "$O" | awk '/^SCC4 info:/ {print $8}')
|
||||
[ -n "$T" ] && S4BAND="$S4BAND @$T MHz"
|
||||
|
||||
O1=$(echo "$O" | sed -n '/^SCell4:/,/^SCell5:/p')
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $2}')
|
||||
[ -n "$T" ] && S4EARFCN="$T"
|
||||
T=$(echo "$O1" | awk -F [:,\ ] '/^EARFCN/{print $4}' | xargs)
|
||||
[ -n "$T" ] && S4PCI="$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $2}' | sed 's/dBm/ dBm/')
|
||||
# [ -n "$T" ] && addon 66 "(S4) RSRP" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSRP/{print $4}' | xargs | sed 's/dB/ dB/')
|
||||
# [ -n "$T" ] && addon 67 "(S4) RSRQ" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $2}' | sed 's/dBm/ dBm/')
|
||||
# [ -n "$T" ] && addon 65 "(S4) RSSI" "$T"
|
||||
T=$(echo "$O1" | awk -F [:,] '/^RSSI/{print $4}' | xargs | sed 's/dB/ dB/')
|
||||
# [ -n "$T" ] && addon 68 "(S4) SNR" "$T"
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,' | sed 's,LTE_A,LTE-A | ,' | sed 's,LTE B,LTE | B,')
|
||||
|
||||
# Cell ID & LAC & TAC
|
||||
LAC_HEX=$(printf "%X" $LAC_DEC)
|
||||
if [ -n "$LAC_DEC" ]; then
|
||||
TAC_HEX=$LAC_HEX
|
||||
fi
|
||||
CID_HEX=$(printf "%X" $CID_DEC)
|
||||
|
||||
if [ -z "$TAC_DEC" ]
|
||||
then
|
||||
[ -n "$TAC_HEX" ] && TAC_DEC=$(echo $((0x$TAC_HEX)))
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices)
|
||||
PVCUT=$(echo $PV | awk -F 'Vendor=413c ProdID=81d7' '{print $2}' | cut -c-1520)
|
||||
|
||||
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
|
||||
then
|
||||
PROTO="qmi"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
|
||||
then
|
||||
PROTO="mbim"
|
||||
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
|
||||
then
|
||||
PROTO="ecm"
|
||||
fi
|
||||
|
||||
# Modem
|
||||
PVMODEL=$(echo $PV | awk -F 'Vendor=413c ProdID=81d7' '{print $2}' | cut -c-150)
|
||||
if [ -z "$MODEL" ]
|
||||
then
|
||||
MODELBCUT=$(echo $PVMODEL | awk -F 'Manufacturer=|S: Product=' '{print $2}' | sed s/"Inc. "// | xargs)
|
||||
MODELACUT=$(echo $PVMODEL | awk -F 'Product=| S: SerialNumber' '{print $2}'| xargs)
|
||||
MODEL="$MODELBCUT "$MODELACUT
|
||||
# MODELC="$MODELBCUT "$MODELACUT
|
||||
# MODEL=$(echo "$MODELC" | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}' | tr -d '\r\n')
|
||||
fi
|
||||
|
||||
# FW
|
||||
OF=$(sms_tool -d $DEVICE at "ati")
|
||||
DEV2=$(echo $OF | tr -s "\n" | xargs)
|
||||
FW=$(echo $DEV2 | awk -F 'Revision: | IMEI: ' '{print $2}' | cut -c-50)
|
||||
|
||||
T=$(echo "$O" | awk -F ': ' '/ICCID:/ {print $2}')
|
||||
if [ -n "$T" ]; then
|
||||
NR_ICCID="$T"
|
||||
fi
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+GSN" | xargs)
|
||||
NR_I=$(echo "$O")
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O")
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+ICCID" | xargs)
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\ICCID:/{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
@ -1,488 +0,0 @@
|
||||
# Fibocom L860
|
||||
|
||||
bandwidth() {
|
||||
case $1 in
|
||||
0) echo "1.4";;
|
||||
1) echo "3";;
|
||||
2) echo "5";;
|
||||
3) echo "10";;
|
||||
4) echo "15";;
|
||||
5) echo "20";;
|
||||
*) echo "";;
|
||||
esac
|
||||
}
|
||||
|
||||
channeltoband()
|
||||
{
|
||||
if [ $1 -ge 0 ] && [ $1 -le 599 ]; then
|
||||
echo "1"
|
||||
elif [ $1 -ge 600 ] && [ $1 -le 1199 ]; then
|
||||
echo "2"
|
||||
elif [ $1 -ge 1200 ] && [ $1 -le 1949 ]; then
|
||||
echo "3"
|
||||
elif [ $1 -ge 1950] && [ $1 -le 2399 ]; then
|
||||
echo "4"
|
||||
elif [ $1 -ge 2400] && [ $1 -le 2469 ]; then
|
||||
echo "5"
|
||||
elif [ $1 -ge 2750 ] && [ $1 -le 3449 ]; then
|
||||
echo "7"
|
||||
elif [ $1 -ge 3450 ] && [ $1 -le 3799 ]; then
|
||||
echo "8"
|
||||
elif [ $1 -ge 6150 ] && [ $1 -le 6449 ]; then
|
||||
echo "20"
|
||||
elif [ $1 -ge 9210 ] && [ $1 -le 9659 ]; then
|
||||
echo "28"
|
||||
elif [ $1 -ge 9870 ] && [ $1 -le 9919 ]; then
|
||||
echo "31"
|
||||
elif [ $1 -ge 37750 ] && [ $1 -le 38249 ]; then
|
||||
echo "38"
|
||||
elif [ $1 -ge 38650 ] && [ $1 -le 39649 ]; then
|
||||
echo "40"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+MTSM=1")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^\+MTSM:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+XLEC?;+XMCI=1;+XCCINFO=1;+XCCINFO?")
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XCCINFO:/{print $11}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
fi
|
||||
|
||||
PB=""
|
||||
S1B=""
|
||||
S2B=""
|
||||
S3B=""
|
||||
S4B=""
|
||||
BWP=""
|
||||
BWS1=""
|
||||
BWS2=""
|
||||
BWS3=""
|
||||
BWS4=""
|
||||
|
||||
CELLS=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $3}')
|
||||
[ -z "$CELLS" ] && CELLS=0
|
||||
case $CELLS in
|
||||
|
||||
"1")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
;;
|
||||
"2")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$(band4g ${T/BAND_LTE_/})"
|
||||
else
|
||||
PBAND="$(band4g ${T/BAND_LTE_/}) @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
;;
|
||||
"3")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
BWS2=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$(band4g ${T/BAND_LTE_/})"
|
||||
else
|
||||
PBAND="$(band4g ${T/BAND_LTE_/}) @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $8}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $9}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S2B=$(band4g $T)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="$S2B"
|
||||
else
|
||||
S2BAND="$S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
;;
|
||||
"4")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
BWS2=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
BWS3=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $8}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $9}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $10}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S2B=$(band4g $T)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="$S2B"
|
||||
else
|
||||
S2BAND="$S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $11}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S3B=$(band4g $T)
|
||||
if [ -z "$BWS3" ]; then
|
||||
S3BAND="$S3B"
|
||||
else
|
||||
S3BAND="$S3B @${BWS3} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S3B"
|
||||
fi
|
||||
;;
|
||||
"5")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
BWS2=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
BWS3=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $8}')
|
||||
BWS4=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $9}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $10}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $11}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S2B=$(band4g $T)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="S2B"
|
||||
else
|
||||
S2BAND="S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $12}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S3B=$(band4g $T)
|
||||
if [ -z "$BWS3" ]; then
|
||||
S3BAND="$S3B"
|
||||
else
|
||||
S3BAND="$S3B @${BWS3} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S3B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $13}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S4B=$(band4g $T)
|
||||
if [ -z "$BWS4" ]; then
|
||||
S4BAND="$S4B"
|
||||
else
|
||||
S4BAND="$S4B @${BWS4} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S4B"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
PCI="$(printf "%d" "$T")"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $8}' | xargs)
|
||||
if [ "$T" != "0xFFFFFFFF" ]; then
|
||||
# EARFCN DL
|
||||
EARFCN="$(printf "%d" "$T")"
|
||||
if [ -z "$PB" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
PB=$(band4g $T1)
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $9}' | xargs)
|
||||
# [ "$T" != "0xFFFFFFFF" ] && addon 34 "EARFCN UL" "$(printf "%d" "$T")"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $11}')
|
||||
if [ "$T" != "255" ]; then
|
||||
RSRP="$((-141 + T))"
|
||||
N=""
|
||||
case $BWP in
|
||||
"1.4") N=6;;
|
||||
"3") N=15;;
|
||||
"5") N=25;;
|
||||
"10") N=50;;
|
||||
"15") N=75;;
|
||||
"20") N=100;;
|
||||
esac
|
||||
if [ -n "$N" ]; then
|
||||
RSSI=$(echo "$((-141 + T)) $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
CSQ_PER=$(((RSSI + 113) * 100 / 62))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $12}')
|
||||
[ "$T" != "255" ] && RSRQ="$((-20 + T/2))"
|
||||
# SNR
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $13}')
|
||||
# [ "$T" != "255" ] && SNR="$T"
|
||||
# SINR
|
||||
SINR=$(echo "$O" | awk -F [:,] '/\+XMCI: 4/{gsub(/"/,""); printf "%.0f\n", $13/4+5}')
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep "+XMCI: 5")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$(printf "%d" "$T")";;
|
||||
2) S2PCI="$(printf "%d" "$T")";;
|
||||
3) S3PCI="$(printf "%d" "$T")";;
|
||||
4) S4PCI="$(printf "%d" "$T")";;
|
||||
*) ;;
|
||||
esac
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $8}' | xargs)
|
||||
if [ "$T" != "0xFFFFFFFF" ]; then
|
||||
# EARFCN DL
|
||||
case $IDX in
|
||||
1) S1EARFCN="$(printf "%d" "$T")";;
|
||||
2) S2EARFCN="$(printf "%d" "$T")";;
|
||||
3) S3EARFCN="$(printf "%d" "$T")";;
|
||||
4) S4EARFCN="$(printf "%d" "$T")";;
|
||||
*) ;;
|
||||
esac
|
||||
case $IDX in
|
||||
1)
|
||||
if [ -z "$S1B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S1B=$(band4g $T1)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
if [ -z "$S2B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S2B=$(band4g $T1)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="$S2B"
|
||||
else
|
||||
S2BAND="$S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
;;
|
||||
3)
|
||||
if [ -z "$S3B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S3B=$(band4g $T1)
|
||||
if [ -z "$BWS3" ]; then
|
||||
S3BAND="$S3B"
|
||||
else
|
||||
S3BAND="$S3B @${BWS3} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S3B"
|
||||
fi
|
||||
;;
|
||||
4)
|
||||
if [ -z "$S4B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S4B=$(band4g $T1)
|
||||
if [ -z "$BWS4" ]; then
|
||||
S4BAND="$S4B"
|
||||
else
|
||||
S4BAND="$S4B @${BWS4} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S4B"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $9}' | xargs)
|
||||
# [ "$T" != "0xFFFFFFFF" ] && addon $((POS + 4)) "(S${IDX}) EARFCN UL" "$(printf "%d" "$T")"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $11}')
|
||||
# [ "$T" != "255" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$((-141 + T)) dBm"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $12}')
|
||||
# [ "$T" != "255" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$((-20 + T/2)) dB"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 4/{print $13}')
|
||||
# [ "$T" != "255" ] && addon $((POS + 8)) "(S${IDX}) SNR" "$T dB"
|
||||
IDX=$((IDX + 1))
|
||||
[ $IDX -ge $CELLS ] && break
|
||||
POS=$((POS + 10))
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GTPKGVER?" | xargs)
|
||||
FW=$(echo "$FWA" | cut -d ":" -f2 | xargs)
|
||||
|
||||
MDL=$(sms_tool -d $DEVICE at "AT+GMM?" | xargs)
|
||||
MODELM=$(echo "$MDL" | cut -d ':' -f2 | cut -d ',' -f1 | awk -F'"' '{print $1}')
|
||||
MODELF=$(sms_tool -d $DEVICE at "AT+CGMI" | xargs)
|
||||
|
||||
MODELMCUT=$(echo $MODELM)
|
||||
MODELFCUT=$(echo $MODELF | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELFCUT "$MODELMCUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+CCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCAX=$(echo $PV | awk -F"Vendor=8087 ProdID=07f9" '{print $2}')
|
||||
PVCA=$(echo "$PVCAX" | cut -c-2453)
|
||||
PVCBX=$(echo $PV | awk -F"Vendor=8087 ProdID=095a" '{print $2}')
|
||||
PVCB=$(echo "$PVCBX" | cut -c-2453)
|
||||
|
||||
if [ -n "$PVCA" ]; then
|
||||
case $PVCA in
|
||||
*"Driver=qmi_wwan"*)
|
||||
PROTO="qmi"
|
||||
;;
|
||||
*"Driver=cdc_ncm"*)
|
||||
PROTO="ncm"
|
||||
;;
|
||||
*"Driver=cdc_mbim"*)
|
||||
PROTO="mbim"
|
||||
;;
|
||||
*"Driver=cdc_ether"*)
|
||||
PROTO="ecm"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "$PVCB" ]; then
|
||||
case $PVCB in
|
||||
*"Driver=qmi_wwan"*)
|
||||
PROTO="qmi"
|
||||
;;
|
||||
*"Driver=cdc_ncm"*)
|
||||
PROTO="ncm"
|
||||
;;
|
||||
*"Driver=cdc_mbim"*)
|
||||
PROTO="mbim"
|
||||
;;
|
||||
*"Driver=cdc_ether"*)
|
||||
PROTO="ecm"
|
||||
;;
|
||||
esac
|
||||
fi
|
@ -1,488 +0,0 @@
|
||||
# Fibocom L860
|
||||
|
||||
bandwidth() {
|
||||
case $1 in
|
||||
0) echo "1.4";;
|
||||
1) echo "3";;
|
||||
2) echo "5";;
|
||||
3) echo "10";;
|
||||
4) echo "15";;
|
||||
5) echo "20";;
|
||||
*) echo "";;
|
||||
esac
|
||||
}
|
||||
|
||||
channeltoband()
|
||||
{
|
||||
if [ $1 -ge 0 ] && [ $1 -le 599 ]; then
|
||||
echo "1"
|
||||
elif [ $1 -ge 600 ] && [ $1 -le 1199 ]; then
|
||||
echo "2"
|
||||
elif [ $1 -ge 1200 ] && [ $1 -le 1949 ]; then
|
||||
echo "3"
|
||||
elif [ $1 -ge 1950] && [ $1 -le 2399 ]; then
|
||||
echo "4"
|
||||
elif [ $1 -ge 2400] && [ $1 -le 2469 ]; then
|
||||
echo "5"
|
||||
elif [ $1 -ge 2750 ] && [ $1 -le 3449 ]; then
|
||||
echo "7"
|
||||
elif [ $1 -ge 3450 ] && [ $1 -le 3799 ]; then
|
||||
echo "8"
|
||||
elif [ $1 -ge 6150 ] && [ $1 -le 6449 ]; then
|
||||
echo "20"
|
||||
elif [ $1 -ge 9210 ] && [ $1 -le 9659 ]; then
|
||||
echo "28"
|
||||
elif [ $1 -ge 9870 ] && [ $1 -le 9919 ]; then
|
||||
echo "31"
|
||||
elif [ $1 -ge 37750 ] && [ $1 -le 38249 ]; then
|
||||
echo "38"
|
||||
elif [ $1 -ge 38650 ] && [ $1 -le 39649 ]; then
|
||||
echo "40"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+MTSM=1")
|
||||
|
||||
T=$(echo "$O" | awk -F: '/^\+MTSM:/ {print $2}' | xargs)
|
||||
[ -n "$T" ] && TEMP="$T °C"
|
||||
|
||||
if [ "$REGOK" = "1" ]; then
|
||||
|
||||
O=$(sms_tool -d $DEVICE at "AT+XLEC?;+XMCI=1;+XCCINFO=1;+XCCINFO?")
|
||||
|
||||
if [ "x$MODE_NUM" = "x7" ]; then
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XCCINFO:/{print $11}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
T_DEC=$(printf "%d" "0x$T")
|
||||
fi
|
||||
|
||||
PB=""
|
||||
S1B=""
|
||||
S2B=""
|
||||
S3B=""
|
||||
S4B=""
|
||||
BWP=""
|
||||
BWS1=""
|
||||
BWS2=""
|
||||
BWS3=""
|
||||
BWS4=""
|
||||
|
||||
CELLS=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $3}')
|
||||
[ -z "$CELLS" ] && CELLS=0
|
||||
case $CELLS in
|
||||
|
||||
"1")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
;;
|
||||
"2")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$(band4g ${T/BAND_LTE_/})"
|
||||
else
|
||||
PBAND="$(band4g ${T/BAND_LTE_/}) @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
;;
|
||||
"3")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
BWS2=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$(band4g ${T/BAND_LTE_/})"
|
||||
else
|
||||
PBAND="$(band4g ${T/BAND_LTE_/}) @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $8}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $9}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S2B=$(band4g $T)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="$S2B"
|
||||
else
|
||||
S2BAND="$S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
;;
|
||||
"4")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
BWS2=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
BWS3=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $8}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $9}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $10}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S2B=$(band4g $T)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="$S2B"
|
||||
else
|
||||
S2BAND="$S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $11}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S3B=$(band4g $T)
|
||||
if [ -z "$BWS3" ]; then
|
||||
S3BAND="$S3B"
|
||||
else
|
||||
S3BAND="$S3B @${BWS3} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S3B"
|
||||
fi
|
||||
;;
|
||||
"5")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $4}')
|
||||
BWP=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $5}')
|
||||
BWS1=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $6}')
|
||||
BWS2=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $7}')
|
||||
BWS3=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $8}')
|
||||
BWS4=$(bandwidth "$T")
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $9}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
PB=$(band4g ${T/BAND_LTE_/})
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $10}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S1B=$(band4g $T)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $11}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S2B=$(band4g $T)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="S2B"
|
||||
else
|
||||
S2BAND="S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $12}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S3B=$(band4g $T)
|
||||
if [ -z "$BWS3" ]; then
|
||||
S3BAND="$S3B"
|
||||
else
|
||||
S3BAND="$S3B @${BWS3} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S3B"
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XLEC:/{print $13}')
|
||||
if [ -n "$T" ] && [ "x$T" != "x0" ]; then
|
||||
S4B=$(band4g $T)
|
||||
if [ -z "$BWS4" ]; then
|
||||
S4BAND="$S4B"
|
||||
else
|
||||
S4BAND="$S4B @${BWS4} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S4B"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
PCI="$(printf "%d" "$T")"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $8}' | xargs)
|
||||
if [ "$T" != "0xFFFFFFFF" ]; then
|
||||
# EARFCN DL
|
||||
EARFCN="$(printf "%d" "$T")"
|
||||
if [ -z "$PB" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
PB=$(band4g $T1)
|
||||
if [ -z "$BWP" ]; then
|
||||
PBAND="$PB"
|
||||
else
|
||||
PBAND="$PB @${BWP} MHz"
|
||||
fi
|
||||
MODE="$MODE $PB"
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $9}' | xargs)
|
||||
# [ "$T" != "0xFFFFFFFF" ] && addon 34 "EARFCN UL" "$(printf "%d" "$T")"
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $11}')
|
||||
if [ "$T" != "255" ]; then
|
||||
RSRP="$((-141 + T))"
|
||||
N=""
|
||||
case $BWP in
|
||||
"1.4") N=6;;
|
||||
"3") N=15;;
|
||||
"5") N=25;;
|
||||
"10") N=50;;
|
||||
"15") N=75;;
|
||||
"20") N=100;;
|
||||
esac
|
||||
if [ -n "$N" ]; then
|
||||
RSSI=$(echo "$((-141 + T)) $N" | awk '{printf "%d\n", $1 + 10*log(12*$2)/log(10)}')
|
||||
if [ -n "$RSSI" ]; then
|
||||
[ $RSSI -lt -113 ] && RSSI="-113"
|
||||
[ $RSSI -gt -51 ] && RSSI="-51"
|
||||
RSSI="$RSSI"
|
||||
CSQ_PER=$(((RSSI + 113) * 100 / 62))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $12}')
|
||||
[ "$T" != "255" ] && RSRQ="$((-20 + T/2))"
|
||||
# SNR
|
||||
# T=$(echo "$O" | awk -F[,:] '/^\+XMCI: 4/{print $13}')
|
||||
# [ "$T" != "255" ] && SNR="$T"
|
||||
# SINR
|
||||
SINR=$(echo "$O" | awk -F [:,] '/\+XMCI: 4/{gsub(/"/,""); printf "%.0f\n", $13/4+5}')
|
||||
fi
|
||||
|
||||
IFS="
|
||||
"
|
||||
|
||||
IDX=1
|
||||
LINES=$(echo "$O" | grep "+XMCI: 5")
|
||||
for LINE in $LINES; do
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $7}' | xargs)
|
||||
if [ -n "$T" ]; then
|
||||
case $IDX in
|
||||
1) S1PCI="$(printf "%d" "$T")";;
|
||||
2) S2PCI="$(printf "%d" "$T")";;
|
||||
3) S3PCI="$(printf "%d" "$T")";;
|
||||
4) S4PCI="$(printf "%d" "$T")";;
|
||||
*) ;;
|
||||
esac
|
||||
T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $8}' | xargs)
|
||||
if [ "$T" != "0xFFFFFFFF" ]; then
|
||||
# EARFCN DL
|
||||
case $IDX in
|
||||
1) S1EARFCN="$(printf "%d" "$T")";;
|
||||
2) S2EARFCN="$(printf "%d" "$T")";;
|
||||
3) S3EARFCN="$(printf "%d" "$T")";;
|
||||
4) S4EARFCN="$(printf "%d" "$T")";;
|
||||
*) ;;
|
||||
esac
|
||||
case $IDX in
|
||||
1)
|
||||
if [ -z "$S1B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S1B=$(band4g $T1)
|
||||
if [ -z "$BWS1" ]; then
|
||||
S1BAND="$S1B"
|
||||
else
|
||||
S1BAND="$S1B @${BWS1} MHz"
|
||||
fi
|
||||
MODE="${MODE/LTE/LTE_A} / $S1B"
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
if [ -z "$S2B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S2B=$(band4g $T1)
|
||||
if [ -z "$BWS2" ]; then
|
||||
S2BAND="$S2B"
|
||||
else
|
||||
S2BAND="$S2B @${BWS2} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S2B"
|
||||
fi
|
||||
;;
|
||||
3)
|
||||
if [ -z "$S3B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S3B=$(band4g $T1)
|
||||
if [ -z "$BWS3" ]; then
|
||||
S3BAND="$S3B"
|
||||
else
|
||||
S3BAND="$S3B @${BWS3} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S3B"
|
||||
fi
|
||||
;;
|
||||
4)
|
||||
if [ -z "$S4B" ]; then
|
||||
T1=$(channeltoband $(printf "%d" "$T"))
|
||||
S4B=$(band4g $T1)
|
||||
if [ -z "$BWS4" ]; then
|
||||
S4BAND="$S4B"
|
||||
else
|
||||
S4BAND="$S4B @${BWS4} MHz"
|
||||
fi
|
||||
MODE="$MODE / $S4B"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $9}' | xargs)
|
||||
# [ "$T" != "0xFFFFFFFF" ] && addon $((POS + 4)) "(S${IDX}) EARFCN UL" "$(printf "%d" "$T")"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $11}')
|
||||
# [ "$T" != "255" ] && addon $((POS + 6)) "(S${IDX}) RSRP" "$((-141 + T)) dBm"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 5/{print $12}')
|
||||
# [ "$T" != "255" ] && addon $((POS + 7)) "(S${IDX}) RSRQ" "$((-20 + T/2)) dB"
|
||||
# T=$(echo "$LINE" | awk -F[,:] '/^\+XMCI: 4/{print $13}')
|
||||
# [ "$T" != "255" ] && addon $((POS + 8)) "(S${IDX}) SNR" "$T dB"
|
||||
IDX=$((IDX + 1))
|
||||
[ $IDX -ge $CELLS ] && break
|
||||
POS=$((POS + 10))
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
MODE=$(echo $MODE | sed 's,/,+,')
|
||||
|
||||
# Modem
|
||||
FWA=$(sms_tool -d $DEVICE at "AT+GTPKGVER?" | xargs)
|
||||
FW=$(echo "$FWA" | cut -d ":" -f2 | xargs)
|
||||
|
||||
MDL=$(sms_tool -d $DEVICE at "AT+GMM?" | xargs)
|
||||
MODELM=$(echo "$MDL" | cut -d ':' -f2 | cut -d ',' -f1 | awk -F'"' '{print $1}')
|
||||
MODELF=$(sms_tool -d $DEVICE at "AT+CGMI" | xargs)
|
||||
|
||||
MODELMCUT=$(echo $MODELM)
|
||||
MODELFCUT=$(echo $MODELF | sed s/"AT+CGMI "//)
|
||||
MODEL="$MODELFCUT "$MODELMCUT
|
||||
|
||||
# International Mobile Equipment Identity (IMEI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
|
||||
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
|
||||
if [ -n "$NR_I" ]; then
|
||||
NR_IMEI="$NR_I"
|
||||
fi
|
||||
|
||||
# International Mobile Subscriber Identity (IMSI)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
|
||||
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
|
||||
if [ -n "$NR_C" ]; then
|
||||
NR_IMSI="$NR_C"
|
||||
fi
|
||||
|
||||
# Integrated Circuit Card Identifier (ICCID)
|
||||
O=$(sms_tool -d $DEVICE at "AT+CCID")
|
||||
NR_D=$(echo "$O" | awk -F [:] '/^\+CCID: /{print $2}' | xargs)
|
||||
if [ -n "$NR_D" ]; then
|
||||
NR_ICCID="$NR_D"
|
||||
fi
|
||||
|
||||
# Protocol
|
||||
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
|
||||
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
|
||||
PVCAX=$(echo $PV | awk -F"Vendor=8087 ProdID=07f9" '{print $2}')
|
||||
PVCA=$(echo "$PVCAX" | cut -c-2453)
|
||||
PVCBX=$(echo $PV | awk -F"Vendor=8087 ProdID=095a" '{print $2}')
|
||||
PVCB=$(echo "$PVCBX" | cut -c-2453)
|
||||
|
||||
if [ -n "$PVCA" ]; then
|
||||
case $PVCA in
|
||||
*"Driver=qmi_wwan"*)
|
||||
PROTO="qmi"
|
||||
;;
|
||||
*"Driver=cdc_ncm"*)
|
||||
PROTO="ncm"
|
||||
;;
|
||||
*"Driver=cdc_mbim"*)
|
||||
PROTO="mbim"
|
||||
;;
|
||||
*"Driver=cdc_ether"*)
|
||||
PROTO="ecm"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "$PVCB" ]; then
|
||||
case $PVCB in
|
||||
*"Driver=qmi_wwan"*)
|
||||
PROTO="qmi"
|
||||
;;
|
||||
*"Driver=cdc_ncm"*)
|
||||
PROTO="ncm"
|
||||
;;
|
||||
*"Driver=cdc_mbim"*)
|
||||
PROTO="mbim"
|
||||
;;
|
||||
*"Driver=cdc_ether"*)
|
||||
PROTO="ecm"
|
||||
;;
|
||||
esac
|
||||
fi
|
@ -1,91 +0,0 @@
|
||||
opengt
|
||||
set com 115200n81
|
||||
set comecho off
|
||||
set senddelay 0.01
|
||||
waitquiet 0.01 0.01
|
||||
|
||||
let $c="ATE0;+CGMI^m"
|
||||
let $r="+CGMI:"
|
||||
gosub readatcmdfl
|
||||
|
||||
let $c="AT+CGMM^m"
|
||||
let $r="+CGMM:"
|
||||
gosub readatcmdfl
|
||||
|
||||
let $c="AT+CGMR^m"
|
||||
let $r="+CGMR:"
|
||||
gosub readatcmdfl
|
||||
let $c="AT+GMR^m"
|
||||
let $r="+GMR:"
|
||||
gosub readatcmdfl
|
||||
|
||||
let $c="AT+CGSN^m"
|
||||
let $r="+CGSN:"
|
||||
gosub readatcmdfl
|
||||
|
||||
let $c="AT+CIMI^m"
|
||||
let $r="+CIMI:"
|
||||
gosub readatcmdfl
|
||||
|
||||
let $c="AT\^ICCID?^m"
|
||||
gosub readatcmd
|
||||
let $c="AT+ICCID^m"
|
||||
gosub readatcmd
|
||||
let $c="AT+QCCID^m"
|
||||
gosub readatcmd
|
||||
let $c="AT#CCID^m"
|
||||
gosub readatcmd
|
||||
let $c="AT!ICCID?^m"
|
||||
gosub readatcmd
|
||||
let $c="AT*ICCID?^m"
|
||||
gosub readatcmd
|
||||
let $c="AT+CCID^m"
|
||||
gosub readatcmd
|
||||
|
||||
exit 0
|
||||
|
||||
:readatcmd
|
||||
let i=15
|
||||
send $c
|
||||
:loop
|
||||
get 0.1 "^m" $s
|
||||
if len($s) < 2 goto loop2
|
||||
if $mid($s,1,2) = "ER" goto loop1
|
||||
if $mid($s,1,2) = "OK" goto loop2
|
||||
if $mid($s,1,2) = "AT" goto loop2
|
||||
print $s,"\n"
|
||||
exit 0
|
||||
|
||||
:loop1
|
||||
return
|
||||
|
||||
:loop2
|
||||
if i = 0 return
|
||||
let i=i-1
|
||||
goto loop
|
||||
|
||||
:readatcmdfl
|
||||
let i=15
|
||||
send $c
|
||||
:loop3
|
||||
get 0.1 "^m" $s
|
||||
if len($s) < 2 goto loop5
|
||||
let f=0
|
||||
if $mid($s,0,1) ="\n" let f=1
|
||||
if $mid($s,f,2) = "ER" goto loop4
|
||||
if $mid($s,f,2) = "OK" goto loop5
|
||||
if $mid($s,f,2) = "AT" goto loop5
|
||||
if $mid($s,f,1) = "\^" goto loop5
|
||||
if $mid($s,f,1) = "#" goto loop5
|
||||
let l=len($s)
|
||||
let $s=$mid($s,f,l)
|
||||
print $r,$s,"\n"
|
||||
return
|
||||
|
||||
:loop4
|
||||
return
|
||||
|
||||
:loop5
|
||||
if i = 0 return
|
||||
let i=i-1
|
||||
goto loop3
|
@ -1,50 +0,0 @@
|
||||
{
|
||||
"admin/modem": {
|
||||
"title": "Modem",
|
||||
"order": 30,
|
||||
"action": {
|
||||
"type": "firstchild",
|
||||
"recurse": true
|
||||
}
|
||||
},
|
||||
|
||||
"admin/modem/3ginfo-lite": {
|
||||
"title": "Information about 3G/4G/5G connection",
|
||||
"order": 10,
|
||||
"action": {
|
||||
"type": "alias",
|
||||
"path": "admin/modem/3ginfo-lite/3gdetail"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-3ginfo-lite" ],
|
||||
"uci": { "3ginfo": true }
|
||||
}
|
||||
},
|
||||
|
||||
"admin/modem/3ginfo-lite/3gdetail": {
|
||||
"title": "Details",
|
||||
"order": 10,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "modem/3gdetail"
|
||||
}
|
||||
},
|
||||
|
||||
"admin/modem/3ginfo-lite/3gdebug": {
|
||||
"title": "Diagnostics",
|
||||
"order": 20,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "modem/3gdebug"
|
||||
}
|
||||
},
|
||||
|
||||
"admin/modem/3ginfo-lite/3gconfig": {
|
||||
"title": "Configuration",
|
||||
"order": 30,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "modem/3gconfig"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
{
|
||||
"luci-app-3ginfo-lite": {
|
||||
"description": "Grant access to LuCI app 3ginfo-lite",
|
||||
"read": {
|
||||
"cgi-io": [ "exec" ],
|
||||
"file": {
|
||||
"/usr/share/3ginfo-lite/3ginfo.sh": [ "exec" ],
|
||||
"/usr/share/3ginfo-lite/detect.sh": [ "exec" ],
|
||||
"/usr/share/3ginfo-lite/check.gcom": [ "exec" ],
|
||||
"/usr/share/3ginfo-lite/info.gcom": [ "exec" ],
|
||||
"/etc/modemdefine": [ "read" ],
|
||||
"/etc/3ginfo": [ "read" ],
|
||||
"/sys/kernel/debug/usb/devices": [ "read" ]
|
||||
},
|
||||
"uci": [ "3ginfo" ]
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/bin/cat": [ "exec" ],
|
||||
"/bin/sh -x /usr/share/3ginfo-lite/3ginfo.sh": [ "exec" ],
|
||||
"/bin/ls /dev": [ "exec" ],
|
||||
"/etc/modemdefine": [ "write" ],
|
||||
"/tmp/debug_result.txt": [ "write" ],
|
||||
"/etc/3ginfo": [ "write" ]
|
||||
},
|
||||
"uci": [ "3ginfo" ]
|
||||
}
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
LUCI_TITLE:=LuCI account management module
|
||||
LUCI_DEPENDS:=+luci-base
|
||||
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
|
||||
include ../../luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
@ -1,339 +0,0 @@
|
||||
'use strict';
|
||||
'require view';
|
||||
'require dom';
|
||||
'require fs';
|
||||
'require ui';
|
||||
'require uci';
|
||||
'require form';
|
||||
'require tools.widgets as widgets';
|
||||
|
||||
var aclList = {};
|
||||
|
||||
function globListToRegExp(section_id, option) {
|
||||
var list = L.toArray(uci.get('rpcd', section_id, option)),
|
||||
positivePatterns = [],
|
||||
negativePatterns = [];
|
||||
|
||||
if (option == 'read')
|
||||
list.push.apply(list, L.toArray(uci.get('rpcd', section_id, 'write')));
|
||||
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var array, glob;
|
||||
|
||||
if (list[i].match(/^\s*!/)) {
|
||||
glob = list[i].replace(/^\s*!/, '').trim();
|
||||
array = negativePatterns;
|
||||
}
|
||||
else {
|
||||
glob = list[i].trim(),
|
||||
array = positivePatterns;
|
||||
}
|
||||
|
||||
array.push(glob.replace(/[.*+?^${}()|[\]\\]/g, function(m) {
|
||||
switch (m[0]) {
|
||||
case '?':
|
||||
return '.';
|
||||
|
||||
case '*':
|
||||
return '.*';
|
||||
|
||||
default:
|
||||
return '\\' + m[0];
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
return [
|
||||
new RegExp('^' + (positivePatterns.length ? '(' + positivePatterns.join('|') + ')' : '') + '$'),
|
||||
new RegExp('^' + (negativePatterns.length ? '(' + negativePatterns.join('|') + ')' : '') + '$')
|
||||
];
|
||||
}
|
||||
|
||||
var cbiACLLevel = form.DummyValue.extend({
|
||||
textvalue: function(section_id) {
|
||||
var allowedAclMatches = globListToRegExp(section_id, this.option.match(/read/) ? 'read' : 'write'),
|
||||
aclGroupNames = Object.keys(aclList),
|
||||
matchingGroupNames = [];
|
||||
|
||||
for (var j = 0; j < aclGroupNames.length; j++)
|
||||
if (allowedAclMatches[0].test(aclGroupNames[j]) && !allowedAclMatches[1].test(aclGroupNames[j]))
|
||||
matchingGroupNames.push(aclGroupNames[j]);
|
||||
|
||||
if (matchingGroupNames.length == aclGroupNames.length)
|
||||
return E('span', { 'class': 'label' }, [ _('full', 'All permissions granted') ]);
|
||||
else if (matchingGroupNames.length > 0)
|
||||
return E('span', { 'class': 'label' }, [ _('partial (%d/%d)', 'Some permissions granted').format(matchingGroupNames.length, aclGroupNames.length) ]);
|
||||
else
|
||||
return E('span', { 'class': 'label warning' }, [ _('denied', 'No permissions granted') ]);
|
||||
}
|
||||
});
|
||||
|
||||
var cbiACLSelect = form.Value.extend({
|
||||
renderWidget: function(section_id) {
|
||||
var readMatches = globListToRegExp(section_id, 'read'),
|
||||
writeMatches = globListToRegExp(section_id, 'write');
|
||||
|
||||
var table = E('table', { 'class': 'table' }, [
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('th', { 'class': 'th' }, [ _('ACL group') ]),
|
||||
E('th', { 'class': 'th' }, [ _('Description') ]),
|
||||
E('th', { 'class': 'th' }, [ _('Access level') ])
|
||||
]),
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td' }, [ '' ]),
|
||||
E('td', { 'class': 'td' }, [ '' ]),
|
||||
E('td', { 'class': 'td' }, [
|
||||
_('Set all: ', 'Set all permissions in the table below to one of the given values'),
|
||||
E('a', { 'href': '#', 'click': function() {
|
||||
table.querySelectorAll('select').forEach(function(select) { select.value = select.options[0].value });
|
||||
} }, [ _('denied', 'No permissions granted') ]), ' | ',
|
||||
E('a', { 'href': '#', 'click': function() {
|
||||
table.querySelectorAll('select').forEach(function(select) { select.value = 'read' });
|
||||
} }, [ _('readonly', 'Only read permissions granted') ]), ' | ',
|
||||
E('a', { 'href': '#', 'click': function() {
|
||||
table.querySelectorAll('select').forEach(function(select) { select.value = 'write' });
|
||||
} }, [ _('full', 'All permissions granted') ]),
|
||||
])
|
||||
])
|
||||
]);
|
||||
|
||||
Object.keys(aclList).sort().forEach(function(aclGroupName) {
|
||||
var isRequired = (aclGroupName == 'unauthenticated' || aclGroupName == 'luci-base'),
|
||||
isReadable = (readMatches[0].test(aclGroupName) && !readMatches[1].test(aclGroupName)) || null,
|
||||
isWritable = (writeMatches[0].test(aclGroupName) && !writeMatches[1].test(aclGroupName)) || null;
|
||||
|
||||
table.appendChild(E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td' }, [ aclGroupName ]),
|
||||
E('td', { 'class': 'td' }, [ aclList[aclGroupName].description || '-' ]),
|
||||
E('td', { 'class': 'td' }, [
|
||||
E('select', { 'data-acl-group': aclGroupName }, [
|
||||
isRequired ? E([]) : E('option', { 'value': '' }, [ _('denied', 'No permissions granted') ]),
|
||||
E('option', { 'value': 'read', 'selected': isReadable }, [ _('readonly', 'Only read permissions granted') ]),
|
||||
E('option', { 'value': 'write', 'selected': isWritable }, [ _('full', 'All permissions granted') ])
|
||||
])
|
||||
])
|
||||
]));
|
||||
});
|
||||
|
||||
return table;
|
||||
},
|
||||
|
||||
formvalue: function(section_id) {
|
||||
var node = this.map.findElement('data-field', this.cbid(section_id)),
|
||||
data = {};
|
||||
|
||||
node.querySelectorAll('[data-acl-group]').forEach(function(select) {
|
||||
var aclGroupName = select.getAttribute('data-acl-group'),
|
||||
value = select.value;
|
||||
|
||||
if (!value)
|
||||
return;
|
||||
|
||||
switch (value) {
|
||||
case 'write':
|
||||
data.write = data.write || [];
|
||||
data.write.push(aclGroupName);
|
||||
/* fall through */
|
||||
|
||||
case 'read':
|
||||
data.read = data.read || [];
|
||||
data.read.push(aclGroupName);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
write: function(section_id, value) {
|
||||
uci.unset('rpcd', section_id, 'read');
|
||||
uci.unset('rpcd', section_id, 'write');
|
||||
|
||||
if (L.isObject(value) && Array.isArray(value.read))
|
||||
uci.set('rpcd', section_id, 'read', value.read);
|
||||
|
||||
if (L.isObject(value) && Array.isArray(value.write))
|
||||
uci.set('rpcd', section_id, 'write', value.write);
|
||||
}
|
||||
});
|
||||
|
||||
return view.extend({
|
||||
load: function() {
|
||||
return L.resolveDefault(fs.list('/usr/share/rpcd/acl.d'), []).then(function(entries) {
|
||||
var tasks = [
|
||||
L.resolveDefault(fs.stat('/usr/sbin/uhttpd'), null),
|
||||
fs.lines('/etc/passwd')
|
||||
];
|
||||
|
||||
for (var i = 0; i < entries.length; i++)
|
||||
if (entries[i].type == 'file' && entries[i].name.match(/\.json$/))
|
||||
tasks.push(L.resolveDefault(fs.read('/usr/share/rpcd/acl.d/' + entries[i].name).then(JSON.parse)));
|
||||
|
||||
return Promise.all(tasks);
|
||||
});
|
||||
},
|
||||
|
||||
render: function(data) {
|
||||
ui.addNotification(null, E('p', [
|
||||
_('The LuCI ACL management is in an experimental stage! It does not yet work reliably with all applications')
|
||||
]), 'warning');
|
||||
|
||||
var has_uhttpd = data[0],
|
||||
known_unix_users = {};
|
||||
|
||||
for (var i = 0; i < data[1].length; i++) {
|
||||
var parts = data[1][i].split(/:/);
|
||||
|
||||
if (parts.length >= 7)
|
||||
known_unix_users[parts[0]] = true;
|
||||
}
|
||||
|
||||
for (var i = 2; i < data.length; i++) {
|
||||
if (!L.isObject(data[i]))
|
||||
continue;
|
||||
|
||||
for (var aclName in data[i]) {
|
||||
if (!data[i].hasOwnProperty(aclName))
|
||||
continue;
|
||||
|
||||
aclList[aclName] = data[i][aclName];
|
||||
}
|
||||
}
|
||||
|
||||
let m, s, o;
|
||||
|
||||
m = new form.Map('rpcd', _('LuCI Logins'));
|
||||
|
||||
s = m.section(form.GridSection, 'login');
|
||||
s.anonymous = true;
|
||||
s.addremove = true;
|
||||
|
||||
s.modaltitle = function(section_id) {
|
||||
return _('LuCI Logins') + ' » ' + (uci.get('rpcd', section_id, 'username') || _('New account'));
|
||||
};
|
||||
|
||||
o = s.option(form.Value, 'username', _('Login name'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.ListValue, '_variant', _('Password variant'));
|
||||
o.modalonly = true;
|
||||
o.value('shadow', _('Use UNIX password in /etc/shadow'));
|
||||
o.value('crypted', _('Use encrypted password hash'));
|
||||
o.cfgvalue = function(section_id) {
|
||||
var value = uci.get('rpcd', section_id, 'password') || '';
|
||||
|
||||
if (value.substring(0, 3) == '$p$')
|
||||
return 'shadow';
|
||||
else
|
||||
return 'crypted';
|
||||
};
|
||||
o.write = function() {};
|
||||
|
||||
o = s.option(widgets.UserSelect, '_account', _('UNIX account'), _('The system account to use the password from'));
|
||||
o.modalonly = true;
|
||||
o.depends('_variant', 'shadow');
|
||||
o.cfgvalue = function(section_id) {
|
||||
var value = uci.get('rpcd', section_id, 'password') || '';
|
||||
return value.substring(3);
|
||||
};
|
||||
o.write = function(section_id, value) {
|
||||
uci.set('rpcd', section_id, 'password', '$p$' + value);
|
||||
};
|
||||
o.remove = function() {};
|
||||
|
||||
o = s.option(form.Value, 'password', _('Password value'));
|
||||
o.modalonly = true;
|
||||
o.password = true;
|
||||
o.rmempty = false;
|
||||
o.depends('_variant', 'crypted');
|
||||
o.cfgvalue = function(section_id) {
|
||||
var value = uci.get('rpcd', section_id, 'password') || '';
|
||||
return (value.substring(0, 3) == '$p$') ? '' : value;
|
||||
};
|
||||
o.validate = function(section_id, value) {
|
||||
var variant = this.map.lookupOption('_variant', section_id)[0];
|
||||
|
||||
switch (value.substring(0, 3)) {
|
||||
case '$p$':
|
||||
return _('The password may not start with "$p$".');
|
||||
|
||||
case '$1$':
|
||||
variant.getUIElement(section_id).setValue('crypted');
|
||||
break;
|
||||
|
||||
default:
|
||||
if (variant.formvalue(section_id) == 'crypted' && value.length && !has_uhttpd)
|
||||
return _('Cannot encrypt plaintext password since uhttpd is not installed.');
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
o.write = function(section_id, value) {
|
||||
var variant = this.map.lookupOption('_variant', section_id)[0];
|
||||
|
||||
if (variant.formvalue(section_id) == 'crypted' && value.substring(0, 3) != '$1$')
|
||||
return fs.exec('/usr/sbin/uhttpd', [ '-m', value ]).then(function(res) {
|
||||
if (res.code == 0 && res.stdout)
|
||||
uci.set('rpcd', section_id, 'password', res.stdout.trim());
|
||||
else
|
||||
throw new Error(res.stderr);
|
||||
}).catch(function(err) {
|
||||
throw new Error(_('Unable to encrypt plaintext password: %s').format(err.message));
|
||||
});
|
||||
|
||||
uci.set('rpcd', section_id, 'password', value);
|
||||
};
|
||||
o.remove = function() {};
|
||||
|
||||
o = s.option(form.Value, 'timeout', _('Session timeout'));
|
||||
o.default = '300';
|
||||
o.datatype = 'uinteger';
|
||||
o.textvalue = function(section_id) {
|
||||
var value = uci.get('rpcd', section_id, 'timeout') || this.default;
|
||||
return +value ? '%ds'.format(value) : E('em', [ _('does not expire') ]);
|
||||
};
|
||||
|
||||
o = s.option(cbiACLLevel, '_read', _('Read access'));
|
||||
o.modalonly = false;
|
||||
|
||||
o = s.option(cbiACLLevel, '_write', _('Write access'));
|
||||
o.modalonly = false;
|
||||
|
||||
o = s.option(form.ListValue, '_level', _('Access level'));
|
||||
o.modalonly = true;
|
||||
o.value('write', _('full', 'All permissions granted'));
|
||||
o.value('read', _('readonly', 'Only read permissions granted'));
|
||||
o.value('individual', _('individual', 'Select individual permissions manually'));
|
||||
o.cfgvalue = function(section_id) {
|
||||
var readList = L.toArray(uci.get('rpcd', section_id, 'read')),
|
||||
writeList = L.toArray(uci.get('rpcd', section_id, 'write'));
|
||||
|
||||
if (writeList.length == 1 && writeList[0] == '*')
|
||||
return 'write';
|
||||
else if (readList.length == 1 && readList[0] == '*')
|
||||
return 'read';
|
||||
else
|
||||
return 'individual';
|
||||
};
|
||||
o.write = function(section_id) {
|
||||
switch (this.formvalue(section_id)) {
|
||||
case 'write':
|
||||
uci.set('rpcd', section_id, 'read', ['*']);
|
||||
uci.set('rpcd', section_id, 'write', ['*']);
|
||||
break;
|
||||
|
||||
case 'read':
|
||||
uci.set('rpcd', section_id, 'read', ['*']);
|
||||
uci.unset('rpcd', section_id, 'write');
|
||||
break;
|
||||
}
|
||||
};
|
||||
o.remove = function() {};
|
||||
|
||||
o = s.option(cbiACLSelect, '_acl');
|
||||
o.modalonly = true;
|
||||
o.depends('_level', 'individual');
|
||||
|
||||
return m.render();
|
||||
}
|
||||
});
|
@ -1,143 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2024-07-12 08:58+0000\n"
|
||||
"Last-Translator: Rex_sa <rex.sa@pm.me>\n"
|
||||
"Language-Team: Arabic <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsacl/ar/>\n"
|
||||
"Language: ar\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Weblate 5.7-dev\n"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/luci/menu.d/luci-app-acl.json:3
|
||||
msgid "ACL Settings"
|
||||
msgstr "إعدادات قائمة التحكم للوصول"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:78
|
||||
msgid "ACL group"
|
||||
msgstr "مجموعة قائمة التحكم للوصول"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:80
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:302
|
||||
msgid "Access level"
|
||||
msgstr "مستوى الصلاحية"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:266
|
||||
msgid "Cannot encrypt plaintext password since uhttpd is not installed."
|
||||
msgstr "لا يمكن تشفيرالنص المجرد لكلمة السر لأن uhttpd غير مثبت."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:79
|
||||
msgid "Description"
|
||||
msgstr "الوصف"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/rpcd/acl.d/luci-app-acl.json:3
|
||||
msgid "Grant access to ACL configuration"
|
||||
msgstr "منح الوصول إلى تهيئة قائمة التحكم بالوصول (ACL)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:215
|
||||
msgid "Login name"
|
||||
msgstr "اسم المستخدم"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:205
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "LuCI Logins"
|
||||
msgstr "تسجيل الدخول إلى ليسي"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "New account"
|
||||
msgstr "حساب جديد"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:244
|
||||
msgid "Password value"
|
||||
msgstr "كلمة السر"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:218
|
||||
msgid "Password variant"
|
||||
msgstr "متغير كلمة المرور"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:296
|
||||
msgid "Read access"
|
||||
msgstr "صلاحيات للقراءة"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:288
|
||||
msgid "Session timeout"
|
||||
msgstr "إنتهاء فترة تسجيل الدخول"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:86
|
||||
msgctxt "Set all permissions in the table below to one of the given values"
|
||||
msgid "Set all:"
|
||||
msgstr "تعيين الكل:"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:178
|
||||
msgid ""
|
||||
"The LuCI ACL management is in an experimental stage! It does not yet work "
|
||||
"reliably with all applications"
|
||||
msgstr ""
|
||||
"إدارة LuCI ACL في مرحلة تجريبية! لا يعمل بشكل موثوق حتى الآن مع جميع "
|
||||
"التطبيقات"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:258
|
||||
msgid "The password may not start with \"$p$\"."
|
||||
msgstr "لا يجوز أن تبدأ كلمة المرور بـ \"$ p $\"."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "The system account to use the password from"
|
||||
msgstr "حساب النظام المراد استخدام كلمة المرور منه"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "UNIX account"
|
||||
msgstr "حساب UNIX"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:281
|
||||
msgid "Unable to encrypt plaintext password: %s"
|
||||
msgstr "تعذر تشفير كلمة مرور النص العادي:٪ s"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:220
|
||||
msgid "Use UNIX password in /etc/shadow"
|
||||
msgstr "استخدم كلمة مرور UNIX في / etc / shadow"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:221
|
||||
msgid "Use encrypted password hash"
|
||||
msgstr "استخدم تجزئة كلمة المرور المشفرة"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:299
|
||||
msgid "Write access"
|
||||
msgstr "صلاحيات للتعديل"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:67
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:89
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:110
|
||||
msgctxt "No permissions granted"
|
||||
msgid "denied"
|
||||
msgstr "مرفوض"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:293
|
||||
msgid "does not expire"
|
||||
msgstr "لا تنتهي صلاحيتها"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:63
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:95
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:112
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:304
|
||||
msgctxt "All permissions granted"
|
||||
msgid "full"
|
||||
msgstr "كامل"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:306
|
||||
msgctxt "Select individual permissions manually"
|
||||
msgid "individual"
|
||||
msgstr "فرد"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:65
|
||||
msgctxt "Some permissions granted"
|
||||
msgid "partial (%d/%d)"
|
||||
msgstr "جزئي (٪ d /٪ d)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:92
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:111
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:305
|
||||
msgctxt "Only read permissions granted"
|
||||
msgid "readonly"
|
||||
msgstr "قراءة فقط"
|
@ -1,145 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2020-05-22 12:40+0000\n"
|
||||
"Last-Translator: Stefan M <sm@voip-office.eu>\n"
|
||||
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsacl/bg/>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.1-dev\n"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/luci/menu.d/luci-app-acl.json:3
|
||||
msgid "ACL Settings"
|
||||
msgstr "Настройки ACL (списъци за контрол на достъпа)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:78
|
||||
msgid "ACL group"
|
||||
msgstr "ACL група (списъци за контрол на достъпа)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:80
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:302
|
||||
msgid "Access level"
|
||||
msgstr "Ниво на достъп"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:266
|
||||
msgid "Cannot encrypt plaintext password since uhttpd is not installed."
|
||||
msgstr ""
|
||||
"Текстът на паролата не може да бъде кодиран, защото uhttpd не е инсталиран."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:79
|
||||
msgid "Description"
|
||||
msgstr "Описание"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/rpcd/acl.d/luci-app-acl.json:3
|
||||
msgid "Grant access to ACL configuration"
|
||||
msgstr "Позволи достъп до ACL конфигурацията (списъци за контрол на достъпа)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:215
|
||||
msgid "Login name"
|
||||
msgstr "Потребителско име"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:205
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "LuCI Logins"
|
||||
msgstr "LuCI Потребителски имена"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "New account"
|
||||
msgstr "Нов акаунт"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:244
|
||||
msgid "Password value"
|
||||
msgstr "Стойност на паролата"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:218
|
||||
msgid "Password variant"
|
||||
msgstr "Вариант на паролата"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:296
|
||||
msgid "Read access"
|
||||
msgstr "Достъп за четене"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:288
|
||||
msgid "Session timeout"
|
||||
msgstr "Прекъсване на сесията след"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:86
|
||||
msgctxt "Set all permissions in the table below to one of the given values"
|
||||
msgid "Set all:"
|
||||
msgstr "Промени всички:"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:178
|
||||
msgid ""
|
||||
"The LuCI ACL management is in an experimental stage! It does not yet work "
|
||||
"reliably with all applications"
|
||||
msgstr ""
|
||||
"Управлението на ACL (списъци за контрол на достъпа) в LuCI е все още в "
|
||||
"експериментална фаза! Все още не работи надеждно при всички приложения"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:258
|
||||
msgid "The password may not start with \"$p$\"."
|
||||
msgstr "Паролата не може да започва с \"$p$\"."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "The system account to use the password from"
|
||||
msgstr "Системния акаунт от който да се използва паролата"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "UNIX account"
|
||||
msgstr "UNIX акаунт"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:281
|
||||
msgid "Unable to encrypt plaintext password: %s"
|
||||
msgstr "Текстовата парола не може да се кодира: %s"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:220
|
||||
msgid "Use UNIX password in /etc/shadow"
|
||||
msgstr "Използвай UNIX паролата от /etc/shadow"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:221
|
||||
msgid "Use encrypted password hash"
|
||||
msgstr "Използвай кодиран password hash"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:299
|
||||
msgid "Write access"
|
||||
msgstr "Достъп за променяне"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:67
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:89
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:110
|
||||
msgctxt "No permissions granted"
|
||||
msgid "denied"
|
||||
msgstr "отказан"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:293
|
||||
msgid "does not expire"
|
||||
msgstr "не изгубва валидност"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:63
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:95
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:112
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:304
|
||||
msgctxt "All permissions granted"
|
||||
msgid "full"
|
||||
msgstr "пълен"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:306
|
||||
msgctxt "Select individual permissions manually"
|
||||
msgid "individual"
|
||||
msgstr "индивидуален"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:65
|
||||
msgctxt "Some permissions granted"
|
||||
msgid "partial (%d/%d)"
|
||||
msgstr "частичен (%d/%d)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:92
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:111
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:305
|
||||
msgctxt "Only read permissions granted"
|
||||
msgid "readonly"
|
||||
msgstr "само четене"
|
@ -1,142 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2021-10-08 17:53+0000\n"
|
||||
"Last-Translator: Rayhan Nabi <rayhanjanam@gmail.com>\n"
|
||||
"Language-Team: Bengali (Bangladesh) <https://hosted.weblate.org/projects/"
|
||||
"openwrt/luciapplicationsacl/bn_BD/>\n"
|
||||
"Language: bn_BD\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.9-dev\n"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/luci/menu.d/luci-app-acl.json:3
|
||||
msgid "ACL Settings"
|
||||
msgstr "ACL সেটিংস"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:78
|
||||
msgid "ACL group"
|
||||
msgstr "ACL গ্রুপ"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:80
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:302
|
||||
msgid "Access level"
|
||||
msgstr "অ্যাক্সেস লেভেল"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:266
|
||||
msgid "Cannot encrypt plaintext password since uhttpd is not installed."
|
||||
msgstr "প্লেইনটেক্সট পাসওয়ার্ড এনক্রিপ্ট হচ্ছে না যেহেতু uhttpd ইনস্টল করা নেই।"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:79
|
||||
msgid "Description"
|
||||
msgstr "বর্ণনা"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/rpcd/acl.d/luci-app-acl.json:3
|
||||
msgid "Grant access to ACL configuration"
|
||||
msgstr "ACL কনফিগারেশনে অ্যাক্সেস মঞ্জুর করুন"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:215
|
||||
msgid "Login name"
|
||||
msgstr "লগইন নাম"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:205
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "LuCI Logins"
|
||||
msgstr "LuCI লগইন"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "New account"
|
||||
msgstr "নতুন একাউন্ট"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:244
|
||||
msgid "Password value"
|
||||
msgstr "পাসওয়ার্ডের মান"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:218
|
||||
msgid "Password variant"
|
||||
msgstr "পাসওয়ার্ডের প্রকারভেদ"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:296
|
||||
msgid "Read access"
|
||||
msgstr "পড়ার অনুমতি"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:288
|
||||
msgid "Session timeout"
|
||||
msgstr "সময়সীমা শেষ"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:86
|
||||
msgctxt "Set all permissions in the table below to one of the given values"
|
||||
msgid "Set all:"
|
||||
msgstr "সব সেট করুন:"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:178
|
||||
msgid ""
|
||||
"The LuCI ACL management is in an experimental stage! It does not yet work "
|
||||
"reliably with all applications"
|
||||
msgstr ""
|
||||
"LuCI ACL ব্যবস্থাপনা পরীক্ষামূলক পর্যায়ে রয়েছে! এটি এখনও সব অ্যাপ্লিকেশনের সাথে "
|
||||
"নির্ভরতার সাথে কাজ করেনা"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:258
|
||||
msgid "The password may not start with \"$p$\"."
|
||||
msgstr "পাসওয়ার্ডের শুরুতে \"$p$\" পরিহার করুন।"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "The system account to use the password from"
|
||||
msgstr "যে সিস্টেম অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করবেন"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "UNIX account"
|
||||
msgstr "UNIX অ্যাকাউন্ট"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:281
|
||||
msgid "Unable to encrypt plaintext password: %s"
|
||||
msgstr "এই প্লেইনটেক্সট পাসওয়ার্ড এনক্রিপ্ট করা যাচ্ছে না: %s"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:220
|
||||
msgid "Use UNIX password in /etc/shadow"
|
||||
msgstr "/etc/shadow তে UNIX পাসওয়ার্ড ব্যবহার করুন"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:221
|
||||
msgid "Use encrypted password hash"
|
||||
msgstr "এনক্রিপ্টেড পাসওয়ার্ড হ্যাশ ব্যবহার করুন"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:299
|
||||
msgid "Write access"
|
||||
msgstr "পরিবর্তনের অ্যাক্সেস"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:67
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:89
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:110
|
||||
msgctxt "No permissions granted"
|
||||
msgid "denied"
|
||||
msgstr "অস্বীকৃত"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:293
|
||||
msgid "does not expire"
|
||||
msgstr "চিরস্থায়ী"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:63
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:95
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:112
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:304
|
||||
msgctxt "All permissions granted"
|
||||
msgid "full"
|
||||
msgstr "সব"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:306
|
||||
msgctxt "Select individual permissions manually"
|
||||
msgid "individual"
|
||||
msgstr "পৃথকভাবে"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:65
|
||||
msgctxt "Some permissions granted"
|
||||
msgid "partial (%d/%d)"
|
||||
msgstr "আংশিক (%d/%d)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:92
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:111
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:305
|
||||
msgctxt "Only read permissions granted"
|
||||
msgid "readonly"
|
||||
msgstr "শুধুমাত্র পাঠযোগ্য"
|
@ -1,144 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2021-09-22 10:48+0000\n"
|
||||
"Last-Translator: Dino Mesic <undeene@gmail.com>\n"
|
||||
"Language-Team: Bosnian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsacl/bs/>\n"
|
||||
"Language: bs\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.9-dev\n"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/luci/menu.d/luci-app-acl.json:3
|
||||
msgid "ACL Settings"
|
||||
msgstr "ACL Postavke"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:78
|
||||
msgid "ACL group"
|
||||
msgstr "ACL Grupa"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:80
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:302
|
||||
msgid "Access level"
|
||||
msgstr "Nivo pristupa"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:266
|
||||
msgid "Cannot encrypt plaintext password since uhttpd is not installed."
|
||||
msgstr ""
|
||||
"Ne može se šifrirati lozinka otvorenog teksta jer uhttpd nije instaliran."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:79
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/rpcd/acl.d/luci-app-acl.json:3
|
||||
msgid "Grant access to ACL configuration"
|
||||
msgstr "Dozvoli pristup ACL postavkama"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:215
|
||||
msgid "Login name"
|
||||
msgstr "Ime za prijavu"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:205
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "LuCI Logins"
|
||||
msgstr "LuCI prijave"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "New account"
|
||||
msgstr "Novi racun"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:244
|
||||
msgid "Password value"
|
||||
msgstr "Vrijednost lozinke"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:218
|
||||
msgid "Password variant"
|
||||
msgstr "Varijanta lozinke"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:296
|
||||
msgid "Read access"
|
||||
msgstr "Pristup za citanje"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:288
|
||||
msgid "Session timeout"
|
||||
msgstr "Vremensko ogranicenje sesije"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:86
|
||||
msgctxt "Set all permissions in the table below to one of the given values"
|
||||
msgid "Set all:"
|
||||
msgstr "Postavi sve:"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:178
|
||||
msgid ""
|
||||
"The LuCI ACL management is in an experimental stage! It does not yet work "
|
||||
"reliably with all applications"
|
||||
msgstr ""
|
||||
"Upravljanje LuCI ACL-om je u eksperimentalnoj fazi! Još ne radi pouzdano sa "
|
||||
"svim aplikacijama"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:258
|
||||
msgid "The password may not start with \"$p$\"."
|
||||
msgstr "Lozinka ne moze poceti sa \"$p$\"."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "The system account to use the password from"
|
||||
msgstr "Sistemski račun za korištenje lozinke"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "UNIX account"
|
||||
msgstr "UNIX racun"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:281
|
||||
msgid "Unable to encrypt plaintext password: %s"
|
||||
msgstr "Nije moguće šifrirati lozinku otvorenog teksta: %s"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:220
|
||||
msgid "Use UNIX password in /etc/shadow"
|
||||
msgstr "Koristi UNIX lozinku u /etc/shadow"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:221
|
||||
msgid "Use encrypted password hash"
|
||||
msgstr "Koristite šifrirani hash lozinke"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:299
|
||||
msgid "Write access"
|
||||
msgstr "Pristup za pisanje"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:67
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:89
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:110
|
||||
msgctxt "No permissions granted"
|
||||
msgid "denied"
|
||||
msgstr "Odbijeno"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:293
|
||||
msgid "does not expire"
|
||||
msgstr "ne istice"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:63
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:95
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:112
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:304
|
||||
msgctxt "All permissions granted"
|
||||
msgid "full"
|
||||
msgstr "sve"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:306
|
||||
msgctxt "Select individual permissions manually"
|
||||
msgid "individual"
|
||||
msgstr "zasebno"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:65
|
||||
msgctxt "Some permissions granted"
|
||||
msgid "partial (%d/%d)"
|
||||
msgstr "djelimicno (%d/%d)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:92
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:111
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:305
|
||||
msgctxt "Only read permissions granted"
|
||||
msgid "readonly"
|
||||
msgstr "samo za citanje"
|
@ -1,145 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2020-04-30 05:51+0000\n"
|
||||
"Last-Translator: Roger Pueyo Centelles <weblate@rogerpueyo.com>\n"
|
||||
"Language-Team: Catalan <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsacl/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.0.2\n"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/luci/menu.d/luci-app-acl.json:3
|
||||
msgid "ACL Settings"
|
||||
msgstr "Paràmetres d'ACL"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:78
|
||||
msgid "ACL group"
|
||||
msgstr "Grup ACL"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:80
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:302
|
||||
msgid "Access level"
|
||||
msgstr "Nivell d'accés"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:266
|
||||
msgid "Cannot encrypt plaintext password since uhttpd is not installed."
|
||||
msgstr ""
|
||||
"No s'ha pogut encriptar la contrasenya perquè l'uhttpd no està instal·lat."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:79
|
||||
msgid "Description"
|
||||
msgstr "Descripció"
|
||||
|
||||
#: applications/luci-app-acl/root/usr/share/rpcd/acl.d/luci-app-acl.json:3
|
||||
msgid "Grant access to ACL configuration"
|
||||
msgstr "Atorgar accés a la configuració de l'ACL"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:215
|
||||
msgid "Login name"
|
||||
msgstr "Nom d'inici de sessió"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:205
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "LuCI Logins"
|
||||
msgstr "Inicis de sessió a LuCI"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:212
|
||||
msgid "New account"
|
||||
msgstr "Nou compte"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:244
|
||||
msgid "Password value"
|
||||
msgstr "Valor de la contrasenya"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:218
|
||||
msgid "Password variant"
|
||||
msgstr "Variant de la contrasenya"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:296
|
||||
msgid "Read access"
|
||||
msgstr "Accés de lectura"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:288
|
||||
msgid "Session timeout"
|
||||
msgstr "Temps d'espera de la sessió"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:86
|
||||
msgctxt "Set all permissions in the table below to one of the given values"
|
||||
msgid "Set all:"
|
||||
msgstr "Establir tot:"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:178
|
||||
msgid ""
|
||||
"The LuCI ACL management is in an experimental stage! It does not yet work "
|
||||
"reliably with all applications"
|
||||
msgstr ""
|
||||
"La gestió de l'ACL de LuCI es troba en fase experimental! Encara no funciona "
|
||||
"fiablement amb totes les aplicacions"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:258
|
||||
msgid "The password may not start with \"$p$\"."
|
||||
msgstr "La contrasenya no hauria de començar amb \"$p$."
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "The system account to use the password from"
|
||||
msgstr "Compte del sistema del qual emprar la contrasenya"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:232
|
||||
msgid "UNIX account"
|
||||
msgstr "Compte UNIX"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:281
|
||||
msgid "Unable to encrypt plaintext password: %s"
|
||||
msgstr "No s'ha pogut encriptar la contrasenya en text pla: %s"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:220
|
||||
msgid "Use UNIX password in /etc/shadow"
|
||||
msgstr "Empra la contrasenya UNIX a /etc/shadow"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:221
|
||||
msgid "Use encrypted password hash"
|
||||
msgstr "Fes servir el resum (hash) de la contrasenya xifrada"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:299
|
||||
msgid "Write access"
|
||||
msgstr "Accés d'escriptura"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:67
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:89
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:110
|
||||
msgctxt "No permissions granted"
|
||||
msgid "denied"
|
||||
msgstr "denegat"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:293
|
||||
msgid "does not expire"
|
||||
msgstr "no caduca"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:63
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:95
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:112
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:304
|
||||
msgctxt "All permissions granted"
|
||||
msgid "full"
|
||||
msgstr "complet"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:306
|
||||
msgctxt "Select individual permissions manually"
|
||||
msgid "individual"
|
||||
msgstr "individual"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:65
|
||||
msgctxt "Some permissions granted"
|
||||
msgid "partial (%d/%d)"
|
||||
msgstr "parcial (%d/%d)"
|
||||
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:92
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:111
|
||||
#: applications/luci-app-acl/htdocs/luci-static/resources/view/system/acl.js:305
|
||||
msgctxt "Only read permissions granted"
|
||||
msgid "readonly"
|
||||
msgstr "només-lectura"
|