發表文章

目前顯示的是 2022的文章

Network tool

 Network tool Ifconfig 看已啟動的網卡資訊 ip addr 將所有ip位置列出來 ping 傳輸連接 iperf3 網路的頻寬流量 dhcp 主動設定DHCP Server WIFI tool iw 顯示wifi裝置的詳細資訊與ifconfig類似但只顯示無線裝置 wpa_passphrase 建WPA PSK .conf檔 wpa_supplicant 連接wpa wifi工具

Android studio 連接 SQL Server

 Android studio 連接 SQL Server 前言 我們使用JTDS與SQL Server做連線 去 下載JTDS.jar 放入Android studio libs裡(本篇使用1.2.8) 如果不知道如何導入.jar檔可以參考 Android Studio JAR/AAR檔打包、導入 獲得SQL Server資料 初始化 JTDS driver String driverName = "net.sourceforge.jtds.jdbc.Driver" ; Class. forName ( driverName driverName) ; 與SQL Server連線並獲取資料 conn = DriverManager. getConnection ( url , username , password ) ; //(url, 帳號 , 密碼 ) ps = conn.prepareStatement( "SELECT [table1].[ID],[table1].[Name],[table1].[Color] \n " + "WHERE [table1]" ) ; //SQL 搜尋語法 rs = ps.executeQuery() ; // 查詢資料 while (rs.next()) // 用 while 迴圈列出每行資料 { String Name = rs.getString( "Name" ) ; // 獲得紀錄每行資料 } 記錄下表table1 Name資料列內容 table1的表格 ID Name Color 1 Red #FF0000 2 G...

