<root>
<document schema='101' license='1,canary_wharfe,B4YVR5' title='' description='' target='PIC.16F.16F877A' >
	<config data='!0,3f72%0,2%2,0%3,0%6,1%7,0%9,3%b,1%8,1%d,1' clkspd='19660800' simspd='1' usewdt='0' constif='0' />
	<plugins >
		<dll_dbg_icd enabled='0' >
			<data name='debug' value='1' />
			<data name='userpins' value='0' />
			<data name='speed' value='0' />
			<data name='usev9' value='0' />
			<data name='breaks' value='8' />
			<data name='stacks' value='8' />
			<data name='clkport' value='1' />
			<data name='clkbit' value='6' />
			<data name='dataport' value='1' />
			<data name='databit' value='7' />
			<data name='ghostype' value='0' />
			<data name='monitor' value='1' />
			<data name='ictloop' value='0' />
			<data name='ictrate' value='20000' />
			<data name='ictmask' value='0' />
			<data name='anlpres' value='19' />
			<data name='digmask1' value='-1' />
			<data name='digmask2' value='-1' />
		</dll_dbg_icd>
		<dll_models enabled='1' />
		<dll_upgrader enabled='1' />
		<dll_webhelp enabled='1' />
	</plugins>
	<supplement use='0' head='' body='' />
	<debug />
	<ghost >
		<FK2 >
			<data name='FK2D0' port='4294967295' pin='4294967295' />
			<data name='FK2D1' port='4294967295' pin='4294967295' />
			<data name='FK2D2' port='4294967295' pin='4294967295' />
			<data name='FK2D3' port='4294967295' pin='4294967295' />
			<data name='FK2D4' port='4294967295' pin='4294967295' />
			<data name='FK2D5' port='4294967295' pin='4294967295' />
			<data name='FK2D6' port='4294967295' pin='4294967295' />
			<data name='FK2D7' port='4294967295' pin='4294967295' />
			<data name='FK2D8' port='4294967295' pin='4294967295' />
			<data name='FK2D9' port='4294967295' pin='4294967295' />
			<data name='FK2D10' port='4294967295' pin='4294967295' />
			<data name='FK2D11' port='4294967295' pin='4294967295' />
			<data name='FK2D12' port='4294967295' pin='4294967295' />
			<data name='FK2D13' port='4294967295' pin='4294967295' />
			<data name='FK2D14' port='4294967295' pin='4294967295' />
			<data name='FK2D15' port='4294967295' pin='4294967295' />
			<data name='FK2A0' port='4294967295' pin='4294967295' />
			<data name='FK2A1' port='4294967295' pin='4294967295' />
			<data name='FK2A2' port='4294967295' pin='4294967295' />
			<data name='FK2A3' port='4294967295' pin='4294967295' />
			<data name='FK2A4' port='4294967295' pin='4294967295' />
			<data name='FK2A5' port='4294967295' pin='4294967295' />
		</FK2>
		<ICD >
			<data name='AnalogPrescaleValue' value='19' />
			<data name='DigitalSampleRate' value='100000' />
			<data name='BreakpointCount' value='8' />
			<data name='CallStackDepthCount' value='8' />
			<data name='ClockPort' value='1' />
			<data name='ClockPin' value='6' />
			<data name='DataPort' value='1' />
			<data name='DataPin' value='7' />
			<data name='UseDefaultPins' value='1' />
			<data name='WrapEnabled' value='1' />
			<data name='CommsDelayOverridden' value='0' />
			<data name='CommsDelay' value='9' />
			<data name='CalculatedCommsDelay' value='9' />
		</ICD>
		<pins >
			<digital A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
			<analog A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
		</pins>
	</ghost>
	<components >
		<settings autoimg='1' center='1' unitscale='0' fixedscale='0' fixedx='1' fixedy='1' fixedz='1' headcode='0' />
		<definition guid='' vstate='40' vmin='0' vmaj='1' srcleaf='' visiblename='' description='' category='' catenable='1' author='' manuname='' manucode='' sysinfo='0' keywords='' dynamic='0' iconpath='' />
		<component class_type='root' codename='panel' x='0' y='0' z='0' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='0' poslock='0' >
			<resources />
			<properties />
			<values />
			<events />
			<apis />
			<variables >
				<variable public='0' >
					<def class_type='variable' name='TxVal' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='my_flag' type='b1' description='' isconst='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='MyMessage' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='MyAddress' type='u8' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='RxVal' type='s16' description='' isconst='0' isinit='0' usrinit='0' setinit='' />
				</variable>
			</variables>
			<macros >
				<macro >
					<flowline name='Main' description='' >
						<return name='Return' type='v0' description='' isconst='0' isinit='0' usrinit='' setinit='' />
						<command class_type='call' title='Init UART1' cmdcolor='1975743' cmdcolor_sec='1975743' component='UART1' macro='Initialise' />
						<command class_type='comment' title='' comment='Insert the node address number of the
