星期四, 6月 05, 2014

2014 Computex

Beseye 這間人每天爆多, Dropcam like

技嘉

GA-7PXSL ATX XEONx2
技嘉 GA-7PESH3 EEB XEON x2
TPLink
TPLink RE200 AC750 WIFI Range Extender 

300M Extender TL-WA860RE
生產怪東西的廠商, 攤位不小, 不過沒DM, 只有先導說明推廣

怪東西1.

怪東西2

怪東西3
又一家Total Solution,  門面不錯
又一家Total Solution,  門面不錯, 




富欣, 有一小塊地方放 Zigbee 插座開關







又一家Smart Solution




又一家.....數不清第幾家了

j5create USB3 Docking.


 這家稍稍不同, 走 Power management.跟V-ECO 連在一起, 不知道神麼關系








拍到這...才發現它貼, 禁止拍照...但我是從另一頭過來的...已經拍完了

又回到Beseye...人真是多, 沒看到他空下來, 它就只有一隻Camera, 後面擺成一排, 就是打Dropcam like, 可以上它官網看, 據路透社報導, 他裡面的Solution 用....恩, 方案商提供.

這家Dropcam like 今年出盡風頭了,一堆記者採訪,看來行銷砸不少,老外每天駱繹不絕

1.Tranwo 這個PT 的殼....很像....
 

幾條線就可以充了
2.Micro SD Zigbee 
3.幾條線就可以充了


由紙張做成、可檢測疾病的顯微鏡

http://www.edntaiwan.com/ART_8800517329_3000006_TA_bb5c6b0a.HTM?click_from=8800018153,4950527750,2014-06-02,EDNTOL,NEWSLETTER

Manu Prakash博士和他的研究小組已開發出一款以摺方式完成的顯微鏡Foldscope,它的功能完整,比兩個鎳幣還輕,只要一張平坦的紙折好,幾分鐘之內就可完成組裝。Foldscope的所有組件都位於紙張上,並以編過碼的顏色來告訴使用者如何折疊(並未包括印刷的指示)。且並不需要外部電源,而它的材料成本只要大約50美分。只要稍微修改設計,它就可用於明場(bright-field)、多重螢光性(multifluorescence) ,或投影顯微鏡。

在2012年6月的一場TED Talk中,這位斯坦福大學醫學院的生物工程助理教授Prakash說明了此一由紙做的顯微鏡在識別熱帶地區開發中國家瘧疾方面所具有的潛在效益。瘧疾是一種由寄生蟲引起而由蚊子傳播的疾病。如果不進行治療,瘧疾患者可能會出現嚴重的併發症和死亡。Prakash說明用顯微鏡來診斷是一件很簡單的工作,但病患仍然必須等待幾個月的時間才能獲得診斷。他解釋道,這個問題在於顯微鏡本身。


研究型顯微鏡並非是針對現場診斷而設計的;它們的體積笨重、價格昂貴,並且難以維護。而這款Foldscope的運作就像正常的顯微鏡一般。使用者將一顯微鏡載玻片置於紙張的褶痕之間,然後將影像投影到牆上或將微透鏡放到與眼睛夠近的距離,來觀察標本。要把焦點聚在物體上很簡單,只要從任何方向滑動紙張平台即可。且因為靠近眼睛的球面透鏡之獨特光學物理特性,使得樣品可以放大至2000倍。


Prakash的夢想是,這種超低成本的顯微鏡有一天可被廣為使用,以用來檢測危險的血液傳播疾病,如瘧疾、非洲昏睡病、血吸蟲病(schistosomiasis)和美洲錐蟲病(Chagas)。


他說,“我想做出最好的疾病檢測儀器,且可以近乎免費的費用發送。” Prakash和Foldscope團隊最近發起了一項Ten Thousand Microscope Project運動,邀請“科學家、教師、銲鍋匠、思想家、駭客、小孩等” 來提出他們對如何為Foldscope進行貝他測試(beta-test)的構想,Foldscope將在8月提供給10,000名最有希望的申請人。他的研究小組將把他們的實驗結果編譯成一群眾外包的(crowdsourced)線上手冊,其中包括了從計畫參與者收集而來的例子。


有興起的讀者,可從here參閱Prakash有關Foldscope顯微鏡的技術文章。

星期二, 5月 27, 2014

http://www.if-not-true-then-false.com/2012/svn-subversion-backup-and-restore/
  1. svnadmin dump /svn/repository_path > dumpfile
  2. svnadmin load /svn/repository_path < dumpfile

  1. svnadmin hotcopy c:\repository d:\repobak
  2.                               來源             備份處
  3. svnadmin load backrepo < dumpfile

星期二, 5月 13, 2014

FAT Sample



http://webcache.googleusercontent.com/search?q=cache:http://read.pudn.com/downloads167/ebook/768493/lpc2136/fat/fat.c__.htm

