pretty code

2009年8月15日 星期六

charger

除了 flash、usb之外
charger 大概是我會有興趣的一個 driver 吧


Trickle charging:
It allows depleted battery voltage to be raised to a level sufficient to begin fast charging.

Trickle -> Fast -> Topoff(Pulse)

chg_wall_valid_isr 觸發後才會去偵側 chg_wall_invalid_isr
反之亦然

但是在進這兩個 isr 前會先進 chg_charger_isr


Qualcomm 的 code 在某些地方被我嫌到體無完膚
但比起 Marvel 的我看還是好太多了


在跟 HW 幾個 扛壩子 的討論中
其實也知道了不少的 HW 相關知識

至少我現在就知道
我新買的手機用到過度放電
插上旅充沒有反映
要等約 10 來秒才會顯示動畫
這是因為要讓 charger 的充電衝破 trickle 的狀態
而不是像網路上所説的是 BUG
只是不知道這是適用我們平台還是一以貫之的原理?
最後一天上班去請教 HW 弟兄好了

如果推論屬實
表示我的手機也是用軟體充電囉?

想想也對
快兩萬塊的手機都是了
你還想期望不到六千的機子
用 charger ic 嗎?

2009年8月14日 星期五

基本電學原理 1

電壓指的是使電流動的壓力
電流指的是電線中每秒流動的電量

電線中的電流容許值是固定的(P=IV)
因此使用電壓越高,電線越細

相對於某基準點的電壓稱為電位
電會由電位高處流向電位低處
電壓越大,電位差越大,使電流動的壓力就越大

TERA
GIGA
MEGA
KILO(10的3次方)
MILI(10的-3次方)
MICRO
NANO
PICO

生活小常識:

W=IV

1.假設洗衣機最大標示1500W(一千五百瓦),因為是110V,所以由W=IV得知,這台洗衣機最大電流為1500=I*110,I=13.64A。

2.假使您洗衣機插座上標示125V20A,那這個插頭是OK的。

3.一般家庭電線應該都是用2mm的,從電工法規上得知:
( 電線截面積1.6mm平方其安全電流為10A120V )
( 電線截面積2.0mm平方其安全電流為15A120V )

物質的組成

所有的物質都是由原子這種微小粒子所組成

原子的中心為原子核
外圍則環繞著電子

原子核由具正電的質子與中子所構成
而電子則帶有負電

通常原子的質子數與電子數是相等的
因此它是中性

2009年8月12日 星期三

暗黑科技業

最近在 PTT 看了一系列 [討論] 製程和設備 的文章
果然跟我的推論一樣
現在只不過被證實了

好可怕呀
地球是很危險的
快回火星去吧 ... XD



嘉句名言:(以下版權屬於原 PO 所有)

1.當週遭的人都是努力解決事情或問題,更加努力確實可以增加你的績效;只是當一切是相反,努力解決事情只會引來更多的事情時,你是否還有熱情去解?

問題的真相或許只有一個,但去解決它,有時反而像是打開潘朵拉的盒子,會引來更多問題的。

台灣的環境不適合那種超級突出的人,除了你自己是老闆。

2.科技業:卸責是 good,工作是別人的

3.能做多少就多少,對得起你領的小朋友就好了。

4.會吵的人就是有糖吃....有看過哪一種生物不叫就能爽的嗎?我想,如果你自己都不替你自己發言,應該不會有人替你發言吧?有時會沉默,不是因為不想吵,而是知道吵了也沒用,累了~~~~~

5.解開問題的真相後,你就沒事作了;但是去解錯誤,會有更多事可以作....(人只會眼紅別人沒事作)

所以不要去解決事情的真相,而是用其它錯誤去搪塞真相,這才是裝忙的最高境界。(永遠都在作事,永遠都有 Action,永遠都有 plan to do,永遠都解不掉問題)

2009年8月11日 星期二

EasyTerminal

這大概是第二次接 PTT CodeJob 的 case 被放鳥了吧
為了這次的 case
我把之前寫的刷卡機銀行主機端授權回應程式
把有關 RS232 的部份抽取出來
準備給案主接儀器 demo 用
這下我看是不需要了(苦笑 ...)

BCB 真是個好物
那時候剛從資策會出來
對 message queue 的機制似懂非懂的(資策會是用QT)
買了一本書來玩玩
就寫出這樣的程式
不但能收 UART 資料
還是 Thread 架構不會影響 UI 流暢

難怪周伯通會說
白駝山的內功在前 20 年會比全真教強
20 年後全真教的內功進展才會超過白駝山

也許我走的是應用面的
所以白駝山的心法也沒有什麼不好
當然可以的話
還是要循正統的全真教心法

