한때 블박에 꽂혀서

맨날 블박만 알아보다가 중고장터에 착한 가격에 나온게 있어 질렀다.

 

블랙뷰 DR400G-HD 16G, 상시전원은 파워 매직으로 ...

상자를 열면 블박이 보인다.

걍 동그랐다.

 

옆면을 보면 전원 단자, 비디오 아웃, 메모리 슬롯이 있다.

 

새워 놓고 보면 이렇게 생겼다. 

 

장착은 일단 운전석 문을 열고 보면

퓨즈박스 뚜껑이 보인다. 뚜껑 열고 구멍에 손넣어서 힘줘서 잡아 빼면

밑에 처럼 껍데기가 홀라당 빠진다.

퓨즈들이 보인다.

퓨즈박스 뚜껑에 어디에 쓰이는 퓨즈인지 친절히 설명되있다.

 

파워 매직 장착은 이렇다.

선이 3개 있는데

1. ACC        : 키온시 들어오는 전원에 연결 (ex : 시거짹, 오디오, 시계...  난 열선퓨즈에 연결함)

2. BATT       : 상시로 들어오는 전원에 연결 (ex : 실내등, 정지등 ... 난 정지등에 연결함)

3. GND        : 아무데나 전기흐르는 곳에 연결하면 됨 (전기가 꼭 흐르는 볼트에 연결해야함)

 

위 사진의 퓨즈 집게는 보닛 안 퓨즈박스 뚜껑 뒤에 붙어있다.

 

위 사진처럼 퓨즈 에 선을 연결하고

퓨즈를 다시 끼우면 끝~ 완전 간단...

근데.. (-)쪾에 연결해줘야 퓨즈가 재 기능을 할수 있다. +연결시 퓨즈가 나가도 전원은 계속 ON 될테니까..

 

 

마지막으로 GND 선은 위 사진처럼 전기가 흐르는 볼트에 접지하면 된다.

 

상시 잘되고 블박 잘 된다...

근데 사진이 없네 ..

 

 

반응형

블랙박스 달고, 방전 5회 그중 완전 방전 1회 .. OTL

툭하면 방전.. 그래서 베터리를 교체하기로 했다.

 

아반떼HD 출고시 60L짜리 베터리가 달려있다.

교체하면서 용량도 80L로 업하려고 보쉬 s4 80L 베터리 주문했다.

베터리 주문하면서 12mmT복스랑 10mm 스패너도 같이 주문했다.

 

근데 용량이 늘면 베터리 크기가 커져서 .. 출고시 달려있는 베터리 받침으로는 안된다.

