串口通信-win7通过串口连接linux外设后,如何登录root用户?

问题描述

win7通过串口连接linux外设后,如何登录root用户?

我想自己做一个MFC小工具,功能可以概括为"简易版secureCRT";
现在串口已经通过CreateFile()连接成功,超时、奇偶校验、波特率这些设置貌似也没有问题了。
接下来,我如何得到linux的login:和password:提示符并把用户名root和密码发出去?如何远程打开一个终端从而可以向内核发送linux命令(比如ls、cd这些)?
贴上部分代码吧:

 BOOL Cserial_comm_win_1Dlg::OnInitDialog(){
    CDialogEx::OnInitDialog();

    // TODO: 在此添加额外的初始化代码
    hCom=CreateFile(_T("\\.\COM19"),                 //COM1口
                    GENERIC_READ|GENERIC_WRITE, //允许读和写
                    0,                          //独占方式
                    NULL,                       //引用安全性属性结构,缺省值为NULL
                    OPEN_EXISTING,              //打开而不是创建
                    0,                          //同步方式 0
                    NULL);
    if(hCom==(HANDLE)-1){
        AfxMessageBox(_T("打开COM失败!"));
        return FALSE;
    }

    SetupComm(hCom,1024,1024);                  //输入缓冲区和输出缓冲区的大小都是1024
    COMMTIMEOUTS TimeOuts;
    //设定读超时
    TimeOuts.ReadIntervalTimeout=MAXDWORD;      //在读一次输入缓冲区的内容后读操作就立即返回,而不管是否读入了要求的字符。
    TimeOuts.ReadTotalTimeoutMultiplier=0;
    TimeOuts.ReadTotalTimeoutConstant=0; 

    //设定写超时
    TimeOuts.WriteTotalTimeoutMultiplier=100;
    TimeOuts.WriteTotalTimeoutConstant=500;
    SetCommTimeouts(hCom,&TimeOuts);            //设置超时 

    DCB dcb;
    GetCommState(hCom,&dcb);
    dcb.BaudRate=115200;                            //波特率为9600 !!!!!!!!!!!!
    dcb.ByteSize=8;                             //每个字节有8位
    dcb.Parity=NOPARITY;                        //无奇偶校验位
    dcb.StopBits=1;                 //TWOSTOPBITS两个停止位 !!!!!!!!!!!!!!!
    SetCommState(hCom,&dcb);
    PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);//清除串口句柄的输入输出缓冲区
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

void Cserial_comm_win_1Dlg::OnBnClickedButton1(){//“发送”按钮
    // TODO: 在此添加控件通知处理程序代码
    CString command;
    GetDlgItemText(IDC_EDIT1,command);

    char lpOutBuffer[100];
    memset(lpOutBuffer,0,100);

    int strLength= command.GetLength() + 1;
    strncpy(lpOutBuffer,command,strLength);

    DWORD dwBytesWrite=100;
    COMSTAT ComStat;
    DWORD dwErrorFlags;
    BOOL bWriteStat;
    ClearCommError(hCom,&dwErrorFlags,&ComStat);
    bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL);
    if(!bWriteStat){
        AfxMessageBox(_T("写串口失败!"));
    }
}

