출동준비........
고고고!
우리의 신 네이버님과 네이버 키친님을 참조하여 비빔국수 완성
맛은 꽤 괜찮았으나, 조리기구의 부족으로... -_-
살림을 더 차려야 될듯한 느낌이 듭니다..
* 바구니 구입 (쌀씻기 뭐 기타등등)
그리고 대접 그릇 +_+
일단 양념장

그다음 오이, 계란


그리고 완성 +_+

혼자 사는 자취생이라 부티나게 계란 2개 넣어주시고
후후후... 근데 참기름이 좀 많이 들어간듯...
비빔국수 한그릇 하실래예 ???
VisualBasic 6.0
프로그램 하다가 필요한거 대충 만든것들
Public Function fillSpaceToZeroStr(v1 As String, size As Integer, backFill As Boolean) As String
Dim i As Integer
Dim resultStr As String
For i = 0 To size - Len(v1) - 1
resultStr = resultStr & "0"
Next i
If backFill = False Then
fillSpaceToZeroStr = resultStr & v1
Else
fillSpaceToZeroStr = v1 & resultStr
End If
End Function
'// Decimal -> Hex(2Byte String)
Public Function Dec2Hex_00(mVar As Integer) As String
If mVar < 16 Then
Dec2Hex_00 = "0" & Hex(mVar)
Else
Dec2Hex_00 = Hex(mVar)
End If
End Function
'// 2D-Array Init
Public Function Arr2D_init(ByRef mVar As Variant, initVal As Single)
Dim i As Integer
Dim j As Integer
Dim m1D As Integer
Dim m2D As Integer
m2D = UBound(mVar, 2)
m1D = UBound(mVar, 1)
For i = 0 To m1D
For j = 0 To m2D
mVar(i, j) = initVal
Next j
Next i
End Function
'// Get Averarage From 2D-Array
Public Function getAvr_2Dim_byY(mVar As Variant, mY As Integer) As Single
Dim mLoop As Integer
Dim retBound As Integer
Dim tmpVar As Single
retBound = UBound(mVar, 2)
tmpVar = 0#
For mLoop = 0 To retBound
tmpVar = tmpVar + mVar(mY, mLoop)
Next mLoop
getAvr_2Dim_byY = tmpVar / (retBound + 1)
End Function
'// Get Averarage From 1D-Array
Public Function getAverage(mVar As Variant) As Single
Dim mLoop As Integer
Dim retBound As Integer
Dim tmpVar As Single
retBound = UBound(mVar)
tmpVar = 0#
For mLoop = 0 To retBound
tmpVar = tmpVar + mVar(mLoop)
Next mLoop
getAverage = tmpVar / (retBound + 1)
End Function
'// Time Sleep
Public Function wasteTime(mTime As Long)
Dim mLoop As Boolean
Dim agoTime As Long
agoTime = timeGetTime
mLoop = True
Do While (timeGetTime - agoTime < mTime)
'Debug.Print timeGetTime
DoEvents
Loop
End Function
National Instrument LIN Module 사용법.
마침 프로그램 새롭게 개발하는게 있어서 관련 자료를 올림.
일단 "LIN" 이라는 것을 이해해야 하는데 이것이 안들어본 사람들은 엄청나게 헷갈리는 타입의 통신일 수도 있습니다.
LIN 의 프레임의 종류는 여러가지가 있습니다만, 실제로 쓰게 되는것은 한 3개 정도 됩니다.
1. Full Frame 방식
- Header 와 Data 를 동시에 지정하여 날려주는 타입입니다. 쉽게 TCP 생각 하시면 됩니다.
주거니 받거니...
2. Header Response 방식
- Header 만 날려주면 (내부적으로) 자동으로 Data 들이 따라옵니다.
3. Error / Sleep
- 뭐 굳이 설명안해도 LIN 은 WakeUp 과 Sleep 을 반복하게 설계되어있습니다.
(결국 전력 소모를 줄이기 위해서 일정 시간 호출이 없으면 MICOM 이라던가 통신 수단들 자체가 저전력 모드로 가는것을 Sleep 이라고 부르는 것 같습니다. 그리고 WakeUp 역시 다른 수단이 필요없이 Packet 을 지속적으로 주게 되면 자동적으로 WakeUp 이 됩니다.)
뭐 일단 프레임 종류는 저렇게 됐습니다. 이제 중요한건 VisualBasic 에서 어떻게 다뤄야 봐야겠죠 ?
일단 소스 코드 나갑니다.
이 예제에서 사용된 api 들은 NI-CAN 라이브러리에 VB 예제들을 보면 기본적으로 들어있는
Module 파일들을 포함시켜 사용한 예제입니다.
Public LinTxRx As Long
Call ncOpenObject("LIN0", LinTxRx)
'// 속성 값 설정
Call ncSetAttribute(LinTxRx, NC_ATTR_BAUD_RATE, 4, BaudRate)
Call ncSetAttribute(LinTxRx, NC_ATTR_TERMINATION, 4, Term)
Call ncSetAttribute(LinTxRx, NC_ATTR_LIN_CHECKSUM_TYPE, 4, bCheckSum)
Call ncSetAttribute(LinTxRx, NC_ATTR_SELF_RECEPTION, 4, bSelfRec)
Call ncSetAttribute(LinTxRx, NC_ATTR_LOG_BUS_ERROR, 4, bBusErr)
'// 필자의 경우에는 bCheckSum 타입을 True 로 설정하지 않으면 Response Type 의 Data 가 따라붙지 않아서 고생하였음... bBusErr 항목도 영향을 미침..
'// 적용했었던 옵션 값
'// BaudRate - 19200
'// Term - 1
'// bCheckSum - 1
'// bSelfRec - 0
'// bBusErr - 0
'// -----------------
Call ncAction(LinTxRx, NC_OP_START, 0)
이 이후에는 포함된 API 예제들을 분석해보면 이제 LIN 통신이여 안녕~~