걍 안맞게 올려도 된다고 하지만 이왕 하는거 받침[TRAY ASS'Y(37150-2H000]도 성남모비스 센터에서 인터넷 주문했다.

 

주문한 물품이 도착하고

귀차니즘으로 약 1달 베란다에 처박아놨다가

마눌의 잔소리에 못이겨 일단 가지고 주차장으로 나왔다.

 

요건 받침이다. 

 

 이건 베터리.. 양옆에 청테이프는 안에 내용물이 셀까봐 붙인거란다.

 

 보쉬~ 음. 믿음이 좀 간다.

 

베터리, 받침, T복스, 스패너... 

 

보닛을 열고 베터리를 탈거한다. 탈거는 -, + 순으로 해야한다. (이유는 ? 글쎄 이렇게 해야한단다) - 10mm 스패너사용 

 

- 부터 탈거한 사진 

 

베터리를 들어내면 위 처럼 받침이 보인다.

받침은 T복스로 볼트를 뽑고. 옆으로 달려있는 줄들을 제거해야한다.

받침을 들어내려면 좀 손이 많이 간다. 작업전에 칼이나 펜치가 있어야 수월하다. 

 

새 받침을 놓고 베터리 얹고

베터리 연결할 때는 + ,-  순으로 연결해야한다. (이유는? 글쎄) 

 

다 연결하고

시동 걸어보니 잘 된다^^

이젠 방전 걱정 없었으면 좋겠네..

 

베터리 교체 참 쉽다.

 

 

 

[참고] 아반떼 HD - 베터리 교환하기 60 -> 80

 

반응형

http://www.rgagnon.com/javadetails/java-0593.html

유용한 팁이네요. 다른 운영체제는 또 다른 방법을 찾아야겠지만 ^^;

The Microsoft TASKLIST.EXE is used to dump the list of the currently running processes. It is similar to tasklist window but for the console.

From a Java program, we are launching TASKLIST.EXE and capture its output.

Note : TASKLIST.EXE is not included the HOME edition of XP. But you can download it from Web, for example : http://www.computerhope.com/download/winxp.htm.

import java.io.*;
import java.util.*;

public class WindowsUtils {
  public static List<String> listRunningProcesses() {
    List<String> processes = new ArrayList<String>();
    try {
      String line;
      Process p = Runtime.getRuntime().exec("tasklist.exe /fo csv /nh");
      BufferedReader input = new BufferedReader
          (new InputStreamReader(p.getInputStream()));
      while ((line = input.readLine()) != null) {
          if (!line.trim().equals("")) {
              // keep only the process name
              line = line.substring(1);
              processes.add(line.substring(0, line.indexOf(""")));
          }

      }
      input.close();
    }
    catch (Exception err) {
      err.printStackTrace();
    }
    return processes;
  }

  public static void main(String[] args){
      List<String> processes = listRunningProcesses();
      String result = "";

      // display the result 
      Iterator<String> it = processes.iterator();
      int i = 0;
      while (it.hasNext()) {
         result += it.next() +",";
         i++;
         if (i==10) {
             result += "\n";
             i = 0;
         }
      }
      msgBox("Running processes : " + result);
  }

  public static void msgBox(String msg) {
    javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
       null, msg, "WindowsUtils", javax.swing.JOptionPane.DEFAULT_OPTION);
  }
}

출처 : http://kogaeng.tistory.com/306

반응형


데이터를 암/복호화 하기위해 AES암호화를 사용하고있다.
헌데 java, C# 코드는 찾기 쉬운데 .. MSSQL에서 직접 사용할 수 있는 sp가 없더라..
그래서 만들어봤다.

.net 코드로 만든 클래스 라이브러리를 MSSQL에서 바로 호출이 가능하다.
방법은 이렇다.

1. 코드를 작성한다. (C#으로 되어있는 AES 암/복호화 코드를 copy해왔다.)  컴파일하여 .dll 파일을 얻는다.

using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace AESCrypto
{
    public class CAesCrypto
    {
        public static void Encrypt(SqlString textToEncrypt, SqlString key, out SqlString strValue)
        {
            try
            {
                RijndaelManaged rijndaelCipher = new RijndaelManaged();
                rijndaelCipher.Mode = CipherMode.CBC;
                rijndaelCipher.Padding = PaddingMode.PKCS7;

                rijndaelCipher.KeySize = 0x80;
                rijndaelCipher.BlockSize = 0x80;
                string strKey = key.ToString();
                byte[] pwdBytes = Encoding.UTF8.GetBytes(strKey);
                byte[] keyBytes = new byte[0x10];
                int len = pwdBytes.Length;
                if (len > keyBytes.Length)
                {
                    len = keyBytes.Length;
                }
                Array.Copy(pwdBytes, keyBytes, len);
                rijndaelCipher.Key = keyBytes;
                rijndaelCipher.IV = keyBytes;
                ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
                string strTextToEncrypt = textToEncrypt.ToString();
                byte[] plainText = Encoding.UTF8.GetBytes(strTextToEncrypt);
                strValue = Convert.ToBase64String(transform.TransformFinalBlock(plainText, 0, plainText.Length));

            }
            catch (Exception ex)
            {
                strValue = ex.ToString();
                throw new Exception(ex.Message);
            }
        }

        public static void Decrypt(SqlString textToDecrypt, SqlString key, out SqlString strValue)
        {
            try
            {
                RijndaelManaged rijndaelCipher = new RijndaelManaged();
                rijndaelCipher.Mode = CipherMode.CBC;
                rijndaelCipher.Padding = PaddingMode.PKCS7;

                rijndaelCipher.KeySize = 0x80;
                rijndaelCipher.BlockSize = 0x80;
                string strTextToDecrypt = textToDecrypt.ToString();
                byte[] encryptedData = Convert.FromBase64String(strTextToDecrypt);

                string strKey = key.ToString();
                byte[] pwdBytes = Encoding.UTF8.GetBytes(strKey);
                byte[] keyBytes = new byte[0x10];
                int len = pwdBytes.Length;
                if (len > keyBytes.Length)
                {
                    len = keyBytes.Length;
                }
                Array.Copy(pwdBytes, keyBytes, len);
                rijndaelCipher.Key = keyBytes;
                rijndaelCipher.IV = keyBytes;
                byte[] plainText = rijndaelCipher.CreateDecryptor().TransformFinalBlock(encryptedData, 0, encryptedData.Length);

                strValue = Encoding.UTF8.GetString(plainText);
            }
            catch (Exception ex)
            {
                strValue = ex.ToString();
                throw new Exception(ex.Message);
            }
        }
    }
}

 

2. MSSQL에서 CLR을 사용할수 있게 변경한다.

-- CLR을 사용할수 있도록 변경
exec sp_configure 'clr enabled', 1
reconfigure with override 


3. 해당 DB에 권한을 부여한다.

 ALTER DATABASE [DATABASE_NAME] SET
 TRUSTWORTHY ON


4. 1에서 만든 DLL로 ASSEMBLY를 생성한다.

CREATE ASSEMBLY AESCrypto
FROM 'D:\AESCrypto.dll'     <- dll의 물리적 경로예제
WITH PERMISSION_SET = UNSAFE 


4.1. 소유자가 달라서 안되면...소유자를 변경한다.
 - 해당메시지는 DB를 만든 사용자와 복원한 사용자가 다를때 나타난다.

 /*
master 데이터베이스에 기록된 데이터베이스 소유자 SID가 데이터베이스 '[DATABASE_NAME]'에 기록된 데이터베이스 소유자 SID와 다릅니다.
ALTER AUTHORIZATION 문을 사용하여 데이터베이스 '[DATABASE_NAME]'의 소유자를 다시 설정하여 이 문제를 해결해야 합니다.
*/
SELECT owner_sid FROM sys.databases WHERE database_id=DB_ID()
SELECT sid FROM sys.database_principals WHERE name=N'dbo'
EXEC sp_changedbowner '[USER_ID]'
ALTER AUTHORIZATION ON [DATABASE_NAME] TO [domain\user]


5. 프로시져를 생성한다.

CREATE PROCEDURE usp_AESCryptoEncrypt
    @strText        NVARCHAR(100),
    @strKey         NVARCHAR(50),
    @strEnc        NVARCHAR(200) OUTPUT
    AS     EXTERNAL     NAME AESCrypto.[AESCrypto.CAesCrypto].Encrypt

--
CREATE PROCEDURE usp_AESCryptoDecrypt
    @strText          NVARCHAR(100),
    @strKey        NVARCHAR(50),
    @strDec        NVARCHAR(200) OUTPUT
    AS     EXTERNAL     NAME AESCrypto.[AESCrypto.CAesCrypto].Decrypt

6. 사용해본다.

DECLARE @strEnc NVARCHAR(200), @return_value int
EXEC @return_value = [dbo].[usp_AESCryptoEncrypt]
@strText
, @strKey
, @strEnc = @strEnc OUTPUT

 

7. 참고 사이트 및 호환성 문제.

* 참고 :  http://zmeun.tistory.com/46

* 호환성 문제.

출처 : http://livelock.tistory.com/entry/DB-%ED%98%B8%ED%99%98%EC%84%B1-%EB%AC%B8%EC%A0%9C

SQL Server 2000->2005 마이그레이션 등을 수행한 후,
 2005부터 지원되는 SQL문을 사용하려고 하는 경우, 다음과 같은 메시지가 나타날 때가 있다.
 
Msg 325, Level 15, State 1, Line 6
'PIVOT' 근처의 구문이 잘못되었습니다. 이 기능을 사용하려면 현재 데이터베이스의 호환성 수준 값을 더 높게 설정해야 합니다. 저장 프로시저 sp_dbcmptlevel에 대해서는 도움말을 참조하십시오.

에러 메시지에서 볼 수 있듯이, 호환성과 관련된 문제이다.
따라서 다음과 같은 구문을 실행하여 호환성 문제를 해결한다. 

EXEC sp_dbcmptlevel '[Database 명]', [호환성 번호]

 호환성 번호는 80: SQL Server 2000, 90: SQL Server 2005 등이다.

 

 

 

 

반응형
<script type="text/javascript">

if (navigator.userAgent.match(/iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson/i) != null
|| navigator.userAgent.match(/LG|SAMSUNG|Samsung/) != null)
{
alert('모바일접속');
}

</script>
반응형

+ Recent posts