首页 > 代码库 > 暑假总结20160907
暑假总结20160907
暑假的前期觉得毕业前玩了一段时间,所以该认真学习一段时间。刚开始每天做一些学姐布置的小任务,然后开始写那个模拟点钞机的软件,还看了一篇论文,跟着老板学习机器学习的基础知识。还是学习了一段时间,但是感觉力度不够,然后到八月22就回家了。今天才到学校,以前的知识需要巩固,然后还有很多新的东西需要学习,明天报道后需要加油学习啊!
暑假的学习记录:
坚持一个月还是有效果的吧!7.14 熟悉软件走抄部分代码,主要是消息传递的事件处理,完成界面右键菜单小功能。7.15 熟悉run_cash_dialog部分的代码及相关的类是实现;完成Dialog的窗口;学习了数字图像处理的频域滤波部分。7.18 学习ini文件的读写操作,基本实现界面读写ini文件。7.19 完成任务栏显示效果,学习图像处理噪声模型7.20 完成记住密码功能,熟悉代码。7.21 学习图像复原的基础知识。7.22 完成记住上次选择目录操作,学习rgb相关基础知识。7.25 复习网络相关知识,完成ping功能,学习PCA,SVD。7.26 学习奇异值分解SVD.7.27 熟悉软件代码,学习最小二乘学习法。7.28 熟悉TcpSocket,学习机器学习的回归部分。7.29 基本完成监听和tcp连接功能。8.01 完成部分命令发送功能。8.02 完成部分初始化界面的指令发送。8.03 完成到界面升级的指令连接,学习机器学习分类的基础知识。8.04 学习机器学习分类...效率很低的一天。8.05 完成界面升级和调试指令8.08 杭州8.09 杭州8.10 上海8.11 熟悉代码,完善升级界面的指令8.12 完成部分红外校准界面的指令,阅读GSR论文。8.15 阅读GSR文章...8.16 基本完成红外部分的指令,学习GSR文章里面的方法。-------------------------------------------------生产管理软件----------------------------------------------------------------bug:任务栏竖放,注册表路径是否存在(如果找不到路径,就设为默认根目录),老化时间默认值bug:PageUpgrade中几秒钟链接失败;点开始-->发命令失败8.03bug:服务端主动关闭时,线程关闭失败;客户端主动关闭时,点两次关闭;命令有顺序,客户端未全部关闭,打开服务端接受失败在 安装目录C:\Program Files (x86)\ZMVision\ccmdbg下FTPCONFIG.ini中找到C:\Users\ranji\AppData\Local\ZMVision\ccmdbg\config路径mode.ini配置文件1.page中的GotoStep(),调用MianDialog的GotoStep()2.WorkingParameters::GetInstance();DeviceProxy::GetInstance();DebugLogger::GetInstance(); LocalFileSaver::GetInstance()3.DeviceProxy::GetInstance()->AddObserver() SUBJECT_CONNECTED,SUBJECT_DISCONNECTED monitor_->AddObserver() SUBJECT_CASH_INFO, SUBJECT_BEGIN_BUNDLE, SUBJECT_ADC_READY, SUBJECT_IMAGE_READY, SUBJECT_END_BUNDLE, 观察者 Observer; 两个具体的观察者 HWNDObserver,MethodObserver被观察者Observable;两个具体的被观察者: DeviceProxy, RunCashMonitor //两种方式,分别是控制通道和数据通道观察者:NotifyUpdate() 当设备连接状态变化时,外部接收数据时,通知观察者,观察者有自己的OnUpdate()方式AddObserver()两种方式添加观察者(一种观察窗口连接状态,一种通过“方法”观察外界数据)4.控制通道,软件作为客户端,请求链接,然后发指令PageConnect::OnEnter()开启线程--->PageConnect::TryConnect--->DeviceProxy::Connect(deviceIP, devicePort)--->TcpSocket::Connect(address, port)请求链接 数据通道,软件作为服务端,监听走抄的情况,接收各种数据创建 RunCashMonitor单例时 instance_->Start();--->StartRunCashDetect()(1)--->OpenDataConnection(发送一个指令,告诉点钞机进入数据发送模式)--->DataConnection::Open(LPCTSTR address, int port)--->listenSocket_.Listen(address, port)监听链接---->connection->WaitConnect()----> listenSocket_.Accept (2)--->线程Run()里面ReadPacke--->然后利用读取的参数去设置其他参数,通知其他观察者( OnCISData(&packet); OnADCData(&packet); OnBeginBundle();OnEndBundle();...) ---> NotifyUpdate(SUBJECT_CASH_INFO)---> 界面观察者&PageMagneticDetect::OnCashInfo--->接收数据并作界面变换 5.页面跳转关系前面在Application.cpp中初始化:SplashScreen ----->LoginDialog ---->MainDialog (显示IDD_PAGE_CONNECT,接连上网络后) 通过navigationView_选择相应的界面 GotoStep(selected) ----> RunCashDialog dlg; STEP_UPGRADE IDD_PAGE_UPGRADE STEP_IR_CALIBRATION IDD_PAGE_IR_CALIBRATION STEP_MH_DETECT IDD_PAGE_MAGNETIC_DETECT STEP_CIS_CALIBRATION IDD_PAGE_CIS_CALIBRATION STEP_FINISH IDD_PAGE_FINISH STEP_RUN_CASH_TEST IDD_PAGE_RUN_CASH_TEST6.走抄模式走钞的流程是:3走钞开始信号(初始化保存数据路径)--->0主控数据(ADC)(钞票索引就是钞票的id,)--->2图像数据(CIS)---->3钞票信息(info)---->4提钞信号么(保存前面设置的这些数据)钞票信息解析:20160803_143828_001_Err000_LastErr0x0_Den1_Dir0_Ver99_SNX02P133112_adc 走抄的日期_开始走抄的时间_当前数据的序号_钞票的错误代码_当前没有此数据(填0)_面额(1,50,100)_方向_版本号_冠字号(没有填0)_数据名称通道选择:struct ADCChannel { TCHAR name[64]; int minValue, maxValue; int id;};struct ADCChannel { short count; //波形的长度 short *codes; //黄线,码盘值 short *values; //绿线,电压值}; 7.上位机接收数据的格式文档-------------------------------------------生产管理软件----------------------------------------------------------------------------------
希望以后自己能提高自己的学习效率,提升自己的编程能力!
暑假总结20160907
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。