RS232 的速度 + PC 的運算能力
其實來得及把收到的資料再做些處理
以後就不會看訊息看到要吐了 ... XD

2009年8月9日 星期日

EasyPMT 前置工作

下面只是之前使用 file 當 db 的想法
如果要使用 SQLite
需要重新考量一番

SmartMoney UltraMoney

1.Account.db(記錄會計科目資訊)
a.類型(A,L,Q,R,E)
b.順序(會計科目設定畫面之顯示順序)
c.編號(1000,2000,3000,4000,5000 以此做分類帳科目的依據)
d.名稱(真正的名稱)
e.母科目(沒有為0...有則為母科目的編號)
f.層級(哪一層的科目...1(Root)...2(Sub)...應該為母科目加1)
g.預算(以月為單位)

原則上可以有無限層的子科目...但希望最好不要
/*
第一層科目假設叫 "食"
第二層就叫    "食.早餐"
第三層就叫 "食.早餐.美而美"
其他以此類推..總之在不超過999個下..要幾層就給他幾層
*/

.db的第一個位移量會記錄各類型科目的最後一個索引...以加速新增科目

//Account科目索引
struct SAccountIndex
{
int iAssetIndex;
int iLiabilityIndex;
int iRevenueIndex;
int iExpenseIndex;
//補齊用
char szTmp[112];

};

#define NAMEMAX 100
struct SAccount
{
//類型(A,L,Q,R,E)
char chType;
//順序(會計科目設定畫面之顯示順序)
int iOrder;
//編號(1000,2000,3000,4000,5000 以此做分類帳科目的依據)
int iNumber;
//名稱(真正的名稱)
char szName[NAMEMAX+1];
//母科目(沒有為0...有則為母科目的編號)
int iParent;
//層級(哪一層的科目...1(Root)...2(Sub)...應該為母科目加1)
int iLayer;
//預算
int iBudget;
};

2.PMT Account

1-Cash
Bank-台新
Bank-臺企
Bank-華南
Bank-郵局
投資
暫付款
零用金
扣繳
2-Card-華銀卡
Card-台新卡
暫收款
4-Salary
出差旅費
信用卡紅利
利息
中獎
二手
投資收益
其他收入
51-食-早餐
-午餐
-晚餐
-零食
-其他食
52-衣-衣服
-褲子
-鞋襪
-配件
-剪髮
-其他衣
53-住-水費
-電費
-瓦斯
-電話
-管理費
-手機
-網路
-手續費
-大賣場
-其他住
54-行-汽車-停車
-洗車
-加油
-保養
-修理
-稅捐
-汽保
-回數票
-捷運
-公車
-計程車
-火車
-飛機
-其他行
55-育-書報
-電腦-軟體
-硬體
-文具
-補習
-其他育
56-樂-漫畫
-唱歌
-電影
-其他樂
57-醫藥(有憑證)
58-醫藥(無憑證)
59-家人借支
60-紅白包
61-投資手續
62-投資損失
63-綜所稅
64-保險
65-捐助

3.資料庫架構
DataBase - 2007 - Account.db
- Journal.db
- Ledger - 1000 - 1001.db
|
1xxx.db

- 2000 - 2001.db
|
2xxx.db

- 3000 - 3001.db
|
3xxx.db

- 4000 - 4001.db
|
4xxx.db

- 5000 - 5001.db
|
5xxx.db

.db的第一個位移量會擺各月份第一筆資料的索引...以加速查詢

4.Account資料結構

typedef unsigned int CASHUNIT;
#define NOTEMAX 100

struct SEntry
{
//類型
char chType;
//科目編號
int iNumber;
//金額
CASHUNIT Price;
//統一發票號碼
int iInvoice;
//摘要針對各科目
char szNote[NOTEMAX+1];
};

5.Journal資料結構

6.Ledger資料結構

7.功能
a.編製傳票(複合分錄)
b.日記帳
c.分類帳
d.資產負債表
e.損益表
f.統一發票對獎
g.餘額分析
h.預算分析

8.UI介面

9.判斷複合分錄

比較有可能為以下兩種:
a.
Debit Asset
Credit Revenue (收入發生)
Credit Liability (借錢之類)
Credit Asset (轉帳交易)
b.
Debit Expense
Credit Asset (以資產支付費用)
Credit Liability (以負債支付費用)

原則上以上述方法評斷各交易單科科目實際金額
判斷後再跳出確認視窗讓使用者檢查

10.分錄之新增、刪除、修改

新增:
刪除:
修改:

11.科目之新增、刪除、修改

新增:
刪除:
修改: