Exemplo n.º 1
0
        private void SendOutputChange(OutputTriggerType TriggerType, string command)
        {
            //Command format for VT300/310e:
            //@@<L><ID><Command:4115/4114/5114><AABBCCDDEE><Checksum>0D0A

            //Thankfully, everything else about the commands are identical

            StringBuilder data = new StringBuilder();

            data.Append(getOutputCommand(1, TriggerType));
            data.Append(getOutputCommand(2, TriggerType));
            data.Append(getOutputCommand(3, TriggerType));
            data.Append(getOutputCommand(4, TriggerType));
            data.Append(getOutputCommand(5, TriggerType));

            //if there's nothing to do, don't bother sending the command;
            if (data.ToString().Equals("0202020202"))
            {
                return;
            }

            //If we're still here, there's a change so let's kick things off with the @@ and length = 16
            StringBuilder sb = new StringBuilder("40400016");

            sb.Append(getPaddedTrackerId());
            sb.Append(command);
            sb.Append(data.ToString());
            sb.Append(Utilities.CalcCRC16(sb.ToString()));
            sb.Append("0D0A");

            //Utilities.SendCommand(tcpClient, sb.ToString());
        }
Exemplo n.º 2
0
 public GPSTrackerOutput(string trackerId, int number, OutputState newState, OutputState lastState, OutputTriggerType triggerType)
 {
     this.TrackerId = trackerId;
     this.Number    = number;
     //don't need to know the type from Server POV
     this.Type              = OutputType.Unknown;
     this.ProposedState     = newState;
     this.LastVerifiedState = lastState;
     this.TriggerType       = triggerType;
 }
Exemplo n.º 3
0
        private string getOutputCommand(int outputNumber, OutputTriggerType TriggerType)
        {
            GPSTrackerOutput output = outputs.Find(m => m.Number == outputNumber);

            //for the 300/310, 02 means "leave the output at it's previous value"
            if ((output == null) || (output.TriggerType != TriggerType) || (output.ProposedState == output.LastVerifiedState) || (output.ProposedState == OutputState.Previous))
            {
                return("02");
            }

            if (output.ProposedState == OutputState.On)
            {
                return("00");
            }
            if (output.ProposedState == OutputState.Off)
            {
                return("01");
            }

            //Uhh.. why're we here?
            return("02");
        }