shell脚本调JAVA程序,获取JAVA程序返回值并echo输出

shell脚本调JAVA程序,获取JAVA程序返回值并echo输出,第1张

先运行java程序,然后用echo $获取程序的运行结果,如果是字符串,可以使用

result=$(java -jar xxxjar)来获取,当然这只是示例,$()中的命令使可以随便修改的

AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行 *** 作,处理与语音电话、短信和数据。

关于AT命令:

Android系统与AT命令

对于智能手机,AP和BP分离的情况,在AP上的系统通过串口和BP通信是个不错方式。在Android的源码中有一个内部包comandroidinternaltelephony中有对AT命令的封装和解析,但这种internal的包开发者不能调用的SDK部分,可以用来封装ROM。这说明Android对AT command的方式是支持的。

对于Android如何调用AT command

用root登录命令行,直接对串口进行 *** 作,如echo -e "AT\r" > /dev/smd0

具体的串口,不同设备会有不同,甚至不一定会提供。这种方式,开发者是可以调用的,通过Runtimeexec直接执行命令行命令,但要求是root,例如echo -e "ATD123456789;\r" > /dev/smd0,拨打123456789的号码。

目前最新的AT命令标准发布与2014627,似乎还活得挺滋润的。但是给出的keywords是UMTS, GSM, command, terminal, LTE这说明CDMA确实很可能不是采用AT命令的方式。

首先要确定你的串口处于raw模式,可以透传数据。(stty -F )

使用echo -e -n "\x1\x2\x3\xaa\x55" > ttyUSB0

-e 是转义,可以把x1 (x小写)转为16进制,

-n是去掉echo 默认输出的回车换行,如果不加-n的话,你的串口数据会多出回车换行字符0d 0a

不用中断 也行

#include <msp430x14xh>

#define uint unsigned int

#define uchar unsigned char

void int_clk()

{

uchar i;

BCSCTL1&=~XT2OFF; //打开XT振荡器

BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M

do

{

IFG1 &= ~OFIFG; //清除振荡错误标志

for(i = 0; i < 100; i++)

_NOP(); //延时等待

}

while ((IFG1 & OFIFG) != 0); //如果标志为1继续循环等待

IFG1&=~OFIFG;

}

int_usart()

{

U0CTL|=SWRST;//复位串口

U0CTL|=CHAR; //8位数据

U0TCTL|=SSEL1;//select SMCLK AS CLK

U0BR0=0Xa0;

U0BR1=0X01;

UMCTL0=0Xc0;//19200

ME1|=UTXE0+URXE0;//使能接收和发送

U0CTL&=~SWRST;//清除串口复位信号

IE1|=URXIE0;//使能接收中断

P3SEL|=BIT4;

P3SEL|=BIT5;//选择I/O口使用扩展功能和方向

P3DIR|=BIT4;

}

sent_byte(uchar data)

{

while((IFG1&UTXIFG0)==0);//判断发送缓冲区是否结束

U0TXBUF=data;

}

#pragma vector=UART0RX_VECTOR

__interrupt void UART0_RX_ISR(void)

{

uchar data=0;

data=U0RXBUF; //读取接受到的数据并且发送到PC机

sent_byte( data);

}

int main( void )

{

WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

int_clk(); //系统时钟初始化

int_usart();//初始化串口

_EINT(); //使能中断

while(1);

}

根据Linux内核文档介绍:这是一组'魔术组合键',只要内核没有被完全锁住,不管内核在做什么事情,使用这些组合键可以立即打印出内核的信息。使用sysrq组合键是了解系统目前运行情况的最好方式。如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用sysrq键是一个比较好的方式。如何打开和关闭SysRq组合键为了安全起见,在红帽企业版Linux里面,默认SysRq组合键是关闭的。 打开这个功能,运行:# echo 1 > /proc/sys/kernel/sysrq关闭这个功能:# echo 0 > /proc/sys/kernel/sysrq如果想让此功能一直生效,在/etc/sysctlconf里面设置kernelsysrq的值为1 重新启动以后,此功能将会自动打开。kernelsysrq = 1因为打开sysrq键的功能以后,有终端访问权限的用户将会拥有一些特殊的功能。因此,除非是要调试,解决问题,一般情况下,不要打开此功能。如果一定要打开,请确保您的终端访问的安全性。如何触发一个sysrq事件有几种方式可以触发sysrq事件。在带有AT键盘的一般系统上,在终端上输入一下组合键:Alt+PrintScreen+[CommandKey]例如,要让内核导出内存信息(CommandKey "m"),您应该同时按下Alt 和 Print Screen 键,然后按下 m 键 提示: 此组合键在Xwindows上是无法使用的。所以,您先要切换到文本虚拟终端下。如果您现在是在图形界面,可以按Ctrl+Alt+F1切换到虚拟终端。在串口终端上,要想获得同样的效果,需要先在终端上发送Break信号,然后在5秒内输入sysrq组合键。如果您在机器上有root权限,您可以把commandkey字符写入到/proc/sysrq-trigger文件。这可以帮助您通过脚本或者您不在系统终端上的时候触发sysrq事件。# echo 'm' > /proc/sysrq-trigger当我触发一个sysrq事件的时候,接过保存在什么地方当一个sysrq命令被触发,内核将会打印信息到内核的环形缓冲并输出到系统控制台。此信息一般也会通过syslog输出到/var/log/messages有时候,可能系统已经无法响应,syslogd可能无法记录此信息。在这种情况下,建议您配置一个串口终端来收集这个信息。那些类型的sysrq事件可以被触发sysrq功能被打开后,有几种sysrq事件可以被触发。不同的内核版本可能会有些不同。但有一些是共用的: m - 导出关于内存分配的信息 t - 导出线程状态信息 p - 到处当前CPU寄存器信息和标志位的信息 c - 故意让系统崩溃(在使用netdump或者diskdump的时候有用) s - 立即同步所有挂载的文件系统 u - 立即重新挂载所有的文件系统为只读 b - 立即重新启动系统 o - 立即关机(如果机器配置并支持此项功能)

以上就是关于shell脚本调JAVA程序,获取JAVA程序返回值并echo输出全部的内容,包括:shell脚本调JAVA程序,获取JAVA程序返回值并echo输出、Android平台到底能不能通过串口发送AT指令呢,急!!!、求助shell echo “HEX字符串” 到串口ttyUSB0的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10131541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存