ALSA

 ALSA(advanced linux sound architecture) 測試檔 gst-launch-1.0 audiotestsrc ! audioconvert ! alsasink device-name=realtekrt5651co 播放 gst-launch-1.0 filesrc location = 檔名路徑 !\ mpegaudioparse!\ avdec_mp3!\ audioconvert!\ alsasink devic=hw:0  (alsa走哪個裝置 系統資訊 可以到/proc搜尋系統資訊 /proc/uptime 可以看到系統啟動執行時間及系統空閒時間 /proc/cpuinfo CPU資訊 /proc/asound Audio資訊 如音效卡、HDMICODEC、devices、PCM...等 ALSA Tool aplay 播放聲音 arecord 錄音 amixer audio參數設定 alsamixer audio參數設定介面 amixer & alsamixer的差異在於alsamixer有介面而amixer只是文字

SQL UPDATE 更新修改資料

 SQL UPDATE 更新修改資料 UPDATE用法 table1的表格 ID Name Color 1 Red #FF0000 2 Green #00FF00 3 Blue #0000FF UPDATE基本用法 UPDATE [table1] SET [table1].[Color] = #0000cd WHERE [table1].[ID] = 3 執行結果: ID Name Color 1 Red #FF0000 2 Green #00FF00 3 Blue #0000cd ...

Gstreamer

 Gstreamer 測試檔 gst-launch-1.0 videotestsrc ! video/x-raw, width=1280, height=720 ! kmssink gst-launch-1.0 filesrc location = 檔名路徑 !\ decodebin name =dec !\ videoconvert !\ kmssink 影像 gst-inspect  列出GStreamer plugins gst-inspect-1.0 | grep -i videosink  gst-launch  播放 gst-typefind  查詢檔案的decodebin gst- typefind -1.0 | grep -i videosink 

Cross compilation toolchain

Cross compilation toolchain 簡單明瞭就是在不同的開發平台做交叉編輯 大多數使用的電腦都是 x86如果 直接在電腦上 compiler, 只能編譯出 x86 辨識的執行檔 所以如果要 compile 出其他 CPU 可以辨識的執行檔就要使用 cross compiler 使用 ARM 系列 CPU

X Window & wayland

圖片
 X Window & Wayland X Window & Wayland 簡單關係 X window以點陣圖方式顯示的軟體視窗系統 Wayland是用來取代改善X windows 的桌面系統protocol X Window  X server 接收到X Client回傳的需求後 須要再將需求傳遞給Compositor合成器將畫面疊加 再返回給X server 才能做display Wayland 將Compositor與server包在一起 Client將動作直接傳遞給 Wayland Compositor 在執行display 1. Devise input trigger Driver 收到event傳遞給Wayland Compositor 2. Wayland Compositor 將 event傳遞給 Client 3.  Client 要做的動作傳給 Wayland Compositor 4.  Wayland Compositor 經由KMS做display  controller 走KMS吃CPU效能 走DRM吃GPU效能 KMS (Kernel Model Set) -> color,resolution,refresh -> 訊號有關的 DRM(Direct Renddering Manager) -> 記憶體有觀的 FrameBuffer包含在DRM內 Application 將影像資料寫入Memory(FrameBuffer)  MMAP將資料轉到driver driver將資料傳至display顯示 weston linux 使用Weston主要原因為Weston使用Wayland的protocol 燒入版本Yocto

Linux嵌入式系統啟動流程

 Linux嵌入式系統啟動流程 流程說明 Soc啟動ROM Code一上電就動作 根據HW設計的boot select //讀取mini boot 放置sram  //Init ddr 將u-boot 放置ddr SRAM mini boot 將u-boot讀取至ddr ram U-boot 起來後會將linux kernel 放置ddr ram 執行 Linux 啟動後會依去boot loader 來決定RootFS BootLoader是嵌入式設備中用來啟動操作系統內核的一段程序。 uboot(universal bootloader)是一種可以用於多種嵌入式CPU的BootLoader程序,換言之,uboot是bootloader的一個子集。 uboot的核心作用就是啟動操作系統內核

Userland

 Userland Userland 分成User Space & Kernel Space內存保護和硬件保護,防止惡意或錯誤的軟件行為 User Space 指操作系統中位於Kernel之外的所有代碼,例如操作系統都預裝了各種功能的工具、編程語言和圖形工具,這些都是User Space控制。 User Space不能直接操作系统资源必須通過system call,才能向Kernel發出指令。 Kernel Space 控制系統資源處理驅動程序,較為底層核心的操作

Android Studio .csv檔讀寫

圖片
 Android Studio .csv檔讀寫 可以先參考 Android Studio 檔案讀寫 內有寫關於Android Studio讀寫檔案基礎介紹 本次使用ArrayList存放CSV資料,使用RecyclerView顯示資料 建立ArrayList Data Model 新增DataModel的Java class public class DataModel { private String ID ; private String Name ; private String Score ; public DataModel (String ID , String Name , String Score){ this . ID = ID ; this . Name = Name ; this . Score = Score ; } public String getID (){ return ID ; } public String getName (){ return Name ; } public String getScore (){ return Score ; } } 並在Activity內宣告ArrayList ArrayList<DataModel> datalist = new ArrayList<>() 建立RecyclerView & Adapter 在建立Adapter之前可以先建立ViewHolder public class ViewHolder extends RecyclerView.ViewHolder { public TextView idtext , nametext , scoretext ; public ViewHolder ( @NonNull View itemView) { super (itemView) ; i...

Android Studio 寫入檔案PC無法顯示

Android Studio 寫入檔案PC無法顯示 寫入檔案後需要使系統重新掃描檔案 可以使用以下方式 1. Intent intent = new Intent(Intent. ACTION_MEDIA_SCANNER_SCAN_FILE ) ; Uri uri = Uri. fromFile (newTextFile) ; intent.setData(uri) ; context .sendBroadcast(intent) ; 2. MediaScannerConnection. scanFile ( context ,new String[]{file.getAbsolutePath()} ,null,null ) ;

Android Studio 檔案讀寫

圖片
 Android Studio 檔案讀寫 讀寫權限 <uses-permission android :name ="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android :name ="android.permission.WRITE_EXTERNAL_STORAGE" /> 取得儲存路徑 getDataDirectory() 取得手機內存根目錄 getDownloadCacheDirectory() 取得手機暫存 getRootDirectory() 取得手機系統目錄 getExternalStorageDirectory() 取得手機外部儲存SD Card目錄 取得路徑的格式 getPath() 取得定義的路徑 getAbsolutePath() 取得絕對路徑 getCanonicalPath() 取得符合路徑規範的路徑 File file = new File( "TXT/./test.txt" ) ; Log. d ( "frilgetPath" , "==" +file.getPath()) ; Log. d ( "frilAbsolutePath" , "==" +file.getAbsolutePath()) ;...

Android Studio RecyclerView JSON API

圖片
 Android Studio RecyclerView JSON API AndroidManifest權限設定 在AndroidManifest中加入網路訪問權限> <uses-permission android :name ="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android :name ="android.permission.INTERNET" /> Layout activity_main <LinearLayout xmlns: android ="http://schemas.android.com/apk/res/android" xmlns: tools ="http://schemas.android.com/tools" android :layout_width ="match_parent" android :layout_height ="match_parent" android :orientation ="vertical" tools :context =".MainActivity" > <androidx.recyclerview.widget.RecyclerView android :id ="@+id/recyclerlist" android :layout_width ="match_parent" android :layout_height ="wrap_conte...