【华清远见实训】2022-5-18

1、C语言项目代码运行步骤

1)保证虚拟机和主机网络互通

在windows下查看ip:
win + R : 运行
输入cmd,打开windows命令窗口
输入ipconfig

在这里插入图片描述

  • ping命令:测试网络连通性
    导致ping不通的原因:
    1)双方不在同网段
    2)防火墙拦截

在这里插入图片描述
ctrl + c //结束进程 发送杀死进程的信号

2)让ubuntu支持mqtt
将mqtt的库文件导入到根目录下的库中
paho.mqtt.c-1.3.0.tar.gz //压缩好的mqtt库文件
先将该压缩包移动到虚拟机中 (拖拽/终端复制/共享文件夹)
把include中所有文件拷贝到/usr/include目录中:

sudo  cp  include/*  /usr/include

把lib中所有内容拷贝到/usr/lib目录中即可在代码中直接引用。拷贝命令如下:

 sudo  cp  -d  lib/*so*  /usr/lib  

3)将灯控实验的程序源码移动到虚拟机中
先将smarthome.conf文件中的ip修改成个人主机ip
在这里插入图片描述
输入make指令,对工程进行编译。
生成名为lamp的可执行程序
./lamp执行即可在虚拟仿真中看到现象。

2、C语言应用层代码具体实现

灯控实验 - 远程控制功能实现

  • 编码思路:

     1)连接MQTT
     mqtt_init();   //初始化mqtt
     2)设置好发布消息的Topic
     3)按json协议格式发送控制指令
     int mqtt_publish(const char *topic, char *msg)  
     功能:向mqtt发布一条消息
     参数:const char *topic 话题, char *msg 消息
    
  • C语言输入输出

printf 格式化输出函数
头文件:#include<stdio.h>
函数原型:int printf(const char *format, ...); 
功能:向终端输出指定格式的内容
参数:格式,要输出的变量或内容
      %d  -- 十进制整数
	  %f  -- 小数
	  %c  -- 字符
	  %s  -- 字符串
	  %p  -- 地址
	  %#x -- 十六进制数
	  %#o -- 八进制数
      ... 

scanf  格式化输入函数
int scanf(const char *format, ...);
功能:按照指定格式从终端输入数据
参数:格式,输入的目标地址
  • 变量数据类型:
	char    字符型           1字节    
	short   短整型           2字节  
	int     整型             4字节   
	long    长整型           4字节(32位os)
	float   单精度浮点型     4字节
	double  双精度浮点型     8字节 

以下代码可以控制灯的亮灭

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mqtt.h"
#include "parse_config.h"
#include <unistd.h>

int main(int argc, char *argv[])
{
	//char ctrlbuf[10] = {0};
	int ctrl = 0;
	printf("请输入控制指令:(1.开灯 2.关灯 3.退出)\n");
	scanf("%d",&ctrl);
	if(mqtt_init() != 0)
	{
		printf("连接失败!\n");
		return 0;
	}
	if(ctrl == 1){
		mqtt_publish("ScratchToSoftWare","{\"lamp\":true,\"id\":0}");
		//推送开灯指令
	}else if(ctrl == 2)
	{
		mqtt_publish("ScratchToSoftWare","{\"lamp\":false,\"id\":0}");
		//推送关灯指令
	}else if(ctrl == 3)
	{
		printf("控制系统退出!\n");
		return 0;
	}else
	{
		printf("指令有误!\n");
	}
	return 0;
}

在这里插入图片描述
此时灯亮
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容[1],华清远见实训手册涵盖了以下内容: 1. Linux操作系统简介 2. Linux基本操作命令,包括用户操作和文件操作 3. vi编辑器的使用 4. 简单C语言编程步骤 根据引用和引用,Linux是一种操作系统,它向用户提供操作接口,并管理计算机的软件和硬件资源。Linux具有开源、免费、可裁剪和可移植的特点。 对于Linux基本操作命令,可以使用终端(Terminal)来执行命令。终端是命令行解释器,它显示命令提示符,其中包括当前用户、系统名和当前路径。例如,“hq @ ubuntu16 : ~ $”表示当前用户是hq,系统名是ubuntu16,当前路径是家目录(/home/hq)。一些常用的命令包括: - ls:查看文件列表,使用ls -a可以查看所有文件(包括隐藏文件),使用ls -l可以查看文件的详细信息。 - cd:跳转到指定路径,使用cd 路径名可以跳转到指定路径下,使用cd ..可以跳转到上一层目录,使用.表示当前目录,使用..表示上一级目录。 - touch:新建普通文件,使用touch 文件名.后缀可以新建普通文件。 - mkdir:新建目录文件,使用mkdir 目录文件名可以新建目录文件。 - rm:删除文件,使用rm 普通文件名可以删除普通文件,使用rm -r 目录文件名可以删除文件夹,使用rm -f 普通文件名可以强制删除普通文件,使用rm *.txt可以删除所有的.txt文件,使用rm !(1.txt)可以删除除了1.txt之外的所有文件。 - cp:复制文件,使用cp 普通文件名 指定路径可以将普通文件复制到指定路径下,使用cp -r 目录文件名 指定路径可以将目录文件复制到指定路径下。 - mv:移动文件,使用mv 文件名 指定路径可以将文件剪切到指定路径下,使用mv 源文件名 新文件名可以重命名文件。 - man:查看命令的帮助手册,例如使用man ls可以查看ls命令的详细介绍和选项操作。 根据引用,华清远见实训手册还包括了简单的C语言编程步骤,具体的步骤内容需要参考实训手册中的详细说明。 总结起来,华清远见机械臂实训手册涵盖了Linux操作系统简介、Linux基本操作命令、vi编辑器的使用和简单C语言编程步骤等内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值