无需加入任何头文件,使用vm.
或者vm->
即可进行联想
有关于变量的全部函数均无需进行头文件引入等操作。
/**
* @brief 添加变量
* @param name 名称(用户自定义名称,唯一)
* @param type 设备变量类型(如:stt::DataType::D_INT)
* @param setting 设备变量配置(如:{"c":"06","a":"0","f":"1"} c是元件(16进制), a是地址(10进制),f是格式)
* @return 返回指定type的设备变量
*/
virtual Ivariable add(const string& name, uint8_t type, const string& setting="") throw()=0;
/**
* @brief 注册变量
* @param var 变量
* @return 变量指针
*/
virtual bool reg(Ivariable var) throw()=0;
/**
* @brief 获取变量
* @param name
* @return 变量指针
*/
virtual Ivariable get(const string& name)=0;
/**
* @brief 删除变量
* @param name
* @return 变量指针
*/
virtual bool remove(const string& name) = 0;
/**
* @brief 清除所有变量
* @return
*/
virtual bool clearAll() = 0;
/**
* @brief 保存所有(savable)变量
* @return
*/
virtual bool saveAll() = 0;
/**
* @brief 获取变量float值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getFloat(const string& name, float& v, bool immediate = false) = 0;
/**
* @brief 获取变量int值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getInt(const string& name, int& v, bool immediate = false) = 0;
/**
* @brief 获取变量long值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getLong(const string& name, int64_t& v, bool immediate = false) = 0;
/**
* @brief 获取变量char值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getChar(const string& name, string& v, bool immediate = false) = 0;
/**
* @brief 获取配方数据值
* @param name 变量名称
* @param row 行索引
* @param col 列索引
* @param v 赋值对象
* @return 是否成功
*/
virtual bool getTrcp(const string& name, int rowIndex, int colIndex, string& v) = 0;
/**
* @brief 设置变量float值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setFloat(const string& name, float v, bool immediate = false) = 0;
/**
* @brief 设置变量int值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setInt(const string& name, int v, bool immediate = false) = 0;
/**
* @brief 设置变量long值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setLong(const string& name, int64_t v, bool immediate = false) = 0;
/**
* @brief 设置变量char值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setChar(const string& name, const string& v, bool immediate = false) = 0;
/**
* @brief 设置变量配方值
* @param name 变量名称
* @param row 行索引
* @param col 列索引
* @param v 值
* @return 是否成功
*/
virtual bool setTrcp(const string& name, int rowIndex, int colIndex, const string& v) = 0;
/**
* @brief 获取变量float值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getFloat(const string& name, float& v, bool immediate = false) = 0;
/**
* @brief 获取变量int值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getInt(const string& name, int& v, bool immediate = false) = 0;
/**
* @brief 获取变量long值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getLong(const string& name, int64_t& v, bool immediate = false) = 0;
/**
* @brief 获取变量char值
* @param name 变量名称
* @param v 赋值对象
* @param imm 实时读取(设备变量有效)
* @return 是否成功
*/
virtual bool getChar(const string& name, string& v, bool immediate = false) = 0;
/**
* @brief 获取配方数据值
* @param name 变量名称
* @param row 行索引
* @param col 列索引
* @param v 赋值对象
* @return 是否成功
*/
virtual bool getTrcp(const string& name, int rowIndex, int colIndex, string& v) = 0;
/**
* @brief 设置变量float值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setFloat(const string& name, float v, bool immediate = false) = 0;
/**
* @brief 设置变量int值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setInt(const string& name, int v, bool immediate = false) = 0;
/**
* @brief 设置变量long值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setLong(const string& name, int64_t v, bool immediate = false) = 0;
/**
* @brief 设置变量char值
* @param name 变量名称
* @param v 值
* @param imm 实时写入(设备变量有效)
* @return 是否成功
*/
virtual bool setChar(const string& name, const string& v, bool immediate = false) = 0;
/**
* @brief 设置变量配方值
* @param name 变量名称
* @param row 行索引
* @param col 列索引
* @param v 值
* @return 是否成功
*/
virtual bool setTrcp(const string& name, int rowIndex, int colIndex, const string& v) = 0;
int a = 3;
// 设置变量_7的值
vm->setInt("变量_7",a);
int b = 0;
// 获取变量_7的值
vm->getInt("变量_7",b);
// 仅对普通变量有效
vm->saveAll();