999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于接觸式IC卡技術的康復鍛煉系統軟件設計

2013-07-24 05:09:06潘小東王福明
電子測試 2013年1期
關鍵詞:數據庫康復功能

潘小東 王福明

(中北大學 太原 030051)

0 引 言

以往的上、下位機之間的通信方式大都采用串口通訊[1]方式,串口通信是“點對點”連接,如果是“一機多設備”共同工作,那么還需要多線程的通信協議編程;而且串口通信的數據傳輸速率會受到距離的客觀因素影響,傳輸效率不高。隨著IC 卡技術的日益成熟,IC 卡技術[2]在當今社會的各個領域發揮著舉足輕重的作用;以其攜帶方便、保密性好、存儲量大的特性深受廣大消費者青睞。因此,為了提高工作的科學化和規范化,運用IC 卡技術開發此系統是非常有必要的。

1 系統的主要功能

該系統專門為澳瑞特健康產業股份有限公司所生產的康復器械所設計。主要的功能如下圖1 所示。

圖1 康復器械主要的功能

2 接口函數及應用舉例

該系統所用的接口函數皆封裝在32 位DLL(Mwic_32.dll)中,IC 卡為德國西門子生產的SLE4442 卡[3],支持Windows xp/Vista/7 系統。可在VB、VC、DELPHI 等32 位開發環境中使用。

2.1 常用函數說明

(1)int chk_4442(int icdev)

icdev:通用設備標示符,若返回值<0,錯誤;返回值=0,正確(下同);

功能:檢測卡片是否存在;

舉例:st=chk_4442(icdev);

(2)int csc_4442(int icdev ,int len ,unsigned char *databuff)

功能:核對卡片密碼;

舉例:unsigned char databuff[3]={0xFF,0xFF,0xFF}//假定密碼為出廠密碼:FFFFFF;

st=csc_4442(icdev,3,databuff);

(3)int asc_hex(unsigned char * asc ,unsigned char *hex ,unsigned long length)

功能:ASCII 碼轉換成十六進制數據;

舉例:unsigned char databuff[6];

st=asc_hex(“a1a2a3a4a5”,databuff,5);

(4)int asc_hex(unsigned char * hex ,unsigned char *asc ,unsigned long length)

功能:十六進制轉換成ASCII 碼;

舉例:unsigned char databuff1[5]={0xa1,0xa2,0xa3,0xa4,0xa5};

unsigned char databuff2[10];

st=hex_asc(databuff1,databuff2,5);

* 注:轉換后的字符長度為2* length。

(5)int swr_4442(int icdev ,int offset ,int len ,unsigned cahr * databuff);

功能:向卡內制定地址寫入數據;

舉例:unsigned char databuff[5]={‘s’,’o’,’n’,’n’,’y’};

st=swr_4442(icdev,32,5,databuff);

(6)int srd_4442(int icdev ,int offset ,int len ,unsigned char * databuff);

功能:讀取卡內制定地址的數據;

舉例:unsigned char databuff[5];

st=srd_4442(icdev,32,5,databuff);

2.2 函數應用舉例

2.2.1 函數聲明[4]

Declare Function srd_4442 Lib "mwic_32.dll" (ByVal icdev As Long,ByVal offset As Integer,ByVal le As Integer,ByVal data_buffer)As Integer

Declare Function srd_4442_hex Lib "mwic_32.dll" Alias"srd_4442" (ByVal icdev As Long,ByVal offset As Integer,ByVal le As Integer,ByRef data_buff As Byte)As Integer

Declare Function swr_4442 Lib "mwic_32.dll"(ByVal icdev As Long,ByVal offset As Integer,ByVal le As Integer,ByVal data_buffer)As Integer

Declare Function swr_4442_hex Lib"mwic_32.dll" Alias"swr_4442" (ByVal icdev As Long,ByVal offset As Integer,ByVal le As Integer,ByRef data_buffer As Byte)As Integer

Declare Function chk_4442 Lib "mwic_32.dll" (ByVal icdev As Long)As Integer

Declare Function csc_4442 Lib "mwic_32.dll" (ByVal icdev As Long,ByVal le As Integer,ByRef data_buffer As Byte)As Integer

Declare Function asc_hex Lib "mwic_32.dll" (ByVal asc,ByRef hex As Byte,ByVal le&)As Integer

Declare Function hex_asc Lib "mwic_32.dll" (ByRef hex As Byte,ByVal asc,ByVal le&)As Integer

2.2.2 代碼節選

<1>數據存入數據庫[5](采用ADO 技術連接數據庫)

Dim DT As String

DT=CStr(Month(Date))+"/"+CStr(Day(Date))+ "/"+CStr(Year(Date))+" "+CStr(time())

ExeCutesql " insert into 客戶資料 values(CSTR(DATE())+ ' '+CSTR(TIME()),'" & Label2.Caption & "','" & Text1(1).Text & "','" & Text1(2).Text & "','" _

& Text1(3).Text & "','" & Text1(4).Text & "','" & Text1(5).Text & "','" & Text1(6).Text & "','" _