slave (1 to 31) in the next calculation.
Each slave has to be separately programmed
with its address number.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
						<command class_type='comment' title='' comment='//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
						<command class_type='calculation' title='Calculation' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' >
							<exp exp='MyAddress = 1' />
						</command>
						<command class_type='comment' title='' comment='//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
						<command class_type='comment' title='' comment='Start of the MAIN outside loop
that runs forever.' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
						<command class_type='loop' title='Loop' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' type='0' exp='1' >
							<flowline >
								<command class_type='comment' title='' comment='Direction control logic' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
								<command class_type='output' title='Output' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' mode='1' port='1048578' mask='32' exp='0' />
								<command class_type='calculation' title='Calculation' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' >
									<exp exp='MyMessage = 0' />
								</command>
								<command class_type='comment' title='' comment='Start of inner message loop
that continually looks at
incoming messages from the
Master.' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
								<command class_type='loop' title='Loop until MyMessage' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' type='1' exp='MyMessage' start='0' >
									<flowline >
										<command class_type='call' title='Read UART1' cmdcolor='1975743' cmdcolor_sec='1975743' component='UART1' macro='ReceiveChar' >
											<return exp='RxVal' />
											<argument exp='50' />
										</command>
										<command class_type='comment' title='' comment='If RxVal has some data from RS232 and
if that value when biwise added to 0x100
has a logic 1 in the result then go the
&apos;YES&apos; route. A result of 0x100 is
1 0000 0000 so as the 9th bit is a 1
we have identified the RxVal as being
a node address and because of the logic
1 in the result we take the &apos;YES&apos; route.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='decision' title='Do we have a node address' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' exp='RxVal AND 0x100' swap='0' >
											<flowline >
												<command class_type='comment' title='' comment='If we now bitwise add the RxVal byte
from RS232 with 0x001f we will retrieve
one of the 31 slave address byte numbers
1 to 31 sent from the master. All that is
required is to compare the result of the
bitwise addition with the value held in
MyAddress to check whether this slave
unit is the one to handle the current
communication with the master.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
												<command class_type='decision' title='Address check' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' exp='(RxVal AND 0x1f) = MyAddress' swap='0' >
													<flowline >
														<command class_type='comment' title='' comment='0x0101 bitwise added to 0x001f
equals 1. The value held in MyAddress
for this particular slave is 1 so the 
master intends to talk to this slave.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
														<command class_type='comment' title='' comment='If the result of bitwise adding 0x0080
to RxVal has a logical 1 in the result 
then take the &apos;YES&apos; route. If the result
only contains logical 0 in all bits then
take the &apos;NO&apos; route.' textarea='12,0,624,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
														<command class_type='decision' title='Read request' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' exp='RxVal AND 0x80' swap='0' >
															<flowline >
																<command class_type='comment' title='' comment='RXVal 0x181 thru 0x19F = YES route' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
																<command class_type='calculation' title='Calculation' cmdcolor='7895044' cmdcolor_sec='7895044' >
																	<exp exp='MyMessage = 2' />
																</command>
																<command class_type='comment' title='' comment='This sets up the slave to