www.pudn.com > 317676632136tft.rar > fat.c, change:2008-06-20,size:10191b


#include "fat.h" 
 
INT8U  fname[20][8]; 
INT8U  fext[20][3]; 
INT32U fclust[20]; 
INT8U  fcount; 
INT32U fsize[20]; 
 
 
 
 
 
INT32U  NextCluster;       //指向当前正在读取文件的簇号 
INT32U  SectorIndex=0;     //正在读扇区 
 
 
//////////////////////////////////////////////////////////////////////////////// 
//磁盘分区信息 
//////////////////////////////////////////////////////////////////////////////// 
INT8U Partition_Active;    // 0x80代表该分区为缺省分区 
INT8U Partition_StartHead;   // 该分区入口的磁头地址 
INT16U Partition_StartCylSect;   // 该分区入口的扇区地址和柱面地址 
INT8U Partition_PartType;    // 该分区类型 
INT8U Partition_EndHead;    // 该分区结束的扇区地址 
INT16U Partition_EndCylSect;   // 该分区结束的柱面地址 
INT32U Partition_StartLBA;    // 该分区内第一个扇区地址 
INT32U Partition_Size;     // 该分区所包含的扇区总数 
 
 
 
//////////////////////////////////////////////////////////////////////////////// 
//fat32 BPB结构,包括扩展BPB 
//////////////////////////////////////////////////////////////////////////////// 
INT8U BS_jmpBoot[3];     //jmp code 
INT8U BS_OEMName[8];     //oem and os like dos5.0 
 
INT16U BPB_BytesPerSec;     //扇区字节数 
INT8U BPB_SecPerClus;     //每簇扇区数 
INT16U BPB_RsvdSecCnt;     //保留扇区数 
INT8U BPB_NumFATs;     //FAT数目 
INT16U BPB_RootEntCnt;     //根目录项数 0 
INT16U BPB_TotSec16;      //小扇区总数 0 
INT8U BPB_Media;      //媒体描述符 
INT16U BPB_FATSz16;      //每FAT扇区数fat32不用为0 
INT16U BPB_SecPerTrk;      //每道扇区数 
INT16U BPB_NumHeads;      //磁头数 
INT32U BPB_HiddSec;      //隐藏扇区数 
INT32U BPB_TotSec32;      //总扇区数    
INT32U BPB_FATSz32;     //每FAT扇区数fat32 
INT16U BPB_ExtFlags;     //fat32扩展标志 
INT16U  BPB_FSVer;      //fat32特有,高位为fat32的主版本号,底位为次版本号 
INT32U BPB_RootClus;     //根目录簇号 
INT16U BPB_FSInfo;      //文件系统信息扇区号 
INT16U BPB_BKBootSec;     //引导扇区备份号 
INT8U BPB_Reserved[12];    //保留空间 
 
INT8U BS_drvNum;         //物理驱动器号 
INT8U BS_Reservd1;     //保留 
INT8U BS_BootSig;      //扩展引导标签 
INT32U BS_VolID;      //分区序号 
INT8U BS_VolLab[11];     //卷标 
INT8U BS_FilSysType[8];    //系统ID 
 
 
 
//////////////////////////////////////////////////////////////////////////////// 
//目录信息 
//////////////////////////////////////////////////////////////////////////////// 
INT8U   deName[8]; 
INT8U   deExtension[3]; 
INT32U  Clust;        //当前目录的簇号 
INT16U  Nums;         //仅FAT12—FAT16中的根目录区有效 
INT32U  Index;        //当前的BLOCK中目录项索引 
INT32U  FileSize;       //文件长度 
 
 
//////////////////////////////////////////////////////////////////////////////// 
//文件信息 
//////////////////////////////////////////////////////////////////////////////// 
INT8U DIR_Name[11];     //文件名,没有. 
INT8U DIR_Attr;             //文件属性,自低至高,只读、隐藏、系统、卷标、子目录、归档 
INT8U DIR_NTRes;            //系统保留 
INT8U DIR_CrtTimeTenth;      //创建时间的10毫秒位 
INT16U DIR_CrtTime;          //创建时间 
INT16U DIR_CrtDate;          //创建日期 
INT16U DIR_LastAccDate;      //最后访问日期 
INT16U DIR_FstClusHI;        //文件起始簇号高16位                
INT16U DIR_WrtTime;          //最近修改时间 
INT16U DIR_WrtDate;          //最近修改日期 
INT16U DIR_FstClusLO;        //文件起始簇号的低16位                
INT32U DIR_FileSize;         //文件长度 
 
 
 
//////////////////////////////////////////////////////////////////////////////// 
// 
//////////////////////////////////////////////////////////////////////////////// 
INT32U  FAT1Sec;      //FAT1表的位置 
INT32U  FAT2Sec; 
INT32U  FirstDataSector;    //第一个根目录位置,区号为2 
INT32U  FirstDirSector; 
//////////////////////////////////////////////////////////////////////////////// 
 
