[Ccom-develop] ccom/examples 1_com.c,1.4,1.5 allegro.cfg,1.4,1.5
Brought to you by:
chrisan,
rasmusmyklebust
From: Christer S. <ch...@us...> - 2005-09-18 17:15:55
|
Update of /cvsroot/ccomx/ccom/examples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21771/examples Modified Files: 1_com.c allegro.cfg Log Message: removed dbug printouts Index: 1_com.c =================================================================== RCS file: /cvsroot/ccomx/ccom/examples/1_com.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** 1_com.c 16 Feb 2004 07:20:19 -0000 1.4 --- 1_com.c 18 Sep 2005 17:15:44 -0000 1.5 *************** *** 1,133 **** ! /* This example shows how to use CCOM for accessing the serial port */ ! ! #include<allegro.h> ! #include <cgui.h> ! #include <cgui/mem.h> ! #include "ccom.h" ! #include <string.h> ! ! typedef struct t_portdata { ! char *rec, *send; ! int id, nr, scan, loopback; ! } t_portdata; ! ! static void receive(int portnr nouse, int readdata, int error nouse, void *data) ! { ! t_portdata *pd = data; ! int len = 2; ! char s[100]; ! sprintf(s, "%2x|OK", readdata); ! Req("",s); ! if (pd->rec) ! len += strlen(pd->rec); ! pd->rec = ResizeMem(char, pd->rec, len); ! pd->rec[len-2] = readdata; ! pd->rec[len-1] = 0; ! Refresh(pd->id); ! } ! ! static void scanning(void *data) ! { ! t_portdata *pd = data; ! ! if (pd->scan) ! CcomStartScanning(pd->nr, 0, receive, pd); ! else ! CcomStopScanning(pd->nr); ! } ! ! static void do_send(void *data) ! { ! t_portdata *pd = data; ! ! if (pd->send && *pd->send) ! CcomSendBuffer(pd->nr, pd->send, strlen(pd->send), NULL, NULL); ! } ! ! static void shut_down(void *data nouse) ! { ! StopProcessEvents(); ! } ! ! static void com_settings(void *data) ! { ! t_portdata *pd = data; ! CcomSettingsDialogue(pd->nr); ! } ! ! static void switch_loop_back_mode(void *data) ! { ! t_portdata *pd = data; ! CcomLoopBackMode(pd->nr, pd->loopback); ! } ! ! static void add_port_container(t_portdata *pd, int i) ! { ! int id, nrs[]={CCOM_COM1, CCOM_COM2, CCOM_COM3, CCOM_COM4}; ! char s[100]; ! ! pd->nr = nrs[i]; ! sprintf(s, "COM%d", i+1); ! StartContainer(DOWNLEFT, ADAPTIVE, s, CT_BORDER); ! AddButton(DOWNLEFT, "Port settings", com_settings, pd); ! pd->id = AddEditBox(DOWNLEFT, 300, "Received bytes:", FPTRSTR, 0, &pd->rec); ! id = AddCheck(RIGHT, "Scan port", &pd->scan); ! AddHandler(id, scanning, pd); ! AddEditBox(DOWNLEFT, 300, "Bytes to send:", FPTRSTR, 0, &pd->send); ! AddButton(RIGHT, " Send ", do_send, pd); ! id = AddCheck(DOWNLEFT, "Loop back mode", &pd->loopback); ! AddHandler(id, switch_loop_back_mode, pd); ! ! EndContainer(); ! } ! ! static void example_info(void *data nouse) ! { ! MkDialogue(ADAPTIVE, "Info window", W_FLOATING); ! AddTextBox(TOPLEFT, "This examples shows how to use CCOM._" ! "To make it meaningful you need to connect some equipment to some of" ! "the serial ports of your computer, and then set yor your computers port" ! "settings to the same values used by the connected equipment. Therefore" ! "you must know these settings._" ! "Specially you can connect two computers, one i each end of the line." ! "This requires another type of cable than the cable used for e.g. modems.", ! 400, 0, TB_FRAMESINK|TB_LINEFEED_); ! AddButton(DOWNLEFT, "Close", CloseWin, NULL); ! DisplayWin(); ! } ! ! static void show_code(void *data nouse) ! { ! int id; ! ! MkDialogue(ADAPTIVE, "Code view", W_FLOATING); ! id = AddTextBox(DOWNLEFT, "1_com.c", 670, 54, TB_TEXTFILE|TB_FRAMESINK|TB_PREFORMAT|3); ! MakeStretchable(id, NULL, NULL, 0); ! AddButton(DOWNLEFT, "Close", CloseWin, NULL); ! DisplayWin(); ! } ! ! int main(void) ! { ! static t_portdata pd[4]; ! int i; ! ! InitCguiWindowedMode(); ! //InitCgui(640, 480, 16); ! MkDialogue(ADAPTIVE, "Serial communication example", 0); ! AddButton(DOWNLEFT, "E~xit", shut_down, pd); ! AddButton(RIGHT, "Example info", example_info, NULL); ! AddButton(RIGHT, "Show code", show_code, NULL); ! /* Too many similar labels, turn off or else infinite searching */ ! AutoHotKeys(0); ! for (i=0; i<4; i++) ! add_port_container(pd + i, i); ! DisplayWin(); ! ProcessEvents(); ! for (i=0; i<4; i++) { ! Release(pd[i].rec); ! Release(pd[i].send); ! } ! return 0; ! } ! END_OF_MAIN(); --- 1,130 ---- ! /* This example shows how to use CCOM for accessing the serial port */ ! ! #include<allegro.h> ! #include <cgui.h> ! #include <cgui/mem.h> ! #include "ccom.h" ! #include <string.h> ! ! typedef struct t_portdata { ! char *rec, *send; ! int id, nr, scan, loopback; ! } t_portdata; ! ! static void receive(int portnr nouse, int readdata, int error nouse, void *data) ! { ! t_portdata *pd = data; ! int len = 2; ! if (pd->rec) ! len += strlen(pd->rec); ! pd->rec = ResizeMem(char, pd->rec, len); ! pd->rec[len-2] = readdata; ! pd->rec[len-1] = 0; ! Refresh(pd->id); ! } ! ! static void scanning(void *data) ! { ! t_portdata *pd = data; ! ! if (pd->scan) ! CcomStartScanning(pd->nr, 0, receive, pd); ! else ! CcomStopScanning(pd->nr); ! } ! ! static void do_send(void *data) ! { ! t_portdata *pd = data; ! ! if (pd->send && *pd->send) ! CcomSendBuffer(pd->nr, pd->send, strlen(pd->send), NULL, NULL); ! } ! ! static void shut_down(void *data nouse) ! { ! StopProcessEvents(); ! } ! ! static void com_settings(void *data) ! { ! t_portdata *pd = data; ! CcomSettingsDialogue(pd->nr); ! } ! ! static void switch_loop_back_mode(void *data) ! { ! t_portdata *pd = data; ! CcomLoopBackMode(pd->nr, pd->loopback); ! } ! ! static void add_port_container(t_portdata *pd, int i) ! { ! int id, nrs[]={CCOM_COM1, CCOM_COM2, CCOM_COM3, CCOM_COM4}; ! char s[100]; ! ! pd->nr = nrs[i]; ! sprintf(s, "COM%d", i+1); ! StartContainer(DOWNLEFT, ADAPTIVE, s, CT_BORDER); ! AddButton(DOWNLEFT, "Port settings", com_settings, pd); ! pd->id = AddEditBox(DOWNLEFT, 300, "Received bytes:", FPTRSTR, 0, &pd->rec); ! id = AddCheck(RIGHT, "Scan port", &pd->scan); ! AddHandler(id, scanning, pd); ! AddEditBox(DOWNLEFT, 300, "Bytes to send:", FPTRSTR, 0, &pd->send); ! AddButton(RIGHT, " Send ", do_send, pd); ! id = AddCheck(DOWNLEFT, "Loop back mode", &pd->loopback); ! AddHandler(id, switch_loop_back_mode, pd); ! ! EndContainer(); ! } ! ! static void example_info(void *data nouse) ! { ! MkDialogue(ADAPTIVE, "Info window", W_FLOATING); ! AddTextBox(TOPLEFT, "This examples shows how to use CCOM._" ! "To make it meaningful you need to connect some equipment to some of" ! "the serial ports of your computer, and then set yor your computers port" ! "settings to the same values used by the connected equipment. Therefore" ! "you must know these settings._" ! "Specially you can connect two computers, one i each end of the line." ! "This requires another type of cable than the cable used for e.g. modems.", ! 400, 0, TB_FRAMESINK|TB_LINEFEED_); ! AddButton(DOWNLEFT, "Close", CloseWin, NULL); ! DisplayWin(); ! } ! ! static void show_code(void *data nouse) ! { ! int id; ! ! MkDialogue(ADAPTIVE, "Code view", W_FLOATING); ! id = AddTextBox(DOWNLEFT, "1_com.c", 670, 54, TB_TEXTFILE|TB_FRAMESINK|TB_PREFORMAT|3); ! MakeStretchable(id, NULL, NULL, 0); ! AddButton(DOWNLEFT, "Close", CloseWin, NULL); ! DisplayWin(); ! } ! ! int main(void) ! { ! static t_portdata pd[4]; ! int i; ! ! InitCguiWindowedMode(); ! //InitCgui(640, 480, 16); ! MkDialogue(ADAPTIVE, "Serial communication example", 0); ! AddButton(DOWNLEFT, "E~xit", shut_down, pd); ! AddButton(RIGHT, "Example info", example_info, NULL); ! AddButton(RIGHT, "Show code", show_code, NULL); ! /* Too many similar labels, turn off or else infinite searching */ ! AutoHotKeys(0); ! for (i=0; i<4; i++) ! add_port_container(pd + i, i); ! DisplayWin(); ! ProcessEvents(); ! for (i=0; i<4; i++) { ! Release(pd[i].rec); ! Release(pd[i].send); ! } ! return 0; ! } ! END_OF_MAIN(); Index: allegro.cfg =================================================================== RCS file: /cvsroot/ccomx/ccom/examples/allegro.cfg,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** allegro.cfg 8 Feb 2004 20:47:21 -0000 1.4 --- allegro.cfg 18 Sep 2005 17:15:44 -0000 1.5 *************** *** 1,35 **** ! [system] ! language = en ! keyboard = us ! ! [cgui] ! language = en ! ! [cgui:screen-res] ! Width = 800 ! Height = 600 ! Colour_depth = 24 ! ! [COM2] ! Baud-rate = 9600 ! Parity = 1 ! Parity-enabled = 1 ! Stopbits = 2 ! Bits = 7 ! Interrupt-control = 0 ! IRQ-nr = 0 ! Flow-control = 0 ! Buffer-size = 0 ! Port-address = 2F8 ! ! [COM1] ! Baud-rate = 9600 ! Parity = 1 ! Parity-enabled = 1 ! Stopbits = 2 ! Bits = 7 ! Interrupt-control = 0 ! IRQ-nr = 0 ! Flow-control = 0 ! Buffer-size = 0 ! Port-address = 3F8 --- 1,35 ---- ! [system] ! language = en ! keyboard = us ! ! [cgui] ! language = en ! ! [cgui:screen-res] ! Width = 800 ! Height = 600 ! Colour_depth = 24 ! ! [COM2] ! Baud-rate = 9600 ! Parity = 1 ! Parity-enabled = 1 ! Stopbits = 2 ! Bits = 7 ! Interrupt-control = 0 ! IRQ-nr = 0 ! Flow-control = 0 ! Buffer-size = 0 ! Port-address = 2F8 ! ! [COM1] ! Baud-rate = 9600 ! Parity = 0 ! Parity-enabled = 1 ! Stopbits = 2 ! Bits = 7 ! Interrupt-control = 0 ! IRQ-nr = 0 ! Flow-control = 0 ! Buffer-size = 0 ! Port-address = 3F8 |