transmit data back to the
master. This will be the
ADC value if following the
unedited slave code.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
															</flowline>
															<flowline >
																<command class_type='comment' title='' comment='RxVal 0x101 thru 0x11F = NO route' textarea='36,3,710,3' cmdcolor='1975743' cmdcolor_sec='1975743' />
																<command class_type='calculation' title='Calculation' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' >
																	<exp exp='MyMessage = 1' />
																</command>
																<command class_type='comment' title='' comment='This sets up the slave to
receive the next incoming
data. This is the &apos;count&apos; 
value if using the master 
code in its unedited form.' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
															</flowline>
														</command>
													</flowline>
													<flowline />
												</command>
											</flowline>
											<flowline >
												<command class_type='comment' title='' comment='If we have just 8 bits i.e. there
is no 9th bit set then the data is
a non address byte. When we bitwise
add this byte value with 0x100 the
result is all 0&apos;s. Consequently the
program flow will take the &apos;NO&apos; route.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
											</flowline>
										</command>
									</flowline>
								</command>
								<command class_type='comment' title='' comment='When message received relevant
to only this slave, we exit the
loop.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
								<command class_type='decision' title='Decision' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' exp='MyMessage = 1' swap='0' >
									<flowline >
										<command class_type='comment' title='' comment='Receive data from the master. 
This will be the &apos;count&apos; value if 
following the code in the master 
in unedited form. We are not 
required to do anything with
this data. Its use is optional.' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='call' title='Read UART1' cmdcolor='1975743' cmdcolor_sec='1975743' component='UART1' macro='ReceiveChar' >
											<return exp='RxVal' />
											<argument exp='50' />
										</command>
										<command class_type='comment' title='' comment='We choose to do nothing with 
the data' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' textarea='36,0,511,300' cmdcolor='3568629' cmdcolor_sec='3568629' exp='MyMessage = 2' swap='0' >
									<flowline >
										<command class_type='comment' title='' comment='&quot;A&quot;
' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='comment' title='' comment='QUESTION: CAN THE ENTIRE SOIL PROBE FQ. 
AND TEMP AND HUMIDITY MEASUREMENT CODE BE
INSERTED INTO THIS &apos;YES&apos; BRANCH TO REPLACE
THE ADC SAMPLING AND SEND OUT THE DATA VIA
THE RS232 SEND MACRO?
CODE IS INSERTED FROM &quot;A&quot; TO &quot;A DASH&quot;' textarea='12,0,12,0' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='comment' title='' comment='Transmit the following data
to the Master' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='delay' title='Delay' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' exp='2' type='1' />
										<command class_type='call' title='Sample ADC channel 1' textarea='36,0,511,300' cmdcolor='1975743' cmdcolor_sec='1975743' component='pot_color_cap1' macro='GetByte' >
											<return exp='TxVal' />
										</command>
										<command class_type='comment' title='' comment='Direction control logic' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='output' title='Enable transmission' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' mode='1' port='1048578' mask='32' exp='1' />
										<command class_type='delay' title='Delay' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' exp='10' type='0' />
										<command class_type='call' title='Transmit on UART1' cmdcolor='1975743' cmdcolor_sec='1975743' component='UART1' macro='SendChar' >
											<argument exp='TxVal' />
										</command>
										<command class_type='delay' title='Delay' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' exp='3' type='1' />
										<command class_type='comment' title='' comment='Direction control logic
' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
										<command class_type='output' title='Output' textarea='36,0,511,300' cmdcolor='7895044' cmdcolor_sec='7895044' mode='1' port='1048578' mask='32' exp='0' />
										<command class_type='delay' title='Delay' cmdcolor='7895044' cmdcolor_sec='7895044' exp='10' type='0' />
										<command class_type='comment' title='' comment='&quot;A DASH&quot;' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
									</flowline>
									<flowline />
								</command>
								<command class_type='comment' title='' comment='MAIN outside loop. Go back
