急!急!急!...pb程序中如何实现与扫描仪的接口

aniu 2000-05-21 09:27:00
...全文
142 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nn_wzy 2000-06-30
  • 打赏
  • 举报
回复
扫描的图象一般还要处理,PB中容易吗,何不想想别的办法。
xingxin 2000-06-01
  • 打赏
  • 举报
回复
用OLD空间调用,要安装windows的映像工具。在窗口中放入3个控件:图像编辑控件,KODAK图像管理控件,KODAK图像扫描控件,具体操作请用Browser工具查看。
s1977 2000-05-30
  • 打赏
  • 举报
回复
pb 带有KODAK的图象控件,看一下帮助,很容易的。
freeas 2000-05-27
  • 打赏
  • 举报
回复
有一个简单方法:使用Windows自带的映象控件,作为OLE控件插入,
帮助文件请看windows\help\imgocxd.hlp。必须安装映象程序。
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发 string ls_url string ls_data string ls_dd string ls_zfqd //【交易类型--传入平台用】 if rb_1.checked = true then ls_zfqd = "WXPAY" end if if rb_2.checked = true then ls_zfqd = "ALIPAY" end if if rb_3.checked = true then ls_zfqd = "YLPAY" end if //【生成请求地址===从配置参数维护请求地址的一部分】 ls_url = gs_pos_requesturl + "sdkBarcodePay.json" //【判断输入金额是否符合要求】 if dec(em_1.text) <= 0.00 then messagebox("系统提示【MYSOFT】","所输金额不正确!~r~n请重新输入!") em_1.setfocus() return end if //【判断商户订单号是否为空】 if sle_4.text = "" then messagebox("系统提示【MYSOFT】","订单号不能为空!") return end if //【判断是否扫描付款码】 if sle_code.text = "" then messagebox("系统提示【MYSOFT】","付款码不能为空!") sle_code.setfocus() return end if //【判断是否扫描付款码】 if len(sle_code.text) = 0 then messagebox("系统提示【MYSOFT】","请扫描服务对象付款码... ...") sle_code.setfocus() return -1 end if //【判断订单号是否为空】 if len(sle_4.text) = 0 then messagebox("系统提示【MYSOFT】","订单号不能为空!") sle_4.setfocus() return -1 end if //【初始化伪随机数发生器,让应用程序每次运用不同的伪随机数序列。】 randomize(0) //【清除is_keys[] is_value[]】 inv_wxpay.of_clear() //====================生成公共请求参数============================================================== //【操作系统:3-直连】 inv_wxpay.of_add_pos("opSys","3") //【字符集:00-GBK】 inv_wxpay.of_add_pos("characterSet","00") //【机构号,从配置参数维护】 inv_wxpay.of_add_pos("orgNo",gs_pos_orgno) //【商户号,从配置参数维护】 inv_wxpay.of_add_pos("mercId",gs_pos_mercid) //【设备号,从配置参数维护】 inv_wxpay.of_add_pos("trmNo",gs_pos_trmno) //【商户单号,不能重复,若重复则返回:数据库错误】 inv_wxpay.of_add_pos("tradeNo",sle_4.text) //【设备端交易时间:yyyymmddhhmmss】 inv_wxpay.of_add_pos("txnTime",string(now(),"yyyymmddhhmmss")) //【签名方式:MD5】 inv_wxpay.of_add_pos("signType","MD5") //【版本号:默认V1.0.0】 inv_wxpay.of_add_pos("version","V1.0.0") //==================生成商户主扫请求参数============================================================ //【实付金额:分为单位】 inv_wxpay.of_add_pos("amount",string(long(dec(em_1.text) * 100))) //【订单总金额:分为单位】 inv_wxpay.of_add_pos("total_amount",string(long(dec(em_1.text) * 100))) //【扫码支付授权码】 inv_wxpay.of_add_pos("authCode",sle_code.text) //【支付渠道:WXPAY,ALIPAY,YLPAY】 inv_wxpay.of_add_pos("payChannel",ls_zfqd) //【请求参数数据签名,并生成JSON格式数据】 mle_1.text = inv_wxpay.of_get_json() ls_data = trim(mle_1.text) mle_2.text = "" //【POST数据到平台,并接收返回数据:JSON格式】 mle_2.text = inv_wxpay.of_post_pos(ls_url,ls_data) //【返回JSON数据转换为XML数据,用于交易解析】 mle_2.text = inv_wxpay.of_json_to_xml(mle_2.text) //===================================以下判断订单交易情况============================================= if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "S" then if dw_2.rowcount() = 1 then //【请求数据XML】 dw_2.object.in_xml[1] = mle_1.text //【交易金额】 dw_2.object.amount[1] = dec(em_1.text) //【交易时间】 dw_2.object.zf_date_wx[1] = gf_xml_resolve_pos(mle_2.text,"sysTime") //【订单状态--保存本地数据库】 dw_2.object.trade_state[1] = "支付成功" //【支付渠道订单号,可用于退款】 dw_2.object.dd_code[1] = gf_xml_resolve_pos(mle_2.text,"orderNo") //【付款码】 dw_2.object.fk_code[1] = sle_code.text dw_2.object.zffs[1] = 1 //【更新交易到数据库】 if dw_2.update() = 1 then commit using sqlca; dw_2.retrieve(trim(sle_4.text)) else rollback using sqlca; end if end if //【执行查单操作】 cb_21.triggerevent(clicked!) //【刷新本地数据】 cb_7.triggerevent(clicked!) return end if //========================================以下判断交易执行情况================================================== if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "A" then messagebox("支付提示【MYSOFT】","状态:【A-等待授权】~n~n【特别注意】:请等候服务对象输入密码确认成功后点[确定]...~n~n还可通过【查询订单状态】检查订单支付情况!") if dw_2.rowcount() = 1 then dw_2.object.in_xml[1] = mle_1.text dw_2.object.amount[1] = dec(em_1.text) dw_2.object.dd_code[1] = "" dw_2.object.fk_code[1] = sle_code.text dw_2.object.zffs[1] = 1 dw_2.object.trade_state[1] = "订单未支付" if dw_2.update() = 1 then commit using sqlca; dw_2.retrieve(trim(sle_4.text)) else rollback using sqlca; end if end if cb_21.triggerevent(clicked!) cb_7.triggerevent(clicked!) return end if if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "A" then messagebox("支付提示【MYSOFT】","订单等待授权~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message"))) return end if if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "F" then messagebox("支付提示【MYSOFT】","订单交易失败~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message"))) return end if if gf_xml_resolve_pos(mle_1.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_1.text,"result") = "D" then
<<单片机原理及应用课程设计报告>> 题 目:键盘按键识别及LED数码显示 学 院: 工程学院 专 业: 自动化 班 级: 1101班 姓 名: 指导教师: 2013年12月19日 目 录 1课程设计的任务与要求....................................1 2课程设计总体分析介绍....................................1 3各部分工作电路的详细介绍................................3 参考书目................................................11 附录....................................................12 第1节 课程设计的任务与要求 1.1 课程设计题目与要求 1.课程设计题目:键盘按键识别及LED数码显示 2.课程设计要求:(1)画出组成部分电路图 (2)画出程序流程图,设计程序并通过检查 (3)用语言表达工作原理,连接方式及用途等 1.2 课程设计目的及内容 1.目的: 按键是单片机常用的输入设备,操作人员可以通过按键输入指令和数据。在使用按键是 单片机要正确识别按键是否被按下和按下的次数等状态,才能正确执行相关操作。本实 验要实现对按键状态的正确检测并显示相关内容。 2.内容:(1)根据独立式键盘的特点,进行键盘控制系统的整体研究与设计。 (2)LED实时显示按键信息(显示按键号)。 (3)通过编写程序实现按键信息的提取和显示。 课程设计系统总体分析介绍 2.1 显示部分 本设计显示部分是利用动态显示实现的,LED数码管采用共阳极接法。LED数码管动态 显示接口是单片机应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个 显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极三极管增 加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对 位选通COM端电路的控制,所以数码管的选通控制打开,该位就显示出字形,没有选通的 数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显 示,这就是动态驱动。 在轮流显示过程,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光 二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快, 给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一 样的,能够节省大量的I/O端口,而且功耗更低。 2.2 键盘模块设计 本设计键盘部分我是利用4按键的独立式键盘与8155芯片PC口直接相连实现的,即键盘由 8155的PC口扩展出来的。设计电路时,将4个按键与和8155PC口连接,按下按键通过815 5芯片传送给CPU,CPU存运算处理键盘信息由8位LED显示屏显示出来。键盘是计算机系统 最常用的输入设备对于一些需要人为干预的单片机应用系统,键盘成为人机交互联系 的必要手段。 1.按键的分类 按键按照结构原理可分为两类:一类是触点式开关按键,如机械开关、导电橡胶开关等 ;另一类是无触点式开关按键、磁感应按键等。但单片机应用系统大多采用机械式。 2.键输入原理 对于一个键盘或一组按键,单片机系统总有一个接口电路与CPU相连。CPU可以采用查 询或断方式了解有无按键输入并检查是哪一个键按下,将该键号送入累加器ACC,然后 通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。 3.键抖动和消抖方法 机械式按键在按下或释放时,由于弹性作用也影响,通常伴随较短时间的触点机械抖动 ,抖动的时间一般是5- 10ms,这种现象称为键抖动。在理想和实际状态下按键产生的电压波形如下所示。 理想按键电压波形 实际按键电压波形 键抖动使按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的, 所以要采用一些方法来消除抖动。一是硬件方法:可采用在键输出端加R- S触发器(双稳态触发器)或单稳态触发器构成去抖动电路;二是软件方法:在按键的按 下和释放时采用软件延时的方法来消除。 4.键码识别 常用两种方法:一是用专用硬件电路来识别,把这种键盘成为编码键盘;另一种方法是 利用软件方法来识别,把这种键盘成为非编码键盘。键码的识别可采用随机扫描、定时 扫描,或断扫描方式来完成。 2.3电路设计总框图 根据上述工作原理,我画出该系统的总框图,设计总框图如下: 电路设计总框图 各部分电路详细的介绍 3.1单片机显示电路 1. 工作原理:显示部分的设计我是利用LED数码管动态显示实现的,LED数码管采用共阳极接 法。LED数码管与8155芯片PA口、PB口直接连接。将键盘输入信息

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