void Cserial_comm_win_1Dlg::OnBnClickedButton2(){//“接收”按钮
    // TODO: 在此添加控件通知处理程序代码
    char str_s[100];
    memset(str_s,'',100);
    DWORD wCount=100;//读取的字节数
    BOOL bReadStat;
    bReadStat=ReadFile(hCom,str_s,wCount,&wCount,NULL);
    if(!bReadStat)
        AfxMessageBox(_T("读串口失败!"));
    PurgeComm(hCom, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
    CString str;
    str=str_s;
    SetDlgItemText(IDC_EDIT1,str);
    UpdateData(FALSE);
}


目前的界面很简单,我想通过文本框获取命令输入,返回的字符串简单地在文本框呈现。不知这想法是否可行,请大神指点一二

解决方案

没有人回答么。。。
secureCRT是如何把串口输入输出缓冲区的内容“实时”映射到界面文本框的?
真是想不通啊!!~~~~~
我发送任何命令,输出缓冲区都读不到任何内容,这是怎么回事啊

解决方案二:

你需要登陆的话,需要实现ssh功能,才能发送用户名,密码等信息。

解决方案三:

你确认secureCRT,同样的波特率等设置,同样的串口设置能出现login么,如果它的能,按道理你也是能的

时间: 2024-10-31 17:15:40

串口通信-win7通过串口连接linux外设后,如何登录root用户?的相关文章

c#-C#串口通信问题,串口助手调试和真机测试不一样

问题描述 C#串口通信问题,串口助手调试和真机测试不一样 我用的两台电脑装串口助手来测试发送信息,发送的是16进制信息.通过串口调试助手测试发送的信息是没有问题的.然后链接机器发送信息,机器没反映,用串口助手发送信息机器能正常运行,大神能指出哪里可能出问题? 解决方案 C# 串口通信调试助手1编程练习:串口通信调试助手 解决方案二: 串口助手发送能正常,那就建议看看你的串口初始化吧.

linux命令-Linux虚拟机 中切换到root用户问题

问题描述 Linux虚拟机 中切换到root用户问题 用su命令切换到root时,输入正确密码也总是提示密码不正确 查了网上的 说要修改/etc/passwd 文件 可是也只有root用户能修改啊 我现在根本进不去root用户 解决方案 linux如何切换到root用户linux如何切换到root用户Linux中的用户切换(root授权) 解决方案二: 虚拟机的话,你是密码忘记了吗? 安装的时候是可以设置的呀,重新安装一个挺快的,记一下密码 解决方案三: 看看鸟哥私房菜,就可一修改了

C#结合串口通信类实现串口通信源代码

mycom是串口通信类.下面是串口通讯测试程序的源代码,将mycom类放在此项目中,可以实现简单的串口通信,希望读者能通过这个程序对串口通信过程有一个初步的了解: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading; namesp

串口通信-casio dt930 串口发送数据

问题描述 casio dt930 串口发送数据 最近在做 casio dt930的盘点机,有一个问题是需要和pc端的一个系统进行数据对接,是直接将保存的数据通过串口通信发送出来,这该如何操作?谢谢了.

串口通信-MFC的串口接收GPS的问题

问题描述 MFC的串口接收GPS的问题 硬件:工控机(5个USB串口),GPS模块(USB口),一对无线串口通信模块(USB口) 软件:一个双串口软件,串口调试助手 问题:软件打开GPS的串口收不到数据,但是打开无线通信模块,通过另一台电脑可以收到数据.GPS在串口调试助手却是可以收到数据的. 最奇怪的是如果将软件在笔记本电脑上运行,两个串口是都收得到数据的. 软件程序也没有报错,调试了半天,GPS串口是打开的,就是收不到数据.也不知道怎么调试的.... 总之,就是GPS模块在工控机的MFC软件

Android 串口通信编程及串口协议分析_Android

Android 串口通信编程:嵌入式编程和可穿戴设备及智能设备都会用到串口,这里就带大家分析下, 一,android串口通信 串口通信采用一个第三方开源项目,实现串口数据收发. 1. 使用了http://code.google.com/p/android-serialport-api/的项目的serialport api和jni: 2. 支持4串口同时收发,有定时自动发送功能,收发模式可选Txt或Hex模式: 3.  n,8,1,没得选: 4. 为减轻界面卡顿的情况,接收区的刷新采用单独的线程进

java 实现串口通信 循环打开串口 内存一直在增加 最后溢出

问题描述 我每20秒取一次串口列表,然后打开每一个串口,向串口里写数据,再把串口关闭掉.可是发现一个问题.内存一直在增长,最后溢出.报nUnsetOwner: Error 8 in MapViewOfFileException in thread "Thread-2" java.lang.OutOfMemoryError: unable to create new native thread 有谁遇到过这样的问题. 问题补充:import java.util.Vector;public

串口通信-android蓝牙串口接收数据

问题描述 android蓝牙串口接收数据 最近在做android手机蓝牙和单片机通信,一直被接收数据完整性这个问题困扰. 为了使一次通信的包保持完整,我就构思了发送12位的包,包头(1)+数据(8)+校验(2)+包尾(1),校验为求和校验.单片机发送数据的函数如下 void SendString(uchar *dat) //发送12位的包 包头(1)+数据(8)+校验(2)+包尾(1) { uchar i,j; uint check=0; //求和校验 SendChar(0x01); //0x0

串口通信校验问题-请教串口校验问题(急急急)

问题描述 请教串口校验问题(急急急) 使用串口精灵截获指令如下:(上位机->下位机)7E C1 02 03 58 C0 01 04 C3 01 09 E7 1E 7E7E C1 02 03 59 C0 01 04 C3 01 09 32 81 7E7E C1 02 03 5A C0 01 04 C3 01 09 5C 29 7E7E C1 02 03 5B C0 01 04 C3 01 09 89 B6 7E......基本都是这样的,当然也有的是发送和返回可以看出58.59....是累加的:倒