Commit a8327c69 authored by lcgamboa's avatar lcgamboa

new: support to chose AVR debugger type

parent 2fae18dd
......@@ -204,7 +204,7 @@ class board
/**
* @brief Start debug support
*/
virtual int DebugInit(void)=0;
virtual int DebugInit(int dtyppe)=0;
/**
* @brief debug step (pooling)
......
......@@ -517,15 +517,15 @@ cboard_0::Run_CPU(void)
//class dependent
int
cboard_0::DebugInit(void)
cboard_0::DebugInit(int dtyppe)
{
switch (ptype)
{
case _PIC:
return board_pic::DebugInit ();
return board_pic::DebugInit (dtyppe);
break;
case _AVR:
return board_avr::DebugInit ();
return board_avr::DebugInit (dtyppe);
break;
}
return 0;
......
......@@ -41,7 +41,7 @@ class cboard_0:public board_pic, public board_avr
int ptype;
lxBitmap * micbmp;
public:
int DebugInit(void);
int DebugInit(int dtyppe);
void DebugLoop(void);
int CpuInitialized(void);
void MSetSerial(const char * port);
......
......@@ -43,7 +43,7 @@ class board_avr: virtual public board
{
public:
board_avr(void);//Called once on board creation
int DebugInit(void);
int DebugInit(int dtyppe);
void DebugLoop(void);
int CpuInitialized(void);
void MSetSerial(const char * port);
......@@ -105,6 +105,7 @@ class board_avr: virtual public board
unsigned char checksum(char* str);
int read_ihx_avr(const char * fname, int leeprom);
int write_ihx_avr(const char * fname);
int avr_debug_type;
};
......
......@@ -146,9 +146,9 @@ board_pic::MDumpMemory(const char * fname)
}
int
board_pic::DebugInit(void)
board_pic::DebugInit(int dtyppe) //argument not used in picm only mplabx
{
return mplabxd_init (this);
return !mplabxd_init (this) -1 ;
}
void
......
......@@ -33,7 +33,7 @@
class board_pic: virtual public board
{
public:
int DebugInit(void);
int DebugInit(int dtyppe);
void DebugLoop(void);
int CpuInitialized(void);
void MSetSerial(const char * port);
......
......@@ -355,6 +355,11 @@ CPWindow1::Configure(CControl * control, const char * home)
togglebutton1.SetCheck (debug);
}
if (!strcmp (name, "debugt"))
{
sscanf (value, "%i", &debug_type);
}
if (!strcmp (name, "osc_on"))
{
sscanf (value, "%i", &osc_on);
......@@ -467,11 +472,23 @@ CPWindow1::Configure(CControl * control, const char * home)
#else
if (debug)
{
if (pboard->DebugInit () == 0)
statusbar1.SetField (1, status + lxT (" Debug: On"));
else
int ret=pboard->DebugInit (debug_type);
if ( ret < 0)
{
statusbar1.SetField (1, status + lxT (" Debug: Error"));
}
else
{
if(ret)
{
statusbar1.SetField (1, status + lxT (" Debug: GDB"));
}
else
{
statusbar1.SetField (1, status + lxT (" Debug: MPLABX"));
}
}
}
else
{
statusbar1.SetField (1, status + lxT (" Debug: Off"));
......@@ -572,6 +589,7 @@ CPWindow1::_EvOnDestroy(CControl * control)
saveprefs (lxT ("lab"), String ().Format ("%i", lab));
saveprefs (lxT ("clock"), combo1.GetText ());
saveprefs (lxT ("debug"), itoa (debug));
saveprefs (lxT ("debugt"), itoa (debug_type));
saveprefs (lxT ("position"), itoa (GetX ()) + lxT (",") + itoa (GetY ()));
saveprefs (lxT ("osc_on"), itoa (pboard->GetUseOscilloscope ()));
saveprefs (lxT ("spare_on"), itoa (pboard->GetUseSpareParts ()));
......@@ -640,7 +658,7 @@ CPWindow1::filedialog1_EvOnClose(int retId)
pa = mcupwr;
mcupwr = 0;
while(status.st[1] & ST_TH)usleep(100);//wait thread
while (status.st[1] & ST_TH)usleep (100); //wait thread
if (retId && (filedialog1.GetType () == (lxFD_OPEN | lxFD_CHANGE_DIR)))
{
......@@ -682,25 +700,27 @@ CPWindow1::filedialog1_EvOnClose(int retId)
if (retId && (filedialog1.GetType () == (lxFD_SAVE | lxFD_CHANGE_DIR)))
{
pboard->MDumpMemory (filedialog1.GetFileName ());
#ifdef __EMSCRIPTEN__
EM_ASM_({
var filename=UTF8ToString($0);
var buf = FS.readFile(filename);
var blob = new Blob([buf], {"type" : "application/octet-stream" });
var text = URL.createObjectURL(blob);
#ifdef __EMSCRIPTEN__
EM_ASM_ ({
var filename = UTF8ToString ($0);
var buf = FS.readFile (filename);
var blob = new Blob ([buf],
{
"type" : "application/octet-stream" });
var text = URL.createObjectURL (blob);
var element = document.createElement('a');
element.setAttribute('href', text);
element.setAttribute('download', filename);
var element = document.createElement ('a');
element.setAttribute ('href', text);
element.setAttribute ('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
document.body.appendChild (element);
element.click();
element.click ();
document.body.removeChild(element);
URL.revokeObjectURL(text);
},filedialog1.GetFileName ().c_str ());
document.body.removeChild (element);
URL.revokeObjectURL (text);
}, filedialog1.GetFileName ().c_str ());
#endif
}
......@@ -1075,6 +1095,7 @@ CPWindow1::filedialog2_EvOnClose(int retId)
saveprefs (lxT ("lab"), String ().Format ("%i", lab));
saveprefs (lxT ("clock"), combo1.GetText ());
saveprefs (lxT ("debug"), itoa (debug));
saveprefs (lxT ("debugt"), itoa (debug_type));
saveprefs (lxT ("position"), itoa (GetX ()) + lxT (",") + itoa (GetY ()));
saveprefs (lxT ("osc_on"), itoa (pboard->GetUseOscilloscope ()));
saveprefs (lxT ("spare_on"), itoa (pboard->GetUseSpareParts ()));
......@@ -1114,24 +1135,26 @@ CPWindow1::filedialog2_EvOnClose(int retId)
prefs.LoadFromFile (fname);
#ifdef __EMSCRIPTEN__
EM_ASM_({
var filename=UTF8ToString($0);
var buf = FS.readFile(filename);
var blob = new Blob([buf], {"type" : "application/octet-stream" });
var text = URL.createObjectURL(blob);
EM_ASM_ ({
var filename = UTF8ToString ($0);
var buf = FS.readFile (filename);
var blob = new Blob ([buf],
{
"type" : "application/octet-stream" });
var text = URL.createObjectURL (blob);
var element = document.createElement('a');
element.setAttribute('href', text);
element.setAttribute('download', filename);
var element = document.createElement ('a');
element.setAttribute ('href', text);
element.setAttribute ('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
document.body.appendChild (element);
element.click();
element.click ();
document.body.removeChild(element);
URL.revokeObjectURL(text);
},filedialog2.GetFileName ().c_str ());
document.body.removeChild (element);
URL.revokeObjectURL (text);
}, filedialog2.GetFileName ().c_str ());
#endif
}
......@@ -1210,21 +1233,21 @@ extern "C"
{
if (strstr (fname, ".pzw"))
{
printf("Loading .pzw...\n");
printf ("Loading .pzw...\n");
Window1.filedialog2.SetType (lxFD_OPEN | lxFD_CHANGE_DIR);
Window1.filedialog2.SetFileName (fname);
Window1.filedialog2_EvOnClose (1);
}
else if (strstr (fname, ".hex"))
{
printf("Loading .hex...\n");
printf ("Loading .hex...\n");
Window1.filedialog1.SetType (lxFD_OPEN | lxFD_CHANGE_DIR);
Window1.filedialog1.SetFileName (fname);
Window1.filedialog1_EvOnClose (1);
}
else
{
printf("Unknow file %s !!\n",fname);
printf ("Unknow file %s !!\n", fname);
}
}
}
......
......@@ -169,6 +169,13 @@ public:
return scale;
};
/**
* @brief Return the selected debugger type
*/
int Get_debug_type(void) {
return debug_type;
};
/**
* @brief Return actual power status of microcontroller ON/OFF
*/
......@@ -211,6 +218,11 @@ public:
void Set_mcurst(int pr) {
mcurst = pr;
};
void Set_debug_type(int dt) {
debug_type = dt;
};
void Set_mcudbg(int pd);
void SetPATH(String path) {
......@@ -259,6 +271,7 @@ private:
int mcurst;
int mcudbg;
int debug;
int debug_type;
int osc_on;
int spare_on;
......
......@@ -38,16 +38,16 @@ extern char PROGDEVICE[100];
extern char SERIALDEVICE[100];
char * serial_list (void);
char * serial_list(void);
//Implementation
void
CPWindow3::_EvOnCreate(CControl * control)
{
combo1.SetText(String::FromAscii(SERIALDEVICE));
combo1.SetText (String::FromAscii (SERIALDEVICE));
#ifdef _USE_PICSTARTP_
combo2.SetText(String::FromAscii(PROGDEVICE));
combo2.SetText (String::FromAscii (PROGDEVICE));
combo2.SetVisible (true);
label2.SetVisible (true);
#else
......@@ -57,35 +57,36 @@ CPWindow3::_EvOnCreate(CControl * control)
}
void
CPWindow3::button1_EvMouseButtonClick(CControl * control, uint button, uint x, uint y,uint state)
CPWindow3::button1_EvMouseButtonClick(CControl * control, uint button, uint x, uint y, uint state)
{
int osc_on= Window1.GetBoard()->GetUseOscilloscope();
int spare_on= Window1.GetBoard()->GetUseSpareParts();
int osc_on = Window1.GetBoard ()->GetUseOscilloscope ();
int spare_on = Window1.GetBoard ()->GetUseSpareParts ();
Window1.Set_debug_type (combo3.GetText ().compare ("GDB") == 0);
#ifdef _USE_PICSTARTP_
if(combo1.GetText()==combo2.GetText())
#ifdef _USE_PICSTARTP_
if (combo1.GetText () == combo2.GetText ())
{
Message(lxT("Use diferent ports!"));
Message (lxT ("Use diferent ports!"));
return;
}
#endif
strcpy(SERIALDEVICE,(char*)combo1.GetText().char_str());
#endif
strcpy (SERIALDEVICE, (char*) combo1.GetText ().char_str ());
#ifdef _USE_PICSTARTP_
strcpy(PROGDEVICE,(char*)combo2.GetText().char_str());
strcpy (PROGDEVICE, (char*) combo2.GetText ().char_str ());
#endif
Window1._EvOnDestroy(control);
Window1._EvOnCreate(control);
Window1._EvOnDestroy (control);
Window1._EvOnCreate (control);
if(osc_on) Window1.menu1_Modules_Oscilloscope_EvMenuActive(this);
if(spare_on) Window1.menu1_Modules_Spareparts_EvMenuActive(this);
if (osc_on) Window1.menu1_Modules_Oscilloscope_EvMenuActive (this);
if (spare_on) Window1.menu1_Modules_Spareparts_EvMenuActive (this);
WDestroy();
WDestroy ();
}
void
CPWindow3::_EvOnShow (CControl * control)
CPWindow3::_EvOnShow(CControl * control)
{
char * resp = serial_list ();
......@@ -93,11 +94,11 @@ CPWindow3::_EvOnShow (CControl * control)
if (resp)
{
String temp;
temp=combo1.GetText ();
temp = combo1.GetText ();
combo1.SetItems (resp);
combo1.SetText (temp);
temp=combo2.GetText ();
temp = combo2.GetText ();
combo2.SetItems (resp);
combo2.SetText (temp);
......@@ -108,6 +109,14 @@ CPWindow3::_EvOnShow (CControl * control)
printf ("No serial ports found!\n");
}
if (Window1.Get_debug_type ())
{
combo3.SetText ("GDB");
}
else
{
combo3.SetText ("MPLABX");
}
}
......
......@@ -37,6 +37,8 @@ class CPWindow3:public CPWindow
CButton button1;
CCombo combo1;
CCombo combo2;
CLabel label3;
CCombo combo3;
/*#Events*/
void _EvOnCreate(CControl * control);
void _EvOnShow(CControl * control);
......
......@@ -47,8 +47,8 @@ CPWindow3::CPWindow3(void)
label1.SetClass(lxT("CLabel"));
label1.SetName(lxT("label1"));
label1.SetTag(0);
label1.SetX(50);
label1.SetY(55);
label1.SetX(49);
label1.SetY(39);
label1.SetWidth(87);
label1.SetHeight(20);
label1.SetHint(lxT(""));
......@@ -63,8 +63,8 @@ CPWindow3::CPWindow3(void)
label2.SetClass(lxT("CLabel"));
label2.SetName(lxT("label2"));
label2.SetTag(0);
label2.SetX(51);
label2.SetY(105);
label2.SetX(49);
label2.SetY(71);
label2.SetWidth(88);
label2.SetHeight(20);
label2.SetHint(lxT(""));
......@@ -79,8 +79,8 @@ CPWindow3::CPWindow3(void)
button1.SetClass(lxT("CButton"));
button1.SetName(lxT("button1"));
button1.SetTag(0);
button1.SetX(126);
button1.SetY(156);
button1.SetX(125);
button1.SetY(146);
button1.SetWidth(65);
button1.SetHeight(28);
button1.SetHint(lxT(""));
......@@ -95,8 +95,8 @@ CPWindow3::CPWindow3(void)
combo1.SetClass(lxT("CCombo"));
combo1.SetName(lxT("combo1"));
combo1.SetTag(0);
combo1.SetX(144);
combo1.SetY(53);
combo1.SetX(143);
combo1.SetY(37);
combo1.SetWidth(137);
combo1.SetHeight(26);
combo1.SetHint(lxT(""));
......@@ -112,8 +112,8 @@ CPWindow3::CPWindow3(void)
combo2.SetClass(lxT("CCombo"));
combo2.SetName(lxT("combo2"));
combo2.SetTag(0);
combo2.SetX(145);
combo2.SetY(103);
combo2.SetX(144);
combo2.SetY(68);
combo2.SetWidth(137);
combo2.SetHeight(26);
combo2.SetHint(lxT(""));
......@@ -124,6 +124,39 @@ CPWindow3::CPWindow3(void)
combo2.SetText(lxT(""));
combo2.SetReadOnly(0);
CreateChild(&combo2);
//label3
label3.SetFOwner(this);
label3.SetClass(lxT("CLabel"));
label3.SetName(lxT("label3"));
label3.SetTag(0);
label3.SetX(51);
label3.SetY(101);
label3.SetWidth(87);
label3.SetHeight(20);
label3.SetHint(lxT(""));
label3.SetEnable(1);
label3.SetVisible(1);
label3.SetPopupMenu(NULL);
label3.SetText(lxT("AVR DBG:"));
label3.SetAlign(1);
CreateChild(&label3);
//combo3
combo3.SetFOwner(this);
combo3.SetClass(lxT("CCombo"));
combo3.SetName(lxT("combo3"));
combo3.SetTag(0);
combo3.SetX(144);
combo3.SetY(98);
combo3.SetWidth(137);
combo3.SetHeight(26);
combo3.SetHint(lxT(""));
combo3.SetEnable(1);
combo3.SetVisible(1);
combo3.SetPopupMenu(NULL);
combo3.SetItems(lxT("MPLABX,GDB,"));
combo3.SetText(lxT("MPLABX"));
combo3.SetReadOnly(0);
CreateChild(&combo3);
/*#Others*/
//lxrad automatic generated block end, don't edit above!
};
......@@ -9,6 +9,7 @@
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">0</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
......@@ -17,7 +18,6 @@
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvKeyboardKey type="Event">FALSE</EvKeyboardKey>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
......@@ -33,13 +33,14 @@
<Class type="String">CLabel</Class>
<Name type="String">label1</Name>
<Tag type="int">0</Tag>
<X type="int">50</X>
<Y type="int">55</Y>
<X type="int">49</X>
<Y type="int">39</Y>
<Width type="uint">87</Width>
<Height type="uint">20</Height>
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
......@@ -48,7 +49,6 @@
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvKeyboardKey type="Event">FALSE</EvKeyboardKey>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
......@@ -59,13 +59,14 @@
<Class type="String">CLabel</Class>
<Name type="String">label2</Name>
<Tag type="int">0</Tag>
<X type="int">51</X>
<Y type="int">105</Y>
<X type="int">49</X>
<Y type="int">71</Y>
<Width type="uint">88</Width>
<Height type="uint">20</Height>
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
......@@ -74,7 +75,6 @@
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvKeyboardKey type="Event">FALSE</EvKeyboardKey>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
......@@ -85,13 +85,14 @@
<Class type="String">CButton</Class>
<Name type="String">button1</Name>
<Tag type="int">0</Tag>
<X type="int">126</X>
<Y type="int">156</Y>
<X type="int">125</X>
<Y type="int">146</Y>
<Width type="uint">65</Width>
<Height type="uint">28</Height>
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
......@@ -100,7 +101,6 @@
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvKeyboardKey type="Event">FALSE</EvKeyboardKey>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
......@@ -110,13 +110,14 @@
<Class type="String">CCombo</Class>
<Name type="String">combo1</Name>
<Tag type="int">0</Tag>
<X type="int">144</X>
<Y type="int">53</Y>
<X type="int">143</X>
<Y type="int">37</Y>
<Width type="uint">137</Width>
<Height type="uint">26</Height>
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
......@@ -125,7 +126,6 @@
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvKeyboardKey type="Event">FALSE</EvKeyboardKey>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
......@@ -138,13 +138,14 @@
<Class type="String">CCombo</Class>
<Name type="String">combo2</Name>
<Tag type="int">0</Tag>
<X type="int">145</X>
<Y type="int">103</Y>
<X type="int">144</X>
<Y type="int">68</Y>
<Width type="uint">137</Width>
<Height type="uint">26</Height>
<Hint type="String"></Hint>
<Enable type="bool">0</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
......@@ -153,7 +154,6 @@
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvKeyboardKey type="Event">FALSE</EvKeyboardKey>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
......@@ -162,4 +162,58 @@
<ReadOnly type="bool">0</ReadOnly>
<EvOnComboChange type="Event">FALSE</EvOnComboChange>
</combo2>
<label3>
<Class type="String">CLabel</Class>
<Name type="String">label3</Name>
<Tag type="int">0</Tag>
<X type="int">51</X>
<Y type="int">101</Y>
<Width type="uint">87</Width>
<Height type="uint">20</Height>
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
<EvMouseButtonRelease type="Event">FALSE</EvMouseButtonRelease>
<EvMouseButtonClick type="Event">FALSE</EvMouseButtonClick>
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
<Text type="String">AVR DBG:</Text>
<Align type="CAlign">1</Align>
</label3>
<combo3>
<Class type="String">CCombo</Class>
<Name type="String">combo3</Name>
<Tag type="int">0</Tag>
<X type="int">144</X>
<Y type="int">98</Y>
<Width type="uint">137</Width>
<Height type="uint">26</Height>
<Hint type="String"></Hint>
<Enable type="bool">1</Enable>
<Visible type="bool">1</Visible>
<Color type="String">#000001</Color>
<PopupMenu type="PopupMenu">NULL</PopupMenu>
<EvMouseMove type="Event">FALSE</EvMouseMove>
<EvMouseButtonPress type="Event">FALSE</EvMouseButtonPress>
<EvMouseButtonRelease type="Event">FALSE</EvMouseButtonRelease>
<EvMouseButtonClick type="Event">FALSE</EvMouseButtonClick>
<EvMouseButtonDoubleClick type="Event">FALSE</EvMouseButtonDoubleClick>
<EvKeyboardPress type="Event">FALSE</EvKeyboardPress>
<EvKeyboardRelease type="Event">FALSE</EvKeyboardRelease>
<EvOnDraw type="Event">FALSE</EvOnDraw>
<EvOnFocusIn type="Event">FALSE</EvOnFocusIn>
<EvOnFocusOut type="Event">FALSE</EvOnFocusOut>
<Items type="StringList">MPLABX,GDB,</Items>
<Text type="String">MPLABX</Text>
<ReadOnly type="bool">0</ReadOnly>
<EvOnComboChange type="Event">FALSE</EvOnComboChange>
</combo3>
</window3>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment