1、基础掩码只能占一位
2、可以加任何偏移,但是运算时需要将偏移减去,不然会影响运算结果
3、位运算 & 用来区分该掩码是否属于某个基类掩码,| 运算则是定义某个组合掩码
You can suck it anywhere
1、基础掩码只能占一位
2、可以加任何偏移,但是运算时需要将偏移减去,不然会影响运算结果
3、位运算 & 用来区分该掩码是否属于某个基类掩码,| 运算则是定义某个组合掩码
打开Git Bash运行如下命令
export GIT_SSL_NO_VERIFY=true
git config –global http.sslVerify “false”
在windows的命令行中,进入到git命令所在的磁盘位置,执行下面的git命令
git config –global http.sslVerify false
右值引用实际是基于左值引用进一步延伸出来的,很有意思,左值引用的形式一般为:
int &a = XXX;
其中XXX可以是常量和变量的组合
而右值引用是:
int &&a = 10;
显而易见,右边必须是一个值,即所谓右值
修改左值引用,就是修改变量的组合形式,或者说改变对变量的引用
修改右值引用,就是修改值对于变量的所有权,或者说修改变量数据所有权。
// 设置PLC连接
MinthPlc::getInstance ()->setDB (15); /*!< 修改了mDBNumber成员变量的值 */
MinthPlc::getInstance ()->setPlc ("192.168.10.2", "0", "0");
// 开启PLC线程,开始读写周期
MinthPlc::getInstance ()->start ();
步骤:
例子:
以下代码在MinthPlc.h中的MinthPlc类中定义:
private:
float mCurSpeed; /*!< 读取到的PLC中的速度值 */
int mDBNumber; /*!< DB号,就是DB15.D174 中的DB15 D174代表首地址在174,大小为4字节*/
QString mRack; /*!< PLC Rack号 一般填0即可 */
QString mSlot; /*!< PLC Slot号 一般填0即可 */
QString mIp; /*!< PLC所在的网络IP地址 */
public:
float getSpeed () const
{
return mCurSpeed;
}
以下代码在handleReadWrite中编写:
mDBNumber = 15; /*!< 指定读取DB15 */
void *data = malloc (sizeof (float)); /*!< 浮点数占4个字节 */
mClient->DBRead (mDBNumber, 174, 4,data);
float targetData = 0.0;
memcpy(&targetData, data, sizeof(float)); /*!< 将读到的数据转换为float类型 */
mSpeedRecv = qToBigEndian(targetData); /*!< 读取数据,将读到的数据从大端序转成小端序,才可以正常读取 */
free (data); /*!< 使用完申请内存之后需要及时释放 */
float speed = MinthPlc::getInstance ()->getSpeed ();
可以打印出来查看效果。
步骤:
1、控制写入变量的信号
2、要设置的值
以下代码在MinthPlc.h中的MinthPlc类中定义:
private:
bool mChangeSpeed; /*!< 控制写入变量的开关 */
float mSpeed; /*!< 要写入的值 */
public:
void setSpeed (float value)
{
mSpeed = value; /*!< 设置写入值 */
mChangeSpeed = true; /*!< 打开该变量的写入开关 */
}
以下代码在handleReadWrite中编写:
if (mChangeSpeed) {
void * data = malloc (sizeof(float)); /*!< 分配一个4字节的内存空间 */
qToBigEndian(mSpeedSend, data); /*!< 将本地值转换为大端值写入 */
mDBNumber = 15;
mClient->DBWrite (mDBNumber, 138, 4, data); /*!< 写入首地址138,大小为4字节的区域 */
mChangeSpeed = false; /*!< 写入开关置0,防止重复写入 */
free (data); /*!< 释放临时申请的内存 */
}
MinthPlc::getInstance ()->setSpeed (6.32);
调用之后,在当前读取周期到下一个周期内会生效,可以去PLC的屏幕上查看效果
最短路径,顾名思义,关注的是两点之间的线段的权值大小集合最优
最佳路径则是说明某个节点是一个比较好的选择,关注的是这个节点的价值
A*算法则是基于BFS综合考虑了最短路径和最佳路径的寻路算法
总结来说就是将关注点权和线权结合到了一起
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
$ hexo new "My New Post"
More info: Writing
$ hexo server
More info: Server
$ hexo generate
More info: Generating
$ hexo deploy
More info: Deployment