全部手册
SIMTUTAI / DOCUMENTATION

开发手册

开发手册、使用视频,应用案例。

1.资料取样历史数据模式,默认会显示当天采样数据,如下代码可按时间范围查询数据
/**  * @brief 按时间范围查询  * @param widget [资料取样控件]  * @param sid [资料取样控件绑定的采样id]  * @param str1 起始时间,格式 2025-01-02 12:03:04  * @param str2 结束时间,格式 2025-01-02 13:03:04  */ void refineSample(STTTable* widget, string sid, string str1, string str2) { string tbl = StringUtil::snprintf("(SELECT * FROM SAMPLE_%s_V WHERE STIME>='%s' AND STIME<'%s') TT" , sid.c_str() , str1.c_str() , str2.c_str()); TTableView* tv = (TTableView*)widget->getData(); tv->refine(tbl, ""); tv->drawData(true); }
  2.如需按指定时间段导出
/**
 * @brief    按时间范围查询
 * @param sid [资料取样控件绑定的采样id]
 * @param str1 起始时间,格式 2025-01-02 12:03:04
 * @param str2 结束时间,格式 2025-01-02 13:03:04
 */ void exportSample(string sid, string str1, string str2) {
    string basename = "SAMPLE_"+sid;//采样数据库名称为前缀"SAMPLE_"+采样id
    //注意模拟器与屏的路径不一样
#if __arm__
    //参数1:数据库路径(触摸屏是在/customer/prm/data/里)
    string pathdb = "/customer/prm/data/" + basename + ".db";
    //参数4:导出目标文件
    string pathcsv = "/vendor/udisk_sda1/export.csv";//U盘下的export.csv
#else
    //参数1:数据库路径(模拟器是在工程的[数据]目录里)
    string pathdb = "./data/"+ basename + ".db";
    //参数4:导出目标文件
    string pathcsv = "./data/export.csv";
#endif
    //参数2:数据库表名
    string tbname = basename + "_V";//这是采样表视图名
    //参数3: 要导出的内容,用sql语句
    string sql = StringUtil::snprintf("SELECT * FROM SAMPLE_%s_V WHERE STIME>='%s' AND STIME<'%s'"
            , sid.c_str()
            , str1.c_str()
            , str2.c_str());
    //参数5:返回错误值
    string err;
    //调用导出
    if(FileUtil::exportDB2CSV(pathdb, tbname, sql, pathcsv, err)) {
        cout<<"导出成功"<<endl;
    } else {
        cout<<"导出失败"<<endl;
    }
}
3. 如需过滤采样变量的字段内容 采样变量在数据库中的字段名依次为D1,D2... 修改相应SQL查询语句即可