& Text1(7).Text & "','" & Text1(8).Text & "','" & Label3.Caption & "')",Str_text

<2>十六進制寫卡操作(包括對數據的處理)

就此系統而言,為了讓軟件往卡里寫入的數據能夠方便的由下位機成功讀取,我們必須對寫入的數據進行一些轉化,這里就要求數據轉換為十六進制。我們規定一個數據占卡中的5 個地址,同時還要為小數與整數的不同寫入形式(這里主要是輸入數據的指長度)做周全考慮!該系統主要用到的數據處理函數是Mid(string,start,leng),它的作用就是在字符串string 中從start 開始截取leng 長度的字符;具體用法參看如下代碼:

‘寫數據前必須核對卡密碼,否則不能寫入數據到卡中

st=asc_hex("ffffff",databuff(6),3)

st=csc_4442(icdev,3,databuff(6))

date1(1)=Trim(Text1(1).Text)

x(1)=Len(Trim(Text1(1).Text))

If InStr(1,date1(1),".")<>0 Then

Select Case x(1)

Case 4

date11(1)="00000"+Mid(date1(1),1,1)+ "0"+ Mid(date1(1),2,1)+ "0"+Mid(date1(1),4,1)’將數據組合為長度為10 的字符串形式以便于后面轉換

st=asc_hex(date11(1),datebuff1(1),5)

st=swr_4442_hex(icdev,100,5,datebuff1(1))

Case 3

date11(1)="0000000"+Mid(date1(1),1,1)+ "0"+Mid(date1(1),3,1)

st=asc_hex(date11(1),datebuff1(1),5)

st=swr_4442_hex(icdev,100,5,datebuff1(1))

End Select

Else

Select Case x(1)

Case 1

date11(1)="0000000"+Mid(date1(1),1,1)+ "0"+"0"

st=asc_hex(date11(1),datebuff1(1),5)

st=swr_4442_hex(icdev,100,5,datebuff1(1))

Case 2

date11(1)="00000"+Mid(date1(1),1,1)+ "0"+ Mid(date1(1),2,1)+ "00"

st=asc_hex(date11(1),datebuff1(1),5)

st=swr_4442_hex(icdev,100,5,datebuff1(1))

End Select

End If

………

<3>十六進制讀卡操作

每次鍛煉結束后,需要將本次的鍛煉數據在該軟件上顯示出來以便于對客戶的身體狀況做出一個客觀的評價,讀卡操作理所當然的就成為該系統的一個重要環節。而下位機寫數據到卡中都是以十六進制形式寫入,因此,此軟件系統讀取卡中數據后也要進行數制轉換截取等處理再在窗體上顯示出來,此處用到一個Val(string)函數,它返回一個包含于字符串string 內的數字,更直白一點的解釋就是過濾字符,輸出數字,具體的應用參看代碼如下:

st=srd_4442_hex(icdev,55,5,databuff(2))

st=hex_asc(databuff(2),data61,5)

data611=Val(data61)

If data611=0 Then

Label2(3).Caption="0"

End If

x4=Len(data411)

If x4=9Then

data6111=Mid(data611,1,1)+Mid(data611,3,1)+ Mid(data611,5,1)+Mid(data611,7,1)+Mid(data611,9,1)

Else

If x4=7 Then

data6111=Mid(data611,1,1)+Mid(data611,3,1)+ Mid(data611,5,1)+ Mid(data611,7,1)

Else

If x4=5 Then

data6111=Mid(data611,1,1)+Mid(data611,3,1)+ Mid(data611,5,1)

Else

If x4=3 Then

data6111=Mid(data611,1,1)+ Mid(data611,3,1)

Else

If x4=1 Then

data6111=Mid(data611,1,1)

End If

End If

End If

End If

End If

………

<4>三次參數比較[6]

此系統中運用MSChart 控件來作為參數比較的工具,MSChart 控件是以圖形方式顯示數據的圖表,可以按照一定的規范將數據以圖表的形式顯示出來。可以通過在控件屬性頁中設置數據來創建圖表,或者可以從其他數據源比如Excel 表格、數據庫中檢索并繪制數據。

‘運用VB 自帶的MSChart 控件,非常直觀的顯示出來

Dim arrValues(1 To 6,1 To 3)

Dim a As Integer

For a=1 To 6

arrValues(a,1)=Label2(a-1).Caption

arrValues(a,2)=Label3(a-1).Caption

arrValues(a,3)=Label4(a-1).Caption

Next a

MSChart1.ChartData=arrValues

<5>打印鍛煉參數[7](用于醫學分析)

‘通過VB 操作Excel 將鍛煉參數以表格形式打印

Dim XlApp As New excel.Application’Excel 對象

Dim xlBook As New excel.Workbook’工作簿

Dim xlSheet As New excel.Worksheet’工作表

XlApp.Visible=True’設置Excel 對象可見

Set xlBook=XlApp.Workbooks.Add’建立新的工作簿

Set xlSheet=xlBook.Worksheets(1)’設置活動工作表

xlSheet.Select

excel

Sub excel()

