Đồ án Nghiên cứu về công nghệ không dây WiMax và ứng dụng

rtPS (Các dịch vụ thăm dò thời gian thực): được thiết kế hỗ trợ các luồng dịch vụ thời gian thực mà tạo ra các gói dữ liệu kích thước thay đổi trên cơ sở định kỳ, như video MPEG. Dịch vụ cung cấp các cơ hội yêu cầu unicast định kỳ thời gian thực, mà thỏa mãn các nhu cầu thời gian thực của luồng và cho phép SS chỉ ra kích thước cấp phát mong muốn. Dịch vụ này đòi hỏi overhead yêu cầu hơn UGS, nhưng hỗ trợ các kích thước cấp phát thay đổi để tối ưu hiệu quả truyền dữ liệu. BS sẽ cung cấp các cơ hội unicast định kỳ. SS bị cấm sử dụng các cơ hội yêu cầu cạnh tranh đối với kết nối đó. BS có thể đưa ra các cơ hội yêu cầu unicast được quy định bởi dịch vụ này dù là các yêu cầu chu kỳ hiện tại chưa hoàn thành. Điều này dẫn đến SS chỉ sử dụng các cơ hội yêu cầu unicast để đạt được các cơ hội truyền dẫn đường lên (SS vẫn có thể sử dụng các loại burst cấp phát dữ liệu tự nguyện cho truyền dẫn đường lên cũng được).