INT8U   BUFFER[512];  
 
INT8U MP3_BUFFER[512]; 
INT8U  TEXT[512]; 
 
INT8U filetype[][3] ={ {"MP3"},{"WMA"},{"MID"},{"LRC"}}; 
 
 
 
INT32U  FAT_MASK; 
INT16U  RootDirEnts;         // 根目录总的项数(FAT12&FAT16) 
 
 
INT8U Fat_Init(void) 
{    
  
 uint32 j; 
 SD_ReadBlock(0,BUFFER);   
  
 for(j=0;j<512 0="" 0x05="" 0x0b="" 0xe5="" 16="" 1="" 24="" 2="" 3="" 4bytes="" 8="" a="" amp="" artinfo.prstartlba="" artition_parttype="=" artition_startlba="" attr_directory="" attr_long_filename="" bits="" bpb710="" bpb="" bpb_bkbootsec="BUFFER[50]" bpb_bytespersec="BUFFER[11]" bpb_extflags="BUFFER[40]" bpb_fatsz16="BUFFER[22]" bpb_fatsz32="BUFFER[36]" bpb_fsinfo="BUFFER[48]" bpb_fsver="BUFFER[42]" bpb_hiddsec="BUFFER[28]" bpb_media="BUFFER[21];" bpb_numfats="BUFFER[16];" bpb_numheads="BUFFER[26]" bpb_rootclus="BUFFER[44]" bpb_rootentcnt="BUFFER[17]" bpb_rsvdseccnt="BUFFER[14]" bpb_secperclus="BUFFER[13];" bpb_secpertrk="BUFFER[24]" bpb_totsec16="BUFFER[19]" bpb_totsec32="BUFFER[32]" break="" bs_bootsig="BUFFER[66];" bs_drvnum="BUFFER[64];" bs_oemname="" bs_reservd1="BUFFER[65];" bs_volid="BUFFER[67]" buffer="" clust="(BUFFER[tem+20]<<16)" cluster="" deextension="" dename="" directory="" do="" ector="" eserved="BUFFER[52];" fat1sec="BPB_RsvdSecCnt+Partition_StartLBA;" fat2sec="FAT1Sec+BPB_FATSz32;" fat32="" fat_mask="FAT32_MASK;" fatnextcluster="" fatoffset="" filesize="(BUFFER[tem+28])" filetype="" firstdatasector="FAT2Sec+BPB_FATSz32;" for="" getfileclust="" i="" if="" ilsystype="" index="0;" int16u="" int32u="" int8u="" irstdatasector="" is="" ismusicfile="" it="" j="" message="" ndex="" nextcluster="0;" offset="0;" ollab="" part_type_fat32="" partion="" partition_parttype="BUFFER[450];" partition_size="BUFFER[458]+(BUFFER[459]<<8)+(BUFFER[460]<<16)+(BUFFER[461]<<24);" partition_startlba="BUFFER[454]+(BUFFER[455]<<8)+(BUFFER[456]<<16)+(BUFFER[457]<<24);" read="" readblockforcluster="" return="" sd_readblock="" sector="FAT1Sec" smusicfile="" strname="" struct="" tem="" text="" tmp="" void="" while="" x0200="" x02="" x08="" x0fffffff="" x20="" xf9="" ytespersec="">>9);    // 计算FAT扇区号 
        offset = fatOffset % BPB_BytesPerSec;                 // 计算FAT扇区号中表项的偏移地址 
        nextCluster = ReadBlockforCluster(sector,offset);    // 读取下一个簇号  
   // } 
    /* 
    else if(Partition_PartType == PART_TYPE_FAT16)           // 一个表项为 2bytes(16 bits) 
    {     
        fatOffset = cluster << 1;                          // 计算FAT扇区号 
        //sector = FirstFATSector + (fatOffset / BPB_BytesPerSec); 
        offset = fatOffset % BPB_BytesPerSec;        // 计算FAT扇区号中表项的偏移地址 
  nextCluster = ReadBlockforCluster(sector,offset); 
    }  
   */ 
    if (nextCluster >= (CLUST_EOFS & FAT_MASK))    // 是否文件的结束簇 
    { 
        nextCluster = CLUST_EOFE; 
    } 
    return nextCluster; 
}   
 
 
void GetMusicFile(void) 
  { 
    uint8 i; 
     fcount=0; 
    while(1) 
    { 
      GetFileClust();  
       
      if(Index==0) break; 
       
      for(i=0;i<8 deextension="" dename="" fcount="" fname="" for="" i="" if="">=65)  fext[fcount][i]=deExtension[i]+0x20; 
          
         else fext[fcount][i]=deExtension[i]; 
         } 
          
      fclust[fcount]=Clust; 
       
      fsize[fcount]=FileSize; 
       
      fcount++; 
       
      } 
    }