2017年3月24日 星期五

[MCU] STM32/EFM32 small C interpreter for scripting

網路上有用MCU 實作小型的 C interpreter for scripting. 有興趣可以研究一下。


有幾個值得注意的地方:

\ports\library_common.c  ç 自定LIBRARY

EMBEDDED_HOST ç 為主要的MACRO

\ports\STM32\platform_stm32.c   ç  library和底層相關的code


值得注意的是,佔用了很大的HEAP      #define HEAP_SIZE (48*1024)        /* space for the heap and the stack */


2017年3月17日 星期五

[視窗介面] VC++ object array

最近在寫visual studio c++ windows 程式, 以前就是一個物件一個程式,但後來覺得相同的物件應該可以寫成陣列的方式了,這樣管理起來也比較方便,研究了一下:
1、button event:
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    Button^ thisBox = safe_cast<Button^>(sender);
    textBox2->Text = thisBox->Text;
}
2、radioButton:
比較高級的寫法
private: System::Void radioButton4_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {

     array<RadioButton ^, 2>^buttons = { { radioButton4, radioButton5, radioButton6 },{ radioButton7, radioButton8, radioButton9 } };

     int i;
     for (i = 0; i < 3; i++) {
         if (buttons[0,i]->Checked) textBox3->Text = "Group1OK" + i.ToString();
     }
     for (i = 0; i < 3; i++) {
         if (buttons[1, i]->Checked) textBox2->Text = "Group2OK" + i.ToString();
     }
}

更高級的寫法
private: System::Void radioButton4_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {

     array<RadioButton ^, 2>^buttons = { { radioButton4, radioButton5, radioButton6 },{ radioButton7, radioButton8, radioButton9 } };
     array<TextBox ^>^textboxs = { textBox3, textBox2 };

     int i,j;
     for (j = 0; j < 2; j++) {
         for (i = 0; i < 3; i++) {
              if (buttons[j,i]->Checked) textboxs[j]->Text = "Group" + j.ToString() + "OK" +i.ToString();
         }
     }
}


2017年3月10日 星期五

[案件] 518接案心得

和同事在518創了帳號, 這次試試看主動出擊是否會有效果, 不過這2個月下來的心得:
1、case不多
2、就算和業主接洽了一段時間並且報價後,就沒有下文了。

註:
為了可以不要浪費太多時間在找案件上,寫了一個簡單的爬蟲程式來check 是否有新案件登入