Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Testing
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Testing
Commits
4df5984d
Commit
4df5984d
authored
Feb 17, 2016
by
Grzegorz Daniluk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sw: adding a simple tool to drive fiber switch box through FTDI
parent
b7a62c59
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
96 additions
and
0 deletions
+96
-0
Makefile
sw/fiberswitch-tester/Makefile
+16
-0
fiber-switch.c
sw/fiberswitch-tester/fiber-switch.c
+58
-0
fiber-switch.h
sw/fiberswitch-tester/fiber-switch.h
+22
-0
No files found.
sw/fiberswitch-tester/Makefile
0 → 100644
View file @
4df5984d
CC
=
gcc
NAME
=
fiber-switch
CFLAGS
=
LDFLAGS
=
LIB
=
-lftdi
OBJ
=
fiber-switch.o
all
:
$(OBJ)
$(CC)
$(LDFLAGS)
-o
$(NAME)
$^
$(LIB)
%.o
:
%.c
$(CC)
-c
$(CFLAGS)
$^
clean
:
rm
-rf
*
.o fiber-switch
sw/fiberswitch-tester/fiber-switch.c
0 → 100644
View file @
4df5984d
#include <stdio.h>
#include <ftdi.h>
#include "fiber-switch.h"
struct
ftdi_context
ftdic
;
int
activate
(
int
sw
,
int
out
)
{
unsigned
char
c
=
0
;
int
config
[
3
][
2
]
=
{
{
SW1_OUT1
,
SW1_OUT2
},
{
SW2_OUT1
,
SW2_OUT2
},
{
SW3_OUT1
,
SW3_OUT2
}
};
if
(
sw
<
1
||
sw
>
3
)
{
fprintf
(
stderr
,
"Switch index %d, outside allowed range
\n
"
,
sw
);
return
-
1
;
}
if
(
out
<
1
||
out
>
2
)
{
fprintf
(
stderr
,
"Output index %d, outside allowed range
\n
"
,
out
);
return
-
1
;
}
if
(
ftdi_usb_open
(
&
ftdic
,
0x0403
,
0x6015
)
<
0
)
{
printf
(
"Can't open FTDI
\n
"
);
return
-
1
;
}
printf
(
"Driving switch %d to output %d
\n
"
,
sw
,
out
);
ftdi_enable_bitbang
(
&
ftdic
,
config
[
sw
-
1
][
out
-
1
]);
c
=
config
[
sw
-
1
][
out
-
1
];
printf
(
"c=%02X
\n
"
,
c
);
ftdi_write_data
(
&
ftdic
,
&
c
,
1
);
sleep
(
1
);
c
=
0
;
ftdi_write_data
(
&
ftdic
,
&
c
,
1
);
ftdi_usb_close
(
&
ftdic
);
return
0
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
sw
,
out
;
ftdi_init
(
&
ftdic
);
if
(
argc
<
3
)
{
fprintf
(
stderr
,
"%s: not enough arguments
\n
"
,
argv
[
0
]);
return
-
1
;
}
sw
=
atoi
(
argv
[
1
]);
out
=
atoi
(
argv
[
2
]);
return
activate
(
sw
,
out
);
}
sw/fiberswitch-tester/fiber-switch.h
0 → 100644
View file @
4df5984d
#ifndef __FIBER_SWITCH_H__
#define __FIBER_SWITCH_H__
#define FTDI_TXD 0x01
#define FTDI_RXD 0x02
#define FTDI_RTS 0x04
#define FTDI_CTS 0x08
#define FTDI_DTR 0x10
#define FTDI_DSR 0x20
#define FTDI_DCD 0x40
#define FTDI_RI 0x80
#define SW1_OUT1 FTDI_DCD //white
#define SW1_OUT2 FTDI_DSR //purple
#define SW2_OUT1 FTDI_CTS //white
#define SW2_OUT2 FTDI_DTR //purple
#define SW3_OUT1 FTDI_RTS //white
#define SW3_OUT2 FTDI_RXD //purple
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment