eis/inc/cda/LineMapDAO.h

254 lines
11 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*********************************************************************
*
* 文 件: LineMapDAO.h
*
* 版权所有: Shanghai Baosight Software Co., Ltd.
*
* 概述: 为中央段跟踪功能提供数据库访问接口
* //TODO
* //TODO
*
* 版本历史
* 1.0 2011-06-10 Wei Shengyu //TODO请添加本次主要修改内容
* %USER%
*********************************************************************/
#ifndef H_LINEMAP_DAO_H
#define H_LINEMAP_DAO_H
#include "log4cplus/LOG.h"
#include "common/BasicStruct.h"
#include "dbinc/T_TRK_MAP.h"
#include "dbinc/T_TRK_LINE.h"
#include "dao/MaterialInfo.h"
using namespace baosight;
using namespace log4cplus;
typedef struct
{
int innderid;
char intercoil[21];
}WPDCOIL;
/*********************************************************************
* 类 名: LineMapDAO
* 版权所有: Shanghai Baosight Software Co., Ltd.
* 类 职 责:用于处理中央段以焊缝为单位的跟踪
* :
* :
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
*********************************************************************/
class LineMapDAO
{
public:
LineMapDAO();
virtual ~LineMapDAO();
/**********************************************************************
* 概述: 根据位置号取得当前位置上的钢卷MU_CODE
* 函数名: GetMuCode
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos: [IN]int 焊缝检测仪号
* innerid: [OUT]int * 跟踪索引号
* coilid: [OUT]char * 内部刚卷号
* pmu [OUT]MU_CODE * 材料跟踪代码
* wplen: [OUT]wplen * 焊缝长度
* distance: [OUT]int* 当前跟踪位置距下一跟踪位置距离
*
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
**********************************************************************/
int GetMapInfo( int pos, int *innerid = NULL, char *coilid = NULL, MU_CODE *pmu = NULL, int *wplen = NULL, int *distance = NULL);
/**********************************************************************
* 概述: 根据位置号取得当前位置上的钢卷MU_CODE
* 函数名: GetMuCode
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos: [IN]int 焊缝检测仪号
* mucode: [OUT]MU_CODE * 材料跟踪代码
*
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
**********************************************************************/
int GetMuCode( int pos, MU_CODE& mucode);
/**********************************************************************
* 概述: 根据位置号取得当前位置上的钢卷索引号和内部钢卷号
* 函数名: GetIndex
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos: [IN]int 焊缝检测仪号
* innerid: [OUT]int* 钢卷索引号
* coilid: [OUT]char * 内部钢卷号
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
**********************************************************************/
int GetIndex( int pos, int *innerid = NULL, char *coilid = NULL);
/**********************************************************************
* 概述: 根据位置号取得当前位置上的焊缝经过长度
* 函数名: GetWPlength
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos: [IN]int 焊缝检测仪号
* length: [OUT]int* 焊缝经过长度
* distance: [OUT]int* 当前跟踪位置距下一跟踪位置距离
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
**********************************************************************/
int GetWPlength( int pos, int* length, int *distance = NULL);
/**********************************************************************
* 概述: 取得中央段最大跟踪位置的位置号
* 函数名: GetMaxWPD
* 返回值: int 最大跟踪位置的位置号
* 参数列表: 参数类型 取值范围 描述
*
* 版本历史
* 1.0 2011-06-10 Wei Shengyu //TODO请添加本次主要修改内容
*
**********************************************************************/
//int GetMaxWPD( );
/**********************************************************************
* 概述: 取得焊机位置的已焊接钢卷信息
* 函数名: GetWeldCoil
* 返回值: int 0:执行成功 非0:执行失败
* 参数列表: 参数类型 取值范围 描述
* innerid : [OUT] int * 非空 钢卷索引号
* coilid : [OUT] char * 内部钢卷号
*
* 版本历史
* 1.0 2011-06-13 Administrator //TODO请添加本次主要修改内容
*
**********************************************************************/
int GetWeldCoil( int* innerid, char *coilid = NULL);
/**********************************************************************
* 概述: 取得Line上的所有钢卷顺序
* 函数名: GetWeldCoil
* 返回值: int 0:执行成功 非0:执行失败
* 参数列表: 参数类型 取值范围 描述
* data: [OUT] vector< int>& 内部钢卷号
* mode: [IN] int 0:线上包括TR
* 1:仅TR
* 2:仅线上
*
* 版本历史
* 1.0 2011-06-13 Administrator //TODO请添加本次主要修改内容
*
**********************************************************************/
int GetLineSch( vector< int>& data, int mode = 0);
/**********************************************************************
* 概述: 取得Line上的某个innerid后的Next钢卷
* 函数名: GetWeldCoil
* 返回值: int 0:执行成功 非0:执行失败
* 参数列表: 参数类型 取值范围 描述
*
* 版本历史
* 1.0 2011-06-13 Administrator //TODO请添加本次主要修改内容
*
**********************************************************************/
int GetNextMuCode( int innerid, MU_CODE &nextmu);
/**********************************************************************
* 概述: 获得MAP中所有跟踪位置的钢卷序列,并从入口到出口排序
* 函数名GetPosDistinct
* 返回值: < int> 钢卷信息的数据量
* 参数列表: 参数类型 取值范围 描述
* from : [IN] int 开始搜索的位置号如果开卷机为0xFFFFFFF
* to : [IN] int 结束搜索的位置号如果卷取机为0x7FFFFFF
* data : [OUT] vector< int, WPDCOIL>& 搜索结果
* 版本历史
* 1.0 2011-08-25 Wei Shengyu //TODO请添加本次主要修改内容
*
**********************************************************************/
virtual int GetPosDistinct( int from, int to, vector< int>& data) ;
virtual int GetMapSeq( vector< int>& data, int mode ) ;
/**********************************************************************
* 概述: 根据位置号设置当前位置上的钢卷索引号
* 函数名: SetMap
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos: [IN]int 位置号
* innerid: [IN]int 非0 钢卷索引号,CoilId字段自动设置
*
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
**********************************************************************/
int SetMapById( int pos, int innerid, const int *length = NULL, const int* distance = NULL);
/**********************************************************************
* 概述: 根据位置号设置当前位置上的内部钢卷号
* 函数名: SetMap
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos: [IN]int 位置号
* coil: [IN]const char* 内部钢卷号,InnerID字段会自动匹配
* length: [IN]const int* 焊缝长度
* distance: [IN]const int* 当前焊缝检测仪距下一检测点距离
*
* 版本历史
* 1.0 2011-06-10 Wei Shengyu 增加注释
*
**********************************************************************/
int SetMapByCoil( int pos, const char *coil, const int *length = NULL, const int* distance = NULL);
/**********************************************************************
* 概述: 根据位置号设置当前位置上带钢经过长度和当前位置距下一位置距离
* 函数名: SetWPDInfo
* 返回值: int 0:执行成功 <0:执行失败
* 参数列表: 参数类型 取值范围 描述
* pos : [IN]int 位置号
* length : [IN]int 非0 焊缝经过长度
* distance :[IN] const int * 当前位置距下一位置长度
*
* 版本历史
* 1.0 2011-06-13 Wei Shengyu //TODO请添加本次主要修改内容
*
**********************************************************************/
int SetWPDInfo( int pos, int length, const int* distance=NULL);
/**********************************************************************
* 概述: 清空位置号所在的记录的
* 函数名: MoveWP
* 返回值: int 0:成功 <0:失败
* 参数列表: 参数类型 取值范围 描述
* innerid : [IN] int 非0 钢卷索引号
* offset : [IN] int 0 +/-1024 补偿量(正值向卷取方向,负值向开卷方向)
*
* 版本历史
* 1.0 2011-06-13 Wei Shengyu //TODO请添加本次主要修改内容
*
**********************************************************************/
int ClearMapByPos(int);
protected:
char *db_msg;
char *db_where;
char *db_order;
protected:
T_TRK_LINE *mp_trkline;
T_TRK_MAP *mp_trkmap;
};
#endif