253 lines
6.4 KiB
Plaintext
253 lines
6.4 KiB
Plaintext
ALTER PROCEDURE [dbo].[sp_SensorsAnalogUpdateInsert]
|
|
@UserSerialNumber NVARCHAR (50),
|
|
@Model NVARCHAR (50),
|
|
@SensorModelId INT,
|
|
@Manufacturer NVARCHAR (50),
|
|
@Status NVARCHAR (50),
|
|
@MeasurementUnit NVARCHAR (50),
|
|
@OffsetToleranceLow FLOAT,
|
|
@OffsetToleranceHigh FLOAT,
|
|
@eId NVARCHAR (50),
|
|
@Capacity FLOAT,
|
|
@Comment NVARCHAR (50),
|
|
@BridgeType SMALLINT,
|
|
@BridgeLegMode SMALLINT,
|
|
@Shunt SMALLINT,
|
|
@Invert BIT,
|
|
@UserValue1 NVARCHAR (50),
|
|
@UserValue2 NVARCHAR (50),
|
|
@UserValue3 NVARCHAR (50),
|
|
@FilterClass NVARCHAR (50),
|
|
@BridgeResistance FLOAT,
|
|
@IsoCode NVARCHAR (50),
|
|
@IsoChannelName NVARCHAR (255),
|
|
@UserCode NVARCHAR (50),
|
|
@UserChannelName NVARCHAR (255),
|
|
@CheckOffset BIT,
|
|
@SupportedExcitation NVARCHAR (50),
|
|
@InitialEU FLOAT,
|
|
@CalInterval INT,
|
|
@CalibrationSignal BIT,
|
|
@InternalShuntResistance FLOAT,
|
|
@ExternalShuntResistance FLOAT,
|
|
@UniPolar BIT,
|
|
@RangeLow FLOAT,
|
|
@RangeAve FLOAT,
|
|
@RangeHigh FLOAT,
|
|
@Created DATETIME,
|
|
@TimesUsed BIGINT,
|
|
@SensorCategory INT,
|
|
@BypassFilter BIT,
|
|
@CouplingMode SMALLINT,
|
|
@Version INT,
|
|
@LastModified DATETIME,
|
|
@ModifiedBy NVARCHAR (50),
|
|
@LocalOnly BIT,
|
|
@AxisNumber SMALLINT,
|
|
@NumberOfAxes SMALLINT,
|
|
@UserTags VARBINARY (MAX),
|
|
@DoNotUse BIT,
|
|
@Broken BIT,
|
|
@DiagnosticsMode BIT,
|
|
@SerialNumber NVARCHAR (255),
|
|
@new_id INT OUTPUT,
|
|
@errorNumber INT OUTPUT,
|
|
@errorMessage NVARCHAR (255) OUTPUT
|
|
AS
|
|
BEGIN
|
|
BEGIN TRY
|
|
SET NOCOUNT ON
|
|
SET @errorNumber = 0
|
|
SET @errorMessage = ''
|
|
|
|
DECLARE @SensorType AS TINYINT
|
|
DECLARE @SensorId AS INT
|
|
DECLARE @MaxCalIntervalDays AS INT
|
|
-- FB14622 Maximum allowed interval days. When updating this value please update the _maxCalIntervalDays variable in SensitivityControl.xaml.cs
|
|
SET @MaxCalIntervalDays = 365 * 10
|
|
|
|
SELECT @SensorType = [TypeId] FROM [dbo].[SensorsType] WHERE [SensorType]='Analog'
|
|
|
|
SELECT @SensorId = A.[Id] from [dbo].[Sensors] AS A INNER JOIN [dbo].SensorsType AS B ON A.SensorType=B.TypeId WHERE B.SensorType='Analog' AND A.SerialNumber=@SerialNumber
|
|
|
|
-- FB14622 Validate the range of calibration intervals
|
|
IF(@CalInterval > @MaxCalIntervalDays OR @CalInterval <= 0 )
|
|
BEGIN
|
|
RAISERROR ('Invalid calibration inteval',16,1)
|
|
END
|
|
|
|
IF( @SensorId IS NULL)
|
|
BEGIN
|
|
INSERT INTO [dbo].[Sensors] (SensorType, SerialNumber) VALUES (@SensorType, @SerialNumber)
|
|
SELECT @SensorId = SCOPE_IDENTITY()
|
|
SET @new_id = @SensorId
|
|
INSERT INTO [dbo].[SensorsAnalog] (
|
|
[SensorId],
|
|
[UserSerialNumber],
|
|
[Model],
|
|
[SensorModelId],
|
|
[Manufacturer],
|
|
[Status],
|
|
[MeasurementUnit],
|
|
[OffsetToleranceLow],
|
|
[OffsetToleranceHigh],
|
|
[eId],
|
|
[Capacity],
|
|
[Comment],
|
|
[BridgeType],
|
|
[BridgeLegMode],
|
|
[Shunt],
|
|
[Invert],
|
|
[UserValue1],
|
|
[UserValue2],
|
|
[UserValue3],
|
|
[FilterClass],
|
|
[BridgeResistance],
|
|
[IsoCode],
|
|
[IsoChannelName],
|
|
[UserCode],
|
|
[UserChannelName],
|
|
[CheckOffset],
|
|
[SupportedExcitation],
|
|
[InitialEU],
|
|
[CalInterval],
|
|
[CalibrationSignal],
|
|
[InternalShuntResistance],
|
|
[ExternalShuntResistance],
|
|
[UniPolar],
|
|
[RangeLow],
|
|
[RangeAve],
|
|
[RangeHigh],
|
|
[Created],
|
|
[TimesUsed],
|
|
[SensorCategory],
|
|
[BypassFilter],
|
|
[CouplingMode],
|
|
[Version],
|
|
[LastModified],
|
|
[ModifiedBy],
|
|
[LocalOnly],
|
|
[AxisNumber],
|
|
[NumberOfAxes],
|
|
[UserTags],
|
|
[DoNotUse],
|
|
[Broken],
|
|
[DiagnosticsMode])
|
|
VALUES (
|
|
@SensorId,
|
|
@UserSerialNumber,
|
|
@Model,
|
|
@SensorModelId,
|
|
@Manufacturer,
|
|
@Status,
|
|
@MeasurementUnit,
|
|
@OffsetToleranceLow,
|
|
@OffsetToleranceHigh,
|
|
@eId,
|
|
@Capacity,
|
|
@Comment,
|
|
@BridgeType,
|
|
@BridgeLegMode,
|
|
@Shunt,
|
|
@Invert,
|
|
@UserValue1,
|
|
@UserValue2,
|
|
@UserValue3,
|
|
@FilterClass,
|
|
@BridgeResistance,
|
|
@IsoCode,
|
|
@IsoChannelName,
|
|
@UserCode,
|
|
@UserChannelName,
|
|
@CheckOffset,
|
|
@SupportedExcitation,
|
|
@InitialEU,
|
|
@CalInterval,
|
|
@CalibrationSignal,
|
|
@InternalShuntResistance,
|
|
@ExternalShuntResistance,
|
|
@UniPolar,
|
|
@RangeLow,
|
|
@RangeAve,
|
|
@RangeHigh,
|
|
@Created,
|
|
@TimesUsed,
|
|
@SensorCategory,
|
|
@BypassFilter,
|
|
@CouplingMode,
|
|
@Version,
|
|
@LastModified,
|
|
@ModifiedBy,
|
|
@LocalOnly,
|
|
@AxisNumber,
|
|
@NumberOfAxes,
|
|
@UserTags,
|
|
@DoNotUse,
|
|
@Broken,
|
|
@DiagnosticsMode)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @new_id = @SensorId
|
|
UPDATE [dbo].[SensorsAnalog] SET
|
|
[SensorId] = @SensorId,
|
|
[UserSerialNumber] = @UserSerialNumber,
|
|
[Model] = @Model,
|
|
[SensorModelId] = @SensorModelId,
|
|
[Manufacturer] = @Manufacturer,
|
|
[Status] = @Status,
|
|
[MeasurementUnit] = @MeasurementUnit,
|
|
[OffsetToleranceLow] = @OffsetToleranceLow,
|
|
[OffsetToleranceHigh] = @OffsetToleranceHigh,
|
|
[eId] = @eId,
|
|
[Capacity] = @Capacity,
|
|
[Comment] = @Comment,
|
|
[BridgeType] = @BridgeType,
|
|
[BridgeLegMode] = @BridgeLegMode,
|
|
[Shunt] = @Shunt,
|
|
[Invert] = @Invert,
|
|
[UserValue1] = @UserValue1,
|
|
[UserValue2] = @UserValue2,
|
|
[UserValue3] = @UserValue3,
|
|
[FilterClass] = @FilterClass,
|
|
[BridgeResistance] = @BridgeResistance,
|
|
[IsoCode] = @IsoCode,
|
|
[IsoChannelName] = @IsoChannelName,
|
|
[UserCode] = @UserCode,
|
|
[UserChannelName] = @UserChannelName,
|
|
[CheckOffset] = @CheckOffset,
|
|
[SupportedExcitation] = @SupportedExcitation,
|
|
[InitialEU] = @InitialEU,
|
|
[CalInterval] = @CalInterval,
|
|
[CalibrationSignal] = @CalibrationSignal,
|
|
[InternalShuntResistance] = @InternalShuntResistance,
|
|
[ExternalShuntResistance] = @ExternalShuntResistance,
|
|
[UniPolar] = @UniPolar,
|
|
[RangeLow] = @RangeLow,
|
|
[RangeAve] = @RangeAve,
|
|
[RangeHigh] = @RangeHigh,
|
|
[Created] = @Created,
|
|
[TimesUsed] = @TimesUsed,
|
|
[SensorCategory] = @SensorCategory,
|
|
[BypassFilter] = @BypassFilter,
|
|
[CouplingMode] = @CouplingMode,
|
|
[Version] = @Version,
|
|
[LastModified] = @LastModified,
|
|
[ModifiedBy] = @ModifiedBy,
|
|
[LocalOnly] = @LocalOnly,
|
|
[AxisNumber] = @AxisNumber,
|
|
[NumberOfAxes] = @NumberOfAxes,
|
|
[UserTags] = @UserTags,
|
|
[DoNotUse] = @DoNotUse,
|
|
[Broken] = @Broken,
|
|
[DiagnosticsMode] = @DiagnosticsMode WHERE [SensorId]=@SensorId
|
|
END
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @errorNumber = error_number()
|
|
SET @errorMessage = error_message()
|
|
END CATCH
|
|
END
|
|
|
|
|