-
Notifications
You must be signed in to change notification settings - Fork 1
/
technical_details.tex
170 lines (146 loc) · 5.58 KB
/
technical_details.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
\documentclass[letterpaper,12pt,twoside]{book}
% Uncomment the following line to allow the usage of graphics (.png, .jpg)
%\usepackage[pdftex]{graphicx}
% Comment the following line to NOT allow the usage of umlauts
\usepackage[utf8]{inputenc}
\usepackage {tabu}
\usepackage{filecontents}
\usepackage[table]{xcolor}
\usepackage {longtable}
\usepackage{fancyhdr}
\usepackage{arydshln}
\usepackage{tikz-timing}[2009/05/15]
% define lightgray
\definecolor{lightgray}{gray}{0.9}
% alternate rowcolors for all tables
\let\oldtabular\tabular
\let\endoldtabular\endtabular
\renewenvironment{tabular}{\rowcolors{2}{white}{lightgray}\oldtabular}{\endoldtabular}
% alternate rowcolors for all long-tables
\let\oldlongtable\longtable
\let\endoldlongtable\endlongtable
\renewenvironment{longtable}{\rowcolors{2}{white}{lightgray}\oldlongtable} {
\endoldlongtable}
\usepackage{geometry}
\geometry{textwidth=7.5in}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[CE,CO]{\leftmark}
\fancyfoot[RE,RO]{[Technical Manual]\thepage}
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\footrulewidth}{1pt}
% Start the document
\begin{document}
\title{Electronics Design Technical Manual}
\author{Thomas Epperson}
\maketitle
\newpage
\tableofcontents
\newpage
\chapter {Introduction}
This manual describes the technical details useful for developers. It is a superset of the user manual.
\chapter {Use cases}
\chapter {Libraries}
Libraries contain content uses as the building blocks of a design. Libraries are stored in a variety of ways, and the ways to access those libraries depend on how they are stored. Creator ids are registered and two different entities should not have the same identifier. The id of the library is specific to the producer. Two different libraries should not have the same identifier. As long as a change to a library is still compatible with previous versions, only a change in the minor version is required. Libraries are assumed to be forward compatible as long as the creator, id, and major version are the same.
\section {Local File}
A library can be contained in a local file. A local file may be network accessible by means of some standard file mapping technology. Probably not the best option to use for a network accessible library.
\subsection {Format}
The format of a library saved to a plain file is a follows. The file extension is to be determined.
\begin {center}
\begin {tabular} { |c|c|c| }
\hline
Creator & 64 bit unsigned & Identifier for producer of the library. \\
Id & 64 bit unsigned & Identifies the specific library from the producer \\
Major Version & 16 bit unsigned & The major version of the library \\
Minor Version & 16 bit unsigned & The minor version of the library \\
\hline
\end {tabular}
\end {center}
\subsection {Element types}
There are many types of elements specified by a library. 3d model references depend on the library type. Local file libraries use a path relative to the location where the file is saved.
\begin {center}
\begin {tabular} { |c|c|c| }
\hline
Type & ID & Description\\
Schematic Symbol & 0 & Symbol printed on a schematic \\
PCB Data & 1 & Information required for population on a pcb design \\
PCB 3d model reference & 2 & Reference to 3d model data used to render a 3d model onto a pcb \\
PCB 3d Model data & 3 & Actual 3d model data used to render a 3d model onto a pcb \\
\hline
\end {tabular}
\end {center}
\section {Schematic element}
This is a major element of a schematic.
Points are defined by the schematic element. These points are referenced where required. Text elements are defined by the schematic element and referenced as required. There are specific reserved text elements whose contents are defined externally.
\begin {center}
\begin {tabular} { |c|c|c| }
\hline
Name & Index & Usage \\
Designator & 0 & The designator for the component such as R1 or Q17 \\
Part Number & 1 & Specified (if any) part numbers for the component \\
Value & 2 & Any applicable value for the component such as 15 ohms, or 10uF \\
\hline
\end {tabular}
\end {center}
\begin {center}
\begin {tabular} { |c|c|c| }
\hline
Lines & & \\
Arcs & & \\
Ovals & & \\
Polygons & & \\
Polylines & & \\
Rectangles & & \\
Rounded Rectangles & & \\
\hline
\end {tabular}
\end {center}
\chapter {User input}
\section {Input modes}
At any given point, the program is operating in a particular input mode. This input mode defines how user inputs are mapped to potential actions that can be performed by the user. For example, clicking the mouse can perform a wide variety of tasks.
\begin {itemize}
\item Delete an item
\item Delete multiple items
\item Place a new item
\item Move an item
\item Zoom in
\item Zoom out
\item Rotate view
\item Pan view
\item Rotate camera
\item Pan camera
\item Do nothing
\end {itemize}
This is a list of potential mouse actions to map to useful actions
\begin {itemize}
\item Left button single click
\item Middle button single click
\item Right button single click
\item Other button single click
\item Left button double click
\item Middle button double click
\item Right button double click
\item Other button double click
\item Left button click and drag
\item Middle button click and drag
\item Right button click and drag
\item Other button click and drag
\end {itemize}
There are various ways of interaction possible.
\begin {itemize}
\item Schematic symbol editing
\begin {itemize}
\item Add lines mode
\item Add arcs mode
\item Add ovals mode
\item Add polygons mode
\item Add polylines mode
\item Add rectangles mode
\item Add rounded rectangles mode
\end {itemize}
\item Schematic editing
\begin{itemize}
\item Add single component mode
\end{itemize}
\end {itemize}
\end{document}