doc230 trang | Chia sẻ: oanh_nt | Lượt xem: 1365 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu về công nghệ không dây WiMax và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
cture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - xu - dr * song_u(Round(x, 2))) End If k = ds - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend Loop k = ds - xp td = sample 'Ve song EKG tu phai qua trai Do While (td > 0) x = 13.09 'Ve song u While Round(x, 2) >= 12.9 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xu - dr * song_u(Round(x, 2))) End If k = ds - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 11.19 'Ve song t While Round(x, 2) >= 9.8 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xt - dr * song_t(Round(x, 2))) End If k = ds - xt - dr * song_t(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 8.19 'Ve song s While Round(x, 2) >= 8.03 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xs_v5 - dr * song_s_v5(Round(x, 2))) End If k = ds - xs_v5 - dr * song_s_v5(Round(x, 2)) x = x - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 6.21 'Ve song r While Round(x, 2) >= 5.8 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xqrs - dr * song_qrs(Round(x, 2))) End If k = ds - xqrs - dr * song_qrs(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 3.91 'Ve song q While Round(x, 2) >= 3.5 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xq - dr * song_q(Round(x, 2))) End If k = ds - xq - dr * song_q(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 1.99 'Ve song p While Round(x, 2) >= 0.01 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - dr * song_p(Round(x, 2))) End If k = ds - dr * song_p(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend Loop End Sub Private Sub draw_ekg_v6(ByVal sample As Integer) Dim k As Single Dim x As Single Dim td As Integer Dim i As Integer Dim check As Boolean k = ds - xp td = sample check = False Picture1.ForeColor = &H80000005 Picture1.Line (10, 1)-(10, Picture1.ScaleHeight) 'Ve song EKG tu trai qua phai Do While (check = False) x = 0.01 'Ve song p While Round(x, 2) < 2 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) 'Xoa truoc khi ve Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - dr * song_p(Round(x, 2))) 'Ve song End If k = ds - dr * song_p(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 3.5 'Ve song q While Round(x, 2) < 3.92 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - xq - dr * song_q(Round(x, 2))) End If k = ds - xq - dr * song_q(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 5.8 'Ve song r While Round(x, 2) < 6.22 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - xqrs - dr * song_qrs(Round(x, 2))) End If k = ds - xqrs - dr * song_qrs(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 8.03 'Ve song s While Round(x, 2) < 8.2 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - xs_v6 - dr * song_s_v6(Round(x, 2))) End If k = ds - xs_v6 - dr * song_s_v6(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 9.8 'Ve song t While Round(x, 2) < 11.2 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - xt - dr * song_t(Round(x, 2))) End If k = ds - xt - dr * song_t(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 12.9 'Ve song u While Round(x, 2) < 13.1 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds - xu - dr * song_u(Round(x, 2))) End If k = ds - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend Loop k = ds - xp td = sample 'Ve song EKG tu phai qua trai Do While (td > 0) x = 13.09 'Ve song u While Round(x, 2) >= 12.9 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xu - dr * song_u(Round(x, 2))) End If k = ds - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 11.19 'Ve song t While Round(x, 2) >= 9.8 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xt - dr * song_t(Round(x, 2))) End If k = ds - xt - dr * song_t(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 8.19 'Ve song s While Round(x, 2) >= 8.03 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xs_v6 - dr * song_s_v6(Round(x, 2))) End If k = ds - xs_v6 - dr * song_s_v6(Round(x, 2)) x = x - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 6.21 'Ve song r While Round(x, 2) >= 5.8 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xqrs - dr * song_qrs(Round(x, 2))) End If k = ds - xqrs - dr * song_qrs(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 3.91 'Ve song q While Round(x, 2) >= 3.5 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - xq - dr * song_q(Round(x, 2))) End If k = ds - xq - dr * song_q(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 1.99 'Ve song p While Round(x, 2) >= 0.01 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds - dr * song_p(Round(x, 2))) End If k = ds - dr * song_p(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend Loop End Sub Private Sub draw_ekg_v4(ByVal sample As Integer) Dim k As Single Dim x As Single Dim td As Integer Dim i As Integer Dim check As Boolean k = ds - xp td = sample check = False Picture1.ForeColor = &H80000005 Picture1.Line (td, 1)-(td, Picture1.ScaleHeight) Picture1.Line (td + 10, 1)-(td + 10, Picture1.ScaleHeight) Picture1.Line (td - 10, 1)-(td - 10, Picture1.ScaleHeight) 'Ve song EKG tu trai qua phai Do While (check = False) x = 1.5 'Ve song q While Round(x, 2) < 1.9 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2))) End If k = ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 1.09 'Ve song p While Round(x, 2) < 1.81 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) 'Xoa truoc khi ve Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - dr * song_p(Round(x, 2))) 'Ve song End If k = ds_v4 - dr * song_p(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 3.72 'Ve song q While Round(x, 2) < 4.1 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2))) End If k = ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 5.8 'Ve song r While Round(x, 2) < 6.09 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - xqrs_v4 - dr * song_qrs_v4(Round(x, 2))) End If k = ds_v4 - xqrs_v4 - dr * song_qrs_v4(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 8.06 'Ve song s While Round(x, 2) < 8.4 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - xs_v4 - dr * song_s_v4(Round(x, 2))) End If k = ds_v4 - xs_v4 - dr * song_s_v4(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 10.2 'Ve song t While Round(x, 2) < 11.2 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - xt - dr * song_t(Round(x, 2))) End If k = ds_v4 - xt - dr * song_t(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 12.9 'Ve song u While Round(x, 2) < 13.1 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v4 - xu - dr * song_u(Round(x, 2))) End If k = ds_v4 - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend Loop k = ds - xp td = sample 'Ve song EKG tu phai qua trai Do While (td > 0) x = 13.09 'Ve song u While Round(x, 2) >= 12.9 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - xu - dr * song_u(Round(x, 2))) End If k = ds_v4 - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 11.19 'Ve song t While Round(x, 2) >= 10.2 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - xt - dr * song_t(Round(x, 2))) End If k = ds_v4 - xt - dr * song_t(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 8.39 'Ve song s While Round(x, 2) >= 8.06 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - xs_v4 - dr * song_s_v4(Round(x, 2))) End If k = ds_v4 - xs_v4 - dr * song_s_v4(Round(x, 2)) x = x - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 6.08 'Ve song r While Round(x, 2) >= 5.8 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - xqrs_v4 - dr * song_qrs_v4(Round(x, 2))) End If k = ds_v4 - xqrs_v4 - dr * song_qrs_v4(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 4.09 'Ve song q While Round(x, 2) >= 3.72 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2))) End If k = ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 1.8 'Ve song p While Round(x, 2) >= 1.09 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - dr * song_p(Round(x, 2))) End If k = ds_v4 - dr * song_p(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 1.89 'Ve song q While Round(x, 2) >= 1.5 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2))) End If k = ds_v4 - xq_v4 - dr * song_q_v4(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend Loop End Sub Private Sub draw_ekg_v3(ByVal sample As Integer) Dim k As Single Dim x As Single Dim td As Integer Dim i As Integer Dim check As Boolean k = ds_v3 - xp_v3 td = sample check = False Picture1.ForeColor = &H80000005 Picture1.Line (10, 1)-(10, Picture1.ScaleHeight) 'Ve song EKG tu trai qua phai Do While (check = False) x = 1.55 'Ve song p While Round(x, 2) < 2.1 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) 'Xoa truoc khi ve Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v3 - dr * song_p_v3(Round(x, 2))) 'Ve song End If k = ds_v3 - dr * song_p_v3(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 3.7 'Ve song q While Round(x, 2) < 3.91 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v3 - xq_v3 - dr * song_q_v3(Round(x, 2))) End If k = ds_v3 - xq_v3 - dr * song_q_v3(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 5.98 'Ve song r While Round(x, 2) < 6.06 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v3 - xqrs_v3 - dr * song_qrs_v3(Round(x, 2))) End If k = ds_v3 - xqrs_v3 - dr * song_qrs_v3(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 8.02 'Ve song s While Round(x, 2) < 8.3 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v3 - xs_v3 - dr * song_s_v3(Round(x, 2))) End If k = ds_v3 - xs_v3 - dr * song_s_v3(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 10.17 'Ve song t While Round(x, 2) < 10.6 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v3 - xt_v3 - dr * song_t_v3(Round(x, 2))) End If k = ds_v3 - xt_v3 - dr * song_t_v3(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 12.35 'Ve song u While Round(x, 2) < 12.65 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v3 - xu_v3 - dr * song_u_v3(Round(x, 2))) End If k = ds_v3 - xu_v3 - dr * song_u_v3(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend Loop k = ds_v3 - xp_v3 td = sample 'Ve song EKG tu phai qua trai Do While (td > 0) x = 12.64 'Ve song u While Round(x, 2) >= 12.35 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v3 - xu_v3 - dr * song_u_v3(Round(x, 2))) End If k = ds_v3 - xu_v3 - dr * song_u_v3(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 10.5 'Ve song t While Round(x, 2) >= 10.17 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v3 - xt_v3 - dr * song_t_v3(Round(x, 2))) End If k = ds_v3 - xt_v3 - dr * song_t_v3(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 8.29 'Ve song s While Round(x, 2) >= 8.02 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v3 - xs_v3 - dr * song_s_v3(Round(x, 2))) End If k = ds_v3 - xs_v3 - dr * song_s_v3(Round(x, 2)) x = x - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 6.06 'Ve song r While Round(x, 2) >= 5.98 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v3 - xqrs_v3 - dr * song_qrs_v3(Round(x, 2))) End If k = ds_v3 - xqrs_v3 - dr * song_qrs_v3(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 3.9 'Ve song q While Round(x, 2) >= 3.7 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v3 - xq_v3 - dr * song_q_v3(Round(x, 2))) End If k = ds_v3 - xq_v3 - dr * song_q_v3(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 2.19 'Ve song p While Round(x, 2) >= 1.55 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v3 - dr * song_p_v3(Round(x, 2))) End If k = ds_v3 - dr * song_p_v3(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend Loop End Sub Private Sub draw_ekg_v1(ByVal sample As Integer) Dim k As Single Dim x As Single Dim td As Integer Dim i As Integer Dim check As Boolean k = ds_v1 - xp_v1 td = sample check = False Picture1.ForeColor = &H80000005 Picture1.Line (td + 10, 1)-(td + 10, Picture1.ScaleHeight) 'Ve song EKG tu trai qua phai Do While (check = False) x = 1.55 'Ve song p While Round(x, 2) < 2.1 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) 'Xoa truoc khi ve Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v1 - dr * song_p_v1(Round(x, 2))) 'Ve song End If k = ds_v1 - dr * song_p_v1(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 3.7 'Ve song q While Round(x, 2) < 3.91 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v1 - xq_v1 - dr * song_q_v1(Round(x, 2))) End If k = ds_v1 - xq_v1 - dr * song_q_v1(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 5.96 'Ve song r While Round(x, 2) < 6.1 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v1 - xqrs_v1 - dr * song_qrs_v1(Round(x, 2))) End If k = ds_v1 - xqrs_v1 - dr * song_qrs_v1(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 8.02 'Ve song s While Round(x, 2) < 8.3 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v1 - xs_v1 - dr * song_s_v1(Round(x, 2))) End If k = ds_v1 - xs_v1 - dr * song_s_v1(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 10.17 'Ve song t While Round(x, 2) < 10.6 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v1 - xt_v1 - dr * song_t_v1(Round(x, 2))) End If k = ds_v1 - xt_v1 - dr * song_t_v1(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 12.35 'Ve song u While Round(x, 2) < 12.65 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td + 10, ds_v1 - xu_v1 - dr * song_u_v1(Round(x, 2))) End If k = ds_v1 - xu_v1 - dr * song_u_v1(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend Loop k = ds_v1 - xp_v1 td = sample 'Ve song EKG tu phai qua trai Do While (td > 0) x = 12.64 'Ve song u While Round(x, 2) >= 12.35 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v1 - xu_v1 - dr * song_u_v1(Round(x, 2))) End If k = ds_v1 - xu_v1 - dr * song_u_v1(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 10.5 'Ve song t While Round(x, 2) >= 10.17 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v1 - xt_v1 - dr * song_t_v1(Round(x, 2))) End If k = ds_v1 - xt_v1 - dr * song_t_v1(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 8.3 'Ve song s While Round(x, 2) >= 8.02 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v1 - xs_v1 - dr * song_s_v1(Round(x, 2))) End If k = ds_v1 - xs_v1 - dr * song_s_v1(Round(x, 2)) x = x - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 6.1 'Ve song r While Round(x, 2) >= 5.96 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v1 - xqrs_v1 - dr * song_qrs_v1(Round(x, 2))) End If k = ds_v1 - xqrs_v1 - dr * song_qrs_v1(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 3.9 'Ve song q While Round(x, 2) >= 3.7 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v1 - xq_v1 - dr * song_q_v1(Round(x, 2))) End If k = ds_v1 - xq_v1 - dr * song_q_v1(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 2.19 'Ve song p While Round(x, 2) >= 1.55 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &H8000000D Picture1.Line (td, k)-(td - 10, ds_v1 - dr * song_p_v1(Round(x, 2))) End If k = ds_v1 - dr * song_p_v1(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend Loop End Sub Private Sub Command1_Click() Unload Me End Sub Private Sub Command2_Click() If val_speed > 0 Then val_speed = val_speed - 1 Text5.Text = val_speed * 10 + 10 & " mm/s" Timer1.Interval = val_speed * 20 + 1 End If End Sub Private Sub Command7_Click() If val_speed < 4 Then val_speed = val_speed + 1 Text5.Text = val_speed * 10 + 10 & " mm/s" Timer1.Interval = val_speed * 20 + 1 End If End Sub Private Sub Command4_Click() If f_nt < 0.07 Then f_nt = f_nt + 0.01 cal_td_nt = calculate_td_nt Text3.Text = Round(f_nt * 100 - 3) * 10 End If End Sub Private Sub Command5_Click() If f_nt > 0.05 Then f_nt = f_nt - 0.01 cal_td_nt = calculate_td_nt Text3.Text = Round(f_nt * 100 - 3) * 10 End If End Sub Private Sub Command6_Click() If Combo1.Text = " I" Then Combo1.Text = "II" ElseIf Combo1.Text = "II" Then Combo1.Text = "III" ElseIf Combo1.Text = "III" Then Combo1.Text = "V1" ElseIf Combo1.Text = "V1" Then Combo1.Text = "V2" ElseIf Combo1.Text = "V2" Then Combo1.Text = "V3" ElseIf Combo1.Text = "V3" Then Combo1.Text = "V4" ElseIf Combo1.Text = "V4" Then Combo1.Text = "V5" ElseIf Combo1.Text = "V5" Then Combo1.Text = "V6" ElseIf Combo1.Text = "V6" Then Combo1.Text = "aVF" ElseIf Combo1.Text = "aVF" Then Combo1.Text = "aVL" ElseIf Combo1.Text = "aVL" Then Combo1.Text = "aVR" Else Combo1.Text = " I" End If End Sub Private Sub Form_Load() dr = 1500 f_nt = 0.06 val_speed = 2 Combo1.AddItem " I" Combo1.AddItem "II" Combo1.AddItem "III" Combo1.AddItem "V1" Combo1.AddItem "V2" Combo1.AddItem "V3" Combo1.AddItem "V4" Combo1.AddItem "V5" Combo1.AddItem "V6" Combo1.AddItem "aVF" Combo1.AddItem "aVL" Combo1.AddItem "aVR" Combo1.Text = " I" change End Sub Private Sub change() cal_td = calculate_td cal_td_v = calculate_td_v cal_td_nt = calculate_td_nt cal_td_aVF = calculate_td_aVF cal_td_aVL = calculate_td_aVL cal_td_aVR = calculate_td_aVR cal_td_i = calculate_td_i cal_td_iii = calculate_td_iii cal_td_v5 = calculate_td_v5 cal_td_v4 = calculate_td_v4 cal_td_v3 = calculate_td_v3 cal_td_v1 = calculate_td_v1 xp = dr * song_p(0.01) xq = xp - dr * song_q(3.5) xqrs = xp - dr * song_qrs(5) xs = xp - dr * song_s(7.5) xt = xp - dr * song_t(9.5) xu = xp - dr * song_u(12) xp_v3 = dr * song_p_v3(1.2) xq_v3 = xp_v3 - dr * song_q_v3(3.5) xqrs_v3 = xp_v3 - dr * song_qrs_v3(5) xs_v3 = xp_v3 - dr * song_s_v3(7.5) xt_v3 = xp_v3 - dr * song_t_v3(9.5) xu_v3 = xp_v3 - dr * song_u_v3(12) xp_v1 = dr * song_p_v1(1.2) xq_v1 = xp_v1 - dr * song_q_v1(3.5) xqrs_v1 = xp_v1 - dr * song_qrs_v1(5.5) xs_v1 = xp_v1 - dr * song_s_v1(7.5) xt_v1 = xp_v1 - dr * song_t_v1(9.5) xu_v1 = xp_v1 - dr * song_u_v1(12) xs_aVF = xp - dr * song_s_aVF(3.3) xs_aVL = xp - dr * song_s_aVL(8.4) xs_i = xp - dr * song_s_i(7.5) xs_v5 = xp - dr * song_s_v5(7.5) xs_v6 = xp - dr * song_s_v6(7.5) xq_v4 = xp - dr * song_q_v4(3) xqrs_v4 = xp - dr * song_qrs_v4(5.5) xs_v4 = xp - dr * song_s_v4(7.5) xp_aVR = dr * song_p_aVR(0.8) xq_aVR = xp_aVR - dr * song_q_aVR(3.5) xs_aVR = xp_aVR - dr * song_s_aVR(5.5) xt_aVR = xp_aVR - dr * song_t_aVR(10) xu_aVR = xp_aVR - dr * song_u_aVR(12) xp_iii = dr * song_p_iii(1.2) xq_iii = xp_iii - dr * song_q_iii(3.5) xqrs_iii = xp_iii - dr * song_qrs_iii(5.5) xs_iii = xp_iii - dr * song_s_iii(8.5) xt_iii = xp_iii - dr * song_t_iii(10) xp_v = dr * song_p_v(1.65) xq_v = xp_v - dr * song_q(3.5) xqrs_v = xp_v - dr * song_qrs_v(5.5) xs_v = xp_v - dr * song_s_v(7.8) xt_v = xp_v - dr * song_t_v(9.8) xu_v = xp_v - dr * song_u(12.5) End Sub Private Sub Slider2_Change() dr = 500 * Slider2.Value change End Sub Private Sub Timer1_Timer() Static tdd As Integer If Combo1.Text = "II" Then draw_ekg (tdd) If tdd >= cal_td Then tdd = cal_td / 10 Else tdd = tdd + cal_td / 10 End If ElseIf Combo1.Text = "V2" Then draw_ekg_v (tdd) If tdd >= cal_td_v Then tdd = cal_td_v / 10 Else tdd = tdd + cal_td_v / 10 End If ElseIf Combo1.Text = "aVF" Then draw_ekg_aVF (tdd) If tdd >= cal_td_aVF Then tdd = cal_td_aVF / 10 Else tdd = tdd + cal_td_aVF / 10 End If ElseIf Combo1.Text = "aVL" Then draw_ekg_aVL (tdd) If tdd >= cal_td_aVL Then tdd = cal_td_aVL / 10 Else tdd = tdd + cal_td_aVL / 10 End If ElseIf Combo1.Text = "aVR" Then draw_ekg_aVR (tdd) If tdd >= cal_td_aVR Then tdd = cal_td_aVR / 10 Else tdd = tdd + cal_td_aVR / 10 End If ElseIf Combo1.Text = " I" Then draw_ekg_i (tdd) If tdd >= cal_td_i Then tdd = cal_td_i / 10 Else tdd = tdd + cal_td_i / 10 End If ElseIf Combo1.Text = "III" Then draw_ekg_iii (tdd) If tdd >= cal_td_iii Then tdd = cal_td_iii / 10 Else tdd = tdd + cal_td_iii / 10 End If ElseIf Combo1.Text = "V5" Then draw_ekg_v5 (tdd) If tdd >= cal_td_v5 Then tdd = cal_td_v5 / 10 Else tdd = tdd + cal_td_v5 / 10 End If ElseIf Combo1.Text = "V6" Then draw_ekg_v6 (tdd) If tdd >= cal_td_v5 Then tdd = cal_td_v5 / 10 Else tdd = tdd + cal_td_v5 / 10 End If ElseIf Combo1.Text = "V4" Then draw_ekg_v4 (tdd) If tdd >= cal_td_v4 Then tdd = cal_td_v4 / 10 Else tdd = tdd + cal_td_v4 / 10 End If ElseIf Combo1.Text = "V3" Then draw_ekg_v3 (tdd) If tdd >= cal_td_v3 Then tdd = cal_td_v3 / 10 Else tdd = tdd + cal_td_v3 / 10 End If ElseIf Combo1.Text = "V1" Then draw_ekg_v1 (tdd) If tdd >= cal_td_v1 Then tdd = cal_td_v1 / 10 Else tdd = tdd + cal_td_v1 / 10 End If End If End Sub Private Sub Timer2_Timer() Static tdd As Integer nhip_tho (tdd) If tdd >= cal_td_nt Then tdd = cal_td_nt / 10 Else tdd = tdd + cal_td_nt / 10 End If End Sub Private Function calculate_td() As Integer Dim m As Integer Dim x As Single x = 0.01 While Round(x, 2) < 2 x = Round(x, 2) + f m = m + 1 Wend x = 3.5 While Round(x, 2) < 3.92 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.22 x = Round(x, 2) + f m = m + 1 Wend x = 8.1 While Round(x, 2) < 8.27 x = Round(x, 2) + f m = m + 1 Wend x = 9.07 While Round(x, 2) < 11.2 x = Round(x, 2) + f m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f m = m + 1 Wend calculate_td = 10 * m End Function Private Function calculate_td_aVF() As Integer Dim m As Integer Dim x As Single x = 0.01 While Round(x, 2) < 2 x = Round(x, 2) + f m = m + 1 Wend x = 3.33 While Round(x, 2) < 4.17 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.22 x = Round(x, 2) + f m = m + 1 Wend x = 3.77 While Round(x, 2) < 3.9 x = Round(x, 2) + f m = m + 1 Wend x = 9.07 While Round(x, 2) < 11.2 x = Round(x, 2) + f m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f m = m + 1 Wend calculate_td_aVF = 10 * m End Function Private Function calculate_td_v() As Integer Dim m As Integer Dim x As Single x = 1.65 While Round(x, 2) < 2 x = Round(x, 2) + f_v m = m + 1 Wend x = 3.7 While Round(x, 2) < 3.92 x = Round(x, 2) + f_v m = m + 1 Wend x = 5.97 While Round(x, 2) < 6.04 x = Round(x, 2) + f_v m = m + 1 Wend x = 8.02 While Round(x, 2) < 8.15 x = Round(x, 2) + f_v m = m + 1 Wend x = 10 While Round(x, 2) < 10.5 x = Round(x, 2) + f_v m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f_v m = m + 1 Wend calculate_td_v = 10 * m End Function Private Function calculate_td_aVL() As Integer Dim m As Integer Dim x As Single x = 0.01 While Round(x, 2) < 2 x = Round(x, 2) + f m = m + 1 Wend x = 3.5 While Round(x, 2) < 3.92 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.22 x = Round(x, 2) + f m = m + 1 Wend x = 8.03 While Round(x, 2) < 8.4 x = Round(x, 2) + f m = m + 1 Wend x = 9.07 While Round(x, 2) < 11.2 x = Round(x, 2) + f m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f m = m + 1 Wend calculate_td_aVL = 10 * m End Function Private Function calculate_td_aVR() As Integer Dim m As Integer Dim x As Single x = 1.35 While Round(x, 2) < 2.1 x = Round(x, 2) + f m = m + 1 Wend x = 3.6 While Round(x, 2) < 4.1 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.3 x = Round(x, 2) + f m = m + 1 Wend x = 10.25 While Round(x, 2) < 10.5 x = Round(x, 2) + f m = m + 1 Wend x = 12.3 While Round(x, 2) < 12.6 x = Round(x, 2) + f m = m + 1 Wend calculate_td_aVR = 10 * m End Function Private Function calculate_td_i() As Integer Dim m As Integer Dim x As Single x = 0.01 While Round(x, 2) < 2 x = Round(x, 2) + f m = m + 1 Wend x = 3.5 While Round(x, 2) < 3.92 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.22 x = Round(x, 2) + f m = m + 1 Wend x = 8.03 While Round(x, 2) < 8.45 x = Round(x, 2) + f m = m + 1 Wend x = 9.07 While Round(x, 2) < 11.2 x = Round(x, 2) + f m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f m = m + 1 Wend calculate_td_i = 10 * m End Function Private Function calculate_td_iii() As Integer Dim m As Integer Dim x As Single x = 1.5 While Round(x, 2) < 2.4 x = Round(x, 2) + f m = m + 1 Wend x = 3.65 While Round(x, 2) < 3.92 x = Round(x, 2) + f m = m + 1 Wend x = 5.97 While Round(x, 2) < 6.11 x = Round(x, 2) + f m = m + 1 Wend x = 8.07 While Round(x, 2) < 8.5 x = Round(x, 2) + f m = m + 1 Wend x = 10.2 While Round(x, 2) < 10.6 x = Round(x, 2) + f m = m + 1 Wend calculate_td_iii = 10 * m End Function Private Function calculate_td_v5() As Integer Dim m As Integer Dim x As Single x = 0.01 While Round(x, 2) < 2 x = Round(x, 2) + f m = m + 1 Wend x = 3.5 While Round(x, 2) < 3.92 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.22 x = Round(x, 2) + f m = m + 1 Wend x = 8.03 While Round(x, 2) < 8.2 x = Round(x, 2) + f m = m + 1 Wend x = 9.8 While Round(x, 2) < 11.2 x = Round(x, 2) + f m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f m = m + 1 Wend calculate_td_v5 = 10 * m End Function Private Function calculate_td_v4() As Integer Dim m As Integer Dim x As Single x = 1.5 While Round(x, 2) < 1.9 x = Round(x, 2) + f m = m + 1 Wend x = 1.09 While Round(x, 2) < 1.81 x = Round(x, 2) + f m = m + 1 Wend x = 3.72 While Round(x, 2) < 4.1 x = Round(x, 2) + f m = m + 1 Wend x = 5.8 While Round(x, 2) < 6.09 x = Round(x, 2) + f m = m + 1 Wend x = 8.06 While Round(x, 2) < 8.4 x = Round(x, 2) + f m = m + 1 Wend x = 10.2 While Round(x, 2) < 11.2 x = Round(x, 2) + f m = m + 1 Wend x = 12.9 While Round(x, 2) < 13.1 x = Round(x, 2) + f m = m + 1 Wend calculate_td_v4 = 10 * m End Function Private Function calculate_td_v3() As Integer Dim m As Integer Dim x As Single x = 1.55 While Round(x, 2) < 2.2 x = Round(x, 2) + f m = m + 1 Wend x = 3.7 While Round(x, 2) < 3.91 x = Round(x, 2) + f m = m + 1 Wend x = 5.98 While Round(x, 2) < 6.06 x = Round(x, 2) + f m = m + 1 Wend x = 8.02 While Round(x, 2) < 8.3 x = Round(x, 2) + f m = m + 1 Wend x = 10.17 While Round(x, 2) < 10.51 x = Round(x, 2) + f m = m + 1 Wend x = 12.35 While Round(x, 2) < 12.65 x = Round(x, 2) + f m = m + 1 Wend calculate_td_v3 = 10 * m End Function Private Function calculate_td_v1() As Integer Dim m As Integer Dim x As Single x = 1.55 While Round(x, 2) < 2.2 x = Round(x, 2) + f m = m + 1 Wend x = 3.7 While Round(x, 2) < 3.91 x = Round(x, 2) + f m = m + 1 Wend x = 5.96 While Round(x, 2) < 6.1 x = Round(x, 2) + f m = m + 1 Wend x = 8.02 While Round(x, 2) < 8.3 x = Round(x, 2) + f m = m + 1 Wend x = 10.17 While Round(x, 2) < 10.51 x = Round(x, 2) + f m = m + 1 Wend x = 12.35 While Round(x, 2) < 12.65 x = Round(x, 2) + f m = m + 1 Wend calculate_td_v1 = 10 * m End Function Private Function calculate_td_nt() As Integer Dim m As Integer Dim x As Single x = 0 While Round(x, 2) < 2 * pi x = Round(x, 2) + f_nt m = m + 1 Wend calculate_td_nt = 10 * m End Function Private Sub Timer3_Timer() Randomize Text1.Text = 80 + Int((4 * Rnd)) End Sub ‘ Form SpO2 Const pi = 3.14159265 Const l = 1 Const f = 0.01 'Dieu tan so cua song Const ds = 2500 'Dieu chinh vi tri cua song Const dr = 4000 'Dieu chinh bien do cua song Dim xt As Integer, xu As Integer Dim cal_td As Integer Private Sub Form_Load() ProgressBar1.Orientation = ccOrientationVertical xt = dr * song_t(1) xu = xt - dr * song_u(6) cal_td = calculate_td End Sub Private Sub Timer1_Timer() Static tdd As Integer draw_SpO2 (tdd) If tdd >= cal_td Then tdd = cal_td / 10 Else tdd = tdd + cal_td / 10 End If End Sub Private Sub Timer2_Timer() Randomize Text1.Text = 78 + Int((4 * Rnd)) Randomize Text2.Text = 97 + Int((3 * Rnd)) ProgressBar1.Value = Val(Text2.Text) - 95 End Sub Private Function song_t(ByVal x As Single) As Single Dim a As Single, b As Single, t1 As Single, t2 As Single, harm2 As Single Dim i As Integer, n As Integer a = 0.25 x = x - 0.15 - 0.045 b = (2 * l) / 0.45 n = 100 t1 = 1 / l t2 = 0 For i = 1 To n harm2 = (((Sin((pi / (2 * b)) * (b - (2 * i)))) / (b - (2 * i)) + (Sin((pi / (2 * b)) * (b + (2 * i)))) / (b + (2 * i))) * (2 / pi)) * Cos((i * pi * x) / l) t2 = t2 + harm2 Next song_t = a * (t1 + t2) End Function Private Function song_u(ByVal x As Single) As Single Dim a As Single, b As Single, u1 As Single, u2 As Single, harm4 As Single Dim i As Integer, n As Integer a = 0.08 x = x - 0.433 b = (2 * l) / 0.35 n = 100 u1 = 1 / l u2 = 0 For i = 1 To n harm4 = (((Sin((pi / (2 * b)) * (b - (2 * i)))) / (b - (2 * i)) + (Sin((pi / (2 * b)) * (b + (2 * i)))) / (b + (2 * i))) * (2 / pi)) * Cos((i * pi * x) / l) u2 = u2 + harm4 Next song_u = a * (u1 + u2) End Function Private Sub draw_SpO2(ByVal sample As Integer) Dim k As Single Dim x As Single Dim td As Integer Dim i As Integer Dim check As Boolean k = ds - xt td = sample check = False Picture1.ForeColor = &H80000005 Picture1.Line (td, 1)-(td, Picture1.ScaleHeight) Picture1.Line (td + 10, 1)-(td + 10, Picture1.ScaleHeight) ' 'Ve song tu trai qua phai Do While (check = False) x = 1.9 'Ve song t While Round(x, 2) < 2.37 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) 'Xoa truoc khi ve Picture1.ForeColor = &HFF80FF Picture1.Line (td, k)-(td + 10, ds - dr * song_t(Round(x, 2))) 'Ve song End If k = ds - dr * song_t(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend If (check = True) Then Exit Do x = 6.43 'Ve song u While Round(x, 2) < 6.75 If td 0 Then Picture1.ForeColor = &H80000005 Picture1.Line (td + 20, 1)-(td + 20, Picture1.ScaleHeight) Picture1.ForeColor = &HFF80FF Picture1.Line (td, k)-(td + 10, ds - xu - dr * song_u(Round(x, 2))) End If k = ds - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) + f If td + 10 > Picture1.ScaleWidth Then check = True Else td = td + 10 End If If (check = True) Then Exit Do Wend Loop k = ds - xt td = sample 'Ve song tu phai qua trai Do While (td > 0) x = 6.74 'Ve song u While Round(x, 2) >= 6.43 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &HFF80FF Picture1.Line (td, k)-(td - 10, ds - xu - dr * song_u(Round(x, 2))) End If k = ds - xu - dr * song_u(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend x = 2.36 'Ve song t While Round(x, 2) >= 1.9 If td Picture1.ScaleWidth Then Picture1.ForeColor = &H80000005 Picture1.Line (td - 20, 1)-(td - 20, Picture1.ScaleHeight) Picture1.ForeColor = &HFF80FF Picture1.Line (td, k)-(td - 10, ds - dr * song_t(Round(x, 2))) End If k = ds - dr * song_t(Round(x, 2)) x = Round(x, 2) - f If td - 10 < 0 Then Exit Sub Else td = td - 10 End If Wend Loop End Sub Private Function calculate_td() As Integer Dim m As Integer Dim x As Single x = 1.9 While Round(x, 2) < 2.37 x = Round(x, 2) + f m = m + 1 Wend x = 6.43 While Round(x, 2) < 6.75 x = Round(x, 2) + f m = m + 1 Wend calculate_td = 10 * m End Function ‘ Form NIBP Dim val_cycle As Byte Dim val_Pump As Byte Private Sub Command1_Click() If Label_Status.Caption = "IDLE" Then Select Case val_cycle Case 0: Label10.Caption = "Manual" val_cycle = 1 Case 1: Label10.Caption = "1min" val_cycle = 2 Case 2: Label10.Caption = "2min" val_cycle = 3 Case 3: Label10.Caption = "3min" val_cycle = 4 Case 4: Label10.Caption = "4min" val_cycle = 5 Case 5: Label10.Caption = "5min" val_cycle = 6 Case 6: Label10.Caption = "10min" val_cycle = 7 Case 7: Label10.Caption = "15min" val_cycle = 8 Case 8: Label10.Caption = "30min" val_cycle = 0 End Select End If End Sub Private Sub Command10_Click() If Label_Status.Caption = "IDLE" Then Select Case val_Pump Case 0: Label14.Caption = "100mHg" val_Pump = 1 Case 1: Label14.Caption = "120mHg" val_Pump = 2 Case 2: Label14.Caption = "140mHg" val_Pump = 3 Case 3: Label14.Caption = "160mHg" val_Pump = 4 Case 4: Label14.Caption = "180mHg" val_Pump = 0 End Select End If End Sub Private Sub Command2_Click() Label_Status.Caption = "IDLE" Text1.Text = "---" Text2.Text = "---" Text3.Text = "---" Text4.Text = "---" End Sub Private Sub Command3_Click() Label_Status.Caption = "MEASURE" Timer1.Enabled = True Text1.Text = "---" Text2.Text = "---" Text3.Text = "---" Text4.Text = "---" End Sub Private Sub Command4_Click() Unload Me End Sub Private Sub Command9_Click() If Label_Status.Caption = "IDLE" Then If Label12.Caption = "Neonate" Then Label12.Caption = "Adult" Label14.Caption = "170mHg" Else Label12.Caption = "Neonate" Label14.Caption = "140mHg" End If End If End Sub Private Sub Form_Load() val_cycle = 1 val_Pump = 1 End Sub Private Sub Timer1_Timer() If Label_Status.Caption = "MEASURE" Then If Label12.Caption = "Neonate" Then Timer1.Enabled = True Select Case val_Pump Case 0: Label14.Caption = "0mHg" val_Pump = 1 Case 1: Label14.Caption = "20mHg" val_Pump = 2 Case 2: Label14.Caption = "40mHg" val_Pump = 3 Case 3: Label14.Caption = "60mHg" val_Pump = 4 Case 4: Label14.Caption = "80mHg" val_Pump = 5 Case 5: Label14.Caption = "100mHg" val_Pump = 6 Case 6: Label14.Caption = "120mHg" val_Pump = 7 Case 7: Label14.Caption = "140mHg" val_Pump = 8 Case 8: Label14.Caption = "120mHg" val_Pump = 9 Case 9: Label14.Caption = "100mHg" val_Pump = 10 Case 10: Label14.Caption = "80mHg" val_Pump = 11 Case 11: Label14.Caption = "60mHg" val_Pump = 12 Case 12: Label14.Caption = "40mHg" val_Pump = 13 Case 13: Label14.Caption = "20mHg" Timer1.Enabled = False Text1.Text = "110" Text2.Text = "77" Text3.Text = "88" Text4.Text = "80" val_Pump = 1 End Select Else Label12.Caption = "Adult" Select Case val_Pump Case 0: Label14.Caption = "0mHg" val_Pump = 1 Case 1: Label14.Caption = "20mHg" val_Pump = 2 Case 2: Label14.Caption = "40mHg" val_Pump = 3 Case 3: Label14.Caption = "60mHg" val_Pump = 4 Case 4: Label14.Caption = "80mHg" val_Pump = 5 Case 5: Label14.Caption = "100mHg" val_Pump = 6 Case 6: Label14.Caption = "120mHg" val_Pump = 7 Case 7: Label14.Caption = "140mHg" val_Pump = 8 Case 8: Label14.Caption = "160mHg" val_Pump = 9 Case 9: Label14.Caption = "170mHg" val_Pump = 10 Case 10: Label14.Caption = "160mHg" val_Pump = 11 Case 11: Label14.Caption = "140mHg" val_Pump = 12 Case 12: Label14.Caption = "120mHg" val_Pump = 13 Case 13: Label14.Caption = "100mHg" val_Pump = 14 Case 14: Label14.Caption = "80mHg" val_Pump = 15 Case 15: Label14.Caption = "60mHg" val_Pump = 16 Case 16: Label14.Caption = "40mHg" val_Pump = 17 Case 17: Label14.Caption = "30mHg" Timer1.Enabled = False Text1.Text = "117" Text2.Text = "79" Text3.Text = "92" Text4.Text = "80" val_Pump = 1 End Select End If End If End Sub

Các file đính kèm theo tài liệu này:

  • docDAN089.doc