to its start.' textarea='12,0,487,300' cmdcolor='1975743' cmdcolor_sec='1975743' />
							</flowline>
						</command>
					</flowline>
				</macro>
			</macros>
			<component class_type='ref' guid='14683ea8-5a08-4b3a-be2d-3dea3e17e720' vmin='3' vmaj='1' codename='pot_color_cap1' x='40' y='0' z='0' xsz='25.1419' ysz='25.1419' zsz='18.45' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='0' poslock='1' >
				<resources />
				<properties />
				<values >
					<value target='angle_start' data='225.000000' />
					<value target='angle_sweep' data='270.000000' />
					<value target='cap_color' data='192' />
					<value target='point_color' data='16777215' />
					<value target='ScopeTraces' data='0' />
					<value target='channel' data='1' />
					<value target='vrefvol' data='500' />
					<value target='vrefop' data='000' />
					<value target='convspd' data='003' />
					<value target='actime' data='40' />
					<value target='bits' data='10' />
					<value target='bitmul' data='0.004883' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='ref' guid='c73616d1-7ad0-45d9-aada-69ccfa4c5efc' vmin='0' vmaj='2' codename='UART1' x='-40' y='0' z='0' xsz='60' ysz='26' zsz='1.51' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' interactive='1' solid='1' layer='0' poslock='0' >
				<resources />
				<properties />
				<values >
					<value target='cal_uart::CHANNEL' data='001' />
					<value target='BAUD_LIST' data='004' />
					<value target='BAUD' data='9600' />
					<value target='DBITS' data='009' />
					<value target='RETURN' data='001' />
					<value target='ToutVal' data='512' />
					<value target='FLOWEN' data='000' />
					<value target='ECHO' data='000' />
					<value target='cal_uart::TX' data='$PORTC.6' />
					<value target='cal_uart::TXAlt' data='0' />
					<value target='cal_uart::RX' data='$PORTC.7' />
					<value target='cal_uart::RXAlt' data='0' />
					<value target='cal_uart::OutputPins' data='007' />
					<value target='cal_uart::InputPins' data='013' />
					<value target='CTS' data='$PORTB.1' />
					<value target='RTS' data='$PORTB.2' />
					<value target='label' data='UART' />
					<value target='ScopeTraces' data='0' />
					<value target='ConsoleData' data='0' />
					<value target='ConsoleColumns' data='64' />
					<value target='DataSource' data='001' />
					<value target='com_port' data='003' />
					<value target='Injector' data='000' />
					<value target='InjectorHandle' data='' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
		</component>
	</components>
	<keymap />
	<panel2d shadows='0' lighting='2' brightness='0' perspective='0' >
		<background rgb='2105930' img='' style='0' />
		<camera xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
	</panel2d>
	<panel3d shadows='0' lighting='2' brightness='0' perspective='0' >
		<background rgb='8409120' img='' style='0' />
		<table rgb='7360576' img='' style='0' size='25' />
		<camera xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey0 xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey1 xe='-3.67394e-14' ye='0' ze='-300' xt='0' yt='0' zt='0' xquat='0' yquat='1' zquat='0' wquat='6.12323e-17' />
		<camerakey2 xe='0' ye='-300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.707107' yquat='0' zquat='0' wquat='0.707107' />
		<camerakey3 xe='-3.67394e-14' ye='300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-4.32978e-17' yquat='0.707107' zquat='0.707107' wquat='4.32978e-17' />
		<camerakey4 xe='-300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='0.5' zquat='0.5' wquat='0.5' />
		<camerakey5 xe='300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='-0.5' zquat='-0.5' wquat='0.5' />
		<camerakey6 xe='-173.205' ye='-173.205' ze='173.205' xt='0' yt='0' zt='0' xquat='-0.424708' yquat='0.17592' zquat='0.339851' wquat='0.820473' />
	</panel3d>
	<layout >
		<view type='0' name='Main' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAASgMAAOMBAAA' zoom='75' scrollx='314' scrolly='1482' flags='0' />
	</layout>
</document>
</root>