Dim j As Integer

Cells(1,1)="載荷"

Cells(1,2)="功率"

Cells(1,3)="時間"

Cells(1,4)="次數"

Cells(1,5)="心率"

Cells(1,6)="熱量"

For j=2 To i+1

Cells(j,1)=a1(i)

Cells(j,2)=b1(i)

Cells(j,3)=c1(i)

Cells(j,4)=d1(i)

Cells(j,5)=e1(i)

Cells(j,6)=f1(i)

Next j

End Sub

<6>窗體的美化處理

為了讓軟件系統界面更美觀,我們在啟動界面以及按鈕控件上可以加載.bmp 格式的圖片,效果如圖2:

圖2

以上代碼摘自ORIENT 鍛煉管理系統,系統投入使用后,運行穩定正常。

3 結 論

該軟件系統已被正式運用,它改變了以往軟件系統的不足,經過測試,本系統功能較齊全、穩定可靠,并且能運用到該廠的其他類型的各種設備(氣動設備、無線設備等等),具有普遍適用性。操作方便,提高了康復鍛煉的效率,從而更好的服務于廣大客戶。

[1]張玉強,白少民.串口通信編程分析及其VB 編程實例[J].延邊大學學報:自然科學版,2003,22(3).

[2]江斌.淺談IC 卡技術與應用[R].第七屆全國建設事業IC 卡應用和技術發展研討會,2008.

[3]馮馳,徐旭東.基于SLE4442 卡的身份認證系統[J].自動化技術與應用,2004,23(4).

[4]黃悅.SLE4442 智能卡VB 接口程序設計[J].電腦編程技巧與維護,2003(7).

[5]廖金輝,向建國,唐日成.VB 中基于自動化功能的Access 數據庫應用[J].計算機與現代化,2007(8).

[6]李旭東.VB 環境下MSChart 控件的應用與研究[J].內江科技,2008,29(9).

[7]黃世芹,王珺.VB 編程環境下如何調用和生成EXCEL 報表文檔[J].貴州氣象,2010,34(2).

猜你喜歡
數據庫康復功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
腦卒中患者康復之路
特別健康(2018年2期)2018-06-29 06:13:44
關于非首都功能疏解的幾點思考
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
殘疾預防康復法制建設滯后
中國衛生(2014年6期)2014-11-10 02:30:50
補陽還五湯聯合康復治療腦卒中35例
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 在线无码九区| 日韩午夜伦| 亚洲免费黄色网| 亚洲色图欧美一区| 67194在线午夜亚洲| 国产迷奸在线看| 91亚洲精品第一| 四虎影视8848永久精品| 91亚洲精品第一| 欧美爱爱网| 精品无码日韩国产不卡av| 国产97公开成人免费视频| 特级aaaaaaaaa毛片免费视频| 亚洲视频无码| 色婷婷电影网| 香蕉国产精品视频| 亚洲国模精品一区| 92午夜福利影院一区二区三区| 色综合久久88| 亚洲中文字幕无码爆乳| 女同久久精品国产99国| 欧美区国产区| 日韩大片免费观看视频播放| 伊人精品视频免费在线| 国产99在线观看| 亚洲人成电影在线播放| 91麻豆国产视频| 毛片网站免费在线观看| 国产呦精品一区二区三区下载 | 欧美亚洲欧美区| 熟妇丰满人妻av无码区| 亚洲日本中文字幕乱码中文| 欧美精品一区二区三区中文字幕| 亚洲成人高清无码| 亚洲天堂精品视频| 欧美69视频在线| 黄色网页在线播放| 欧美一区二区三区不卡免费| 国产乱视频网站| 欧美国产日韩在线播放| 波多野吉衣一区二区三区av| 免费毛片在线| 国产99免费视频| 色婷婷亚洲综合五月| 亚洲三级影院| 欧美一区日韩一区中文字幕页| 久久成人国产精品免费软件| 亚洲妓女综合网995久久| 亚洲另类第一页| 国产精品网拍在线| 精品亚洲欧美中文字幕在线看| 国产精品视频白浆免费视频| 国产成人综合亚洲欧美在| 青草视频网站在线观看| 毛片大全免费观看| 国产精品成人久久| 白丝美女办公室高潮喷水视频| 波多野结衣中文字幕一区| 国产精品免费露脸视频| 国产成人精品一区二区三区| 欧美一级在线| 毛片基地美国正在播放亚洲 | 国产免费高清无需播放器| 亚洲三级色| 精品久久久久无码| 黄色福利在线| 美女视频黄频a免费高清不卡| 爆乳熟妇一区二区三区| 国产精品蜜芽在线观看| 国产自在自线午夜精品视频| 99中文字幕亚洲一区二区| 成人一级免费视频| 久久这里只有精品国产99| 亚州AV秘 一区二区三区| 日韩精品一区二区三区swag| 一边摸一边做爽的视频17国产| 欧美激情网址| 伊人精品视频免费在线| 成人国内精品久久久久影院| 91久久国产综合精品| 久久伊伊香蕉综合精品| 欧美日